I am getting a "Too Many Open Files" Exception. I've read the FAQ about
lowering the merge factor (currently set to 25), issuing a ulimit -n
<number>, etc... but I am still getting the "Too Many Open Files"
Exception (yes... I'm making sure I close all writer/searchers/reader
and I only have one open at a time).
Here is my situation:
I have one application dedicated to building the index on one JVM
(server 1). I have several other applications doing the searching in
another JVM (server 2). I have the merge merge docs set to 999999, max
buffered docs = 3000, and max merge factor = 25. Server 2 is all set to
default. I am getting the "Too Many Open Files" Exception on server
2... The index in question has 576,239 documents, 48 fields, and
6,521,618 terms (actually... this just turned into a two part question).
The first part would be why am I getting the "Too Many Open Files"
The second part is: I have a total of 24 different indices. Each index
is dedicated to one specific part of the application (ie: an index for
customers, index for products, index for media location, etc). Each
index has its own searcher/reader (and only one searcher/reader per
index). After server 1 finishes it's scheduled job to update the index,
it notifies server 2 to renew the appropriate searcher/reader. Question
is should (could) I merge all 24 indices into one big index? What is
the optimal thing to do (the indices range from 5MB - 900MB... most of
the are 30MB-50MB).
I have two indices that are "large", one being 700MB and the other being
900MB. Optimizing these two indices takes a long time, so I only
optimize it once (last scheduled job of the night). The 700MB index is
scheduled to update every 4 hours, while the 900MB index is schedule to
update every 30 minutes. Should I optimize more often throughout the
day (changes varies)?
I know this email is all over the place... so any feedback is