I run a x64 staging server here along with the following:

Solr Java etc.

However, I am about to get a linode vps for production and quickly realising that x86 is the way to go for their lowest RAM package (thinking to upgrade later). My staging server is x64 with 12gb ram, so going down to 300mb ram is going to feel devilishly slow ;/

Here are my questions:

1) Will I have problems transferring my scripts, dbs etc from a x64 to x86 server? e.g. solr indexes

2) Is it worth going for the x86 package? I am probably going to upgrade later down the line and x64 might be better for the servers with more RAM? should I stick with x64 instead as there isnt much difference when using with low RAM?



| improve this question | | | | |
  • The title of your question is opposite of the actual question. – einstiien Feb 23 '10 at 9:08
  • heehheh sorry about that! mybad – Ke. Feb 23 '10 at 9:10

You may have trouble booting a jvm in such a memory constrained environment.

You won't have trouble moving your indexes, all Lucene documents are endian agnostic and not word aligned. The only package I had trouble moving from 32bit to 64bit was a collection of rrdtool archives, which use the native word size of the machine.

Remember, under x86-64 each pointer is a long, that is 8 bytes. On a JVM with hundreds of thousands of object references in fly at any one time, this adds up.

| improve this answer | | | | |
  • so best thing to do is go for x86? because tomcat/jetty will run faster? and my scripts will be easily transferrable from my x64 development server? – Ke. Feb 23 '10 at 9:36
  • If it's all pure java then there should be no problems. If you're using a service wrapper like Tanikusoft then you'll probably be ok, but check. But, in all seriousness, I think you'll have trouble running a JVM inside a tiny vps like that. – Dave Cheney Feb 23 '10 at 10:34

You are almost certain to run into memory problems with only 300 MB available; even if you strip down you server OS you're unlikely to be able to run with a Java heap of more than 250MB, and most likely you'll be pinned to 200 or less.

You could point jconsole at your JVM to see what memory you're currently using and see if it's even in the right ballpark.

If you really wanted to be sure, you'd set up a VM with your proposed system configuration (300 MB of RAM, and so on), and see if you can get the app running; that way you won't be guessing.

| improve this answer | | | | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.