I have an index that's approximately 875MB. I'm using JBoss Application
Server 4.04 w/ Apache HTTP Server 2.2. My min/max JVM size is:
128MB/512MB. On initial startup, everything works fine. I'm able to
search (although it takes a while doing the first search because it's
loading the index into memory - because I'm sorting on a field)...
everything's fine and dandy. But if I stop the application and
redeploy, I get an OutOfMemoryError when I search (when the index gets
loaded into memory again). I've tried this on both Java 5 and Java 6.
When I stop the application, I made sure (or at least to the best of my
knowledge) that I close all searcher/reader/writer. I'm pretty sure
that there are no locks on the index. I've tried increasing the maximum
JVM size to 1GB. Now I can redeploy the application twice before it
gives me the OutOfMemoryError. It seems like the JVM isn't garbage
collecting the index.
So is this a JVM issue where the index is still in memory and it isn't
being garbage collected? Or am I not closing my searcher/reader/writer
correctly? Has anyone else experienced this?