My approach to dealing with these kinds of issues (which has worked well for
me thus far) is:

- Run java with -XX:+HeapDumpOnOutOfMemoryError command-line option
- use jhat to inspect the heap dump, like so:
$ /usr/java/jdk1.6/bin/jhat ./java_pid1347.hprof

jhat will take a while to parse the heap dump, and will start an http
listener on port 7000 by default.

Interesting statistics can be found at the bottom of the front page.  These
will enable you to discover whether it is a memory leak in the java runtime
or in the lucene library.

- andy g



On 4/5/07, Craig W Conway <[EMAIL PROTECTED]> wrote:

So, forgetting the RMI stuff, I put together a test client very similar to
the one in the book "Lucene in Action" page 182.

The  client:

1. instantiates a IndexSearcher
2. loops through queries, searches, prints hit count, saves nothing

I am only able to run through about 40 searches before I get an
OutOfMemoryException.  JDK 1.5

Because of this, I have put a counter in my search server to close and
re-open the IndexSearcher after a certian number of searches. But this
shouldn't be necessary right? What's eating up all the memory?

Source code @ http://urbanmarsupial.com/share/TestLuceneMemory.java

Any hints would be greatly appreciated!

Thanks,

Craig

----- Original Message ----
From: Otis Gospodnetic <[EMAIL PROTECTED]>
To: java-user@lucene.apache.org
Sent: Wednesday, April 4, 2007 10:39:50 AM
Subject: Re: How many Searches is a Searcher Worth?

No reason that I can think of.  What makes you think the problem is with
the IndexSearcher?  Maybe it's something else in your code, for instance.
Make sure you have the same version of Java on both ends of the
call.  Also, Java 6 made our RMI calls a lot more stable than even 1.5.

Otis
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Simpy -- http://www.simpy.com/  -  Tag  -  Search  -  Share

----- Original Message ----
From: Craig W Conway <[EMAIL PROTECTED]>
To: java-user@lucene.apache.org
Sent: Wednesday, April 4, 2007 1:25:27 PM
Subject: How many Searches is a Searcher Worth?

I am using an RMI architecture for calling a remote service which uses an
IndexSearcher in its own JVM. I am starting the service with the following
provisions for memory allocation and garbage collection: java -server
-Xmx1024m -XX:+UseConcMarkSweepGC -XX:+UseParNewGC

After about 1000 search calls I start to run out of memory, and I have to
close and re-open the IndexSearcher, loosing any cached data and filters...
Is there any reason why I shouldn't be able to use my IndexSearcher forever,
until I want to close it?

Thanks!

Craig






____________________________________________________________________________________
Now that's room service!  Choose from over 150,000 hotels
in 45,000 destinations on Yahoo! Travel to find your fit.
http://farechase.yahoo.com/promo-generic-14795097



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]










____________________________________________________________________________________
No need to miss a message. Get email on-the-go
with Yahoo! Mail for Mobile. Get started.
http://mobile.yahoo.com/mail

Reply via email to