The large drop in old generation from 27GB->6GB indicates that things are getting into your old generation prematurely. They really don't need to get there at all, and should be collected sooner (more frequently).
Look into increasing young generation sizes via JVM parameters. Also look into concurrent collection. You could even consider decreasing your JVM max memory. Obviously you aren't using it all, decreasing it will force the JVM to do more frequent (and therefore smaller) collections. You're average collection time may go up, but you will get smaller performance decreases. Great details on memory tuning on Sun JDKs here http://java.sun.com/docs/hotspot/gc5.0/gc_tuning_5.html There are other articles for 1.6 and 1.4 as well. -Todd -----Original Message----- From: wojtekpia [mailto:wojte...@hotmail.com] Sent: Wednesday, January 21, 2009 9:49 AM To: solr-user@lucene.apache.org Subject: Performance "dead-zone" due to garbage collection I'm intermittently experiencing severe performance drops due to Java garbage collection. I'm allocating a lot of RAM to my Java process (27GB of the 32GB physically available). Under heavy load, the performance drops approximately every 10 minutes, and the drop lasts for 30-40 seconds. This coincides with the size of the old generation heap dropping from ~27GB to ~6GB. Is there a way to reduce the impact of garbage collection? A couple ideas we've come up with (but haven't tried yet) are: increasing the minimum heap size, more frequent (but hopefully less costly) garbage collection. Thanks, Wojtek -- View this message in context: http://www.nabble.com/Performance-%22dead-zone%22-due-to-garbage-collect ion-tp21588427p21588427.html Sent from the Solr - User mailing list archive at Nabble.com.