2

My client has a Windows 2008 webserver with 64GB memory.

I have to deploy my company's system (that runs on Java) onto the server and connect to their existing Itanium database.

There is a reason why such a big memory is allocated it is because our system utilizes a large amount of memory where information written to the database, yet data is kept in memory for fast access. A product similar to EHCache.

Past experience raises a concern:

"In order for Java to work efficiently, each Java instance should be keep around 2GB, else the Java Garbage Collector activity will kill the response time"

Is the above concern still true with the latest JDK 1.6, or does this apply any more?

While I was working with JDK 1.4, I mitigated the java memory sizing limitation by deploying a few webservers with memory no more than 2GB.

Should I run just one large server or multiple servers each with ~2GB or RAM available?

3
  • You should benchmark your application in your environment rather than hoping for the experiences of others to be the same.
    – womble
    Jul 25, 2011 at 8:52
  • @womble the server is still in paper to date. I am to propose a deployment strategy in the mean time.
    – Reusable
    Jul 25, 2011 at 9:00
  • Proposed deployment strategy: "I will benchmark the following scenarios, testing them each by doing <x>, collecting statistics <y>, and making my decision based on <z>".
    – womble
    Jul 25, 2011 at 9:13

1 Answer 1

1

I suggest a mixed of both your options. Just imagine restarting the fat tomcat, it will generate some downtime and slowness when is getting back.

I suggest you to keep stable apps in one tomcat with more memory and the other that require more attention/frequent changes to be separated.

In other words, the approach should be driven by stability/service quality and not by commodity (imagine restarting 20 tomcats).

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .