Hi, I am running multiple Solr cores (solr-tomcat 1.4.0+ds1-1ubuntu1) under Tomcat (6.0.24-2ubuntu1.4) on Ubuntu 10.04.1. I have a master server where all Solr writes go, and a slave server that replicates all cores from the master, and accepts all read-only queries.
After maxing out PermGen space a few times on the slave, adjusting it, and doing some analysis, it looks to me that each Solr core on the slave uses about 4.6 meg of PermGen space. I have looked at the number of Solr cores running each time I have maxed out PermGen and this does appear to be linear. To get the 4.6 meg/core number I am simply dividing MaxPermSize by the number of cores running when PermGen has filled. I am also using PrintGCDetails which confirms PermGen is maxed when the server fails. I have a basic understanding of PermGen and CMS garbage collection. Although 4.6 meg generally sounds like a small amount of data, with respect to tenured generation per Solr core it sounds high to me. Maybe I just don't know what I'm talking about, but I was hoping someone had an opinion on whether or not this sounded too high, and if so, what I can do to shrink it. I have read that redeploying servlets inherently makes this problem worse, but I very rarely do that. This seems to be a case of PermGen filling as more Solr cores are added to my server (a few are added each day as part of normal business). If there is any additional information I can provide about my deployment that would help please let me know. Thanks. Andrew Davidoff