this is a very interesting post. I have read that a normal JVM for the appserver, let's say Websphere application server, should be set at 512MB. But if the box has lets say 6 gig of ram and your app needed to build large objects from a DB, wouldn't you need to allocate way more than 512? I mean, what if you were using connection pooling, so severeal EJBs were working concurrently on building large objects. What is the largest JVM size anyone has seen?
We have used 2GB for JVM max heap for Websphere 6 on AIX box. Found drastic improvements in performance. Didnt notice any problems with GC. We have 9GB physical RAM available.
Joined: Nov 03, 2004
I agree, if your application is basically a WAR, 256MB for the JVM may be fine. However, an EAR that contains several MDB's/EJB's that concurrently service high volume queues and make calls to a database that can return 10,000 records each that are then build in a collection and distributed back to a client would obviously need ALOT more heap. I understand why you use 2gig JVM(use EJB's too?). alot of system admins do not understand that it is the system RAM/ application that should dictate this, not a cookie cutter standard. We had severall issues on a prototype, yes getting the infamous outOfMemory exception, and we are currently workig towards: -raising the JVM heap to at least 1.5 gig -clustering WAS instances allowing us to lower the number of connection pools for the MDB's/ stateless Session bean(that use MQ) and JDBC pool Intern cluster
it takes alot of performance testing and probr moitoring to configure this