You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by "T. Kuro Kurosaka" <ku...@basistech.com> on 2012/09/08 09:39:03 UTC

Why does Solr (1.4.1) keep so many Tokenizer objects?

While investigating a bug, I found that Solr keeps many Tokenizer objects.

This experimental 80-core Solr 1.4.1 system runs on Tomcat. It was 
continuously sent indexing requests in parallel, and it eventually died 
due to OutOfMemory.
The heap dump that was taken by the JVM shows there were 14477 Tokenizer 
objects, or about 180 Tokenizer objects per core, at the time it died.
Each core's schema.xml has only 5 Fields that uses this Tokenizer, so 
I'd think 5 Tokenizer per indexing thread are needed at most.
Tomcat at its default configuration can run up to 200 threads.  So at 
most 1000 Tokenizer objects should be enough.

My colleague ran a similar experiment on 10-core Solr 3.6 system, and 
observed a fewer Tokenizer objects there, but still there are 48 
Tokenizers per core.
Why does Solr keep this many Tokenizer objects ?

Kuro