On Tue, Apr 14, 2009 at 7:14 AM, vivek sar <vivex...@gmail.com> wrote:
> Some more update. As I mentioned earlier we are using multi-core Solr
> (up to 65 cores in one Solr instance with each core 10G). This was
> opening around 3000 file descriptors (lsof). I removed some cores and
> after some trial and error I found at 25 cores system seems to work
> fine (around 1400 file descriptors). Tomcat is responsive even when
> the indexing is happening at Solr (for 25 cores). But, as soon as it
> goes to 26 cores the Tomcat becomes unresponsive again. The puzzling
> thing is if I stop indexing I can search on even 65 cores, but while
> indexing is happening it seems to support only up to 25 cores.
>
> 1) Is there a limit on number of cores a Solr instance can handle?
> 2) Does Solr do anything to the existing cores while indexing? I'm
> writing to only one core at a time.
There is no hard limit (it is Integer.MAX_VALUE) . But inreality your
mileage depends on your hardware and no:of file handles the OS can
open
>
> We are struggling to find why Tomcat stops responding on high number
> of cores while indexing is in-progress. Any help is very much
> appreciated.
>
> Thanks,
> -vivek
>
> On Mon, Apr 13, 2009 at 10:52 AM, vivek sar <vivex...@gmail.com> wrote:
>> Here is some more information about my setup,
>>
>> Solr - v1.4 (nightly build 03/29/09)
>> Servlet Container - Tomcat 6.0.18
>> JVM - 1.6.0 (64 bit)
>> OS -  Mac OS X Server 10.5.6
>>
>> Hardware Overview:
>>
>> Processor Name: Quad-Core Intel Xeon
>> Processor Speed: 3 GHz
>> Number Of Processors: 2
>> Total Number Of Cores: 8
>> L2 Cache (per processor): 12 MB
>> Memory: 20 GB
>> Bus Speed: 1.6 GHz
>>
>> JVM Parameters (for Solr):
>>
>> export CATALINA_OPTS="-server -Xms6044m -Xmx6044m -DSOLR_APP
>> -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:gc.log
>> -Dsun.rmi.dgc.client.gcInterval=3600000
>> -Dsun.rmi.dgc.server.gcInterval=3600000"
>>
>> Other:
>>
>> lsof|grep solr|wc -l
>>    2493
>>
>> ulimit -an
>>  open files                      (-n) 9000
>>
>> Tomcat
>>    <Connector port="8080" protocol="HTTP/1.1"
>>               connectionTimeout="20000"
>>               maxThreads="100" />
>>
>> Total Solr cores on same instance - 65
>>
>> useCompoundFile - true
>>
>> The tests I ran,
>>
>> While Indexer is running
>> 1)  Go to "http://juum19.co.com:8080/solr";    - returns blank page (no
>> error in the catalina.out)
>>
>> 2) Try "telnet juum19.co.com 8080"  - returns with "Connection closed
>> by foreign host"
>>
>> Stop the Indexer Program (Tomcat is still running with Solr)
>>
>> 3)  Go to "http://juum19.co.com:8080/solr";  - works ok, shows the list
>> of all the Solr cores
>>
>> 4) Try telnet - able to Telnet fine
>>
>> 5)  Now comment out all the caches in solrconfig.xml. Try same tests,
>> but the Tomcat still doesn't response.
>>
>> Is there a way to stop the auto-warmer. I commented out the caches in
>> the solrconfig.xml but still see the following log,
>>
>> INFO: autowarming result for searc...@3aba3830 main
>> fieldValueCache{lookups=0,hits=0,hitratio=0.00,inserts=0,evictions=0,size=0,warmupTime=0,cumulative_lookups=0,cumulative_hits=0,cumulative_hitratio=0.00,cumulative_inserts=0,cumulative_evictions=0}
>>
>> INFO: Closing searc...@175dc1e2
>> main    
>> fieldValueCache{lookups=0,hits=0,hitratio=0.00,inserts=0,evictions=0,size=0,warmupTime=0,cumulative_lookups=0,cumulative_hits=0,cumulative_hitratio=0.00,cumulative_inserts=0,cumulative_evictions=0}
>> filterCache{lookups=0,hits=0,hitratio=0.00,inserts=0,evictions=0,size=0,warmupTime=0,cumulative_lookups=0,cumulative_hits=0,cumulative_hitratio=0.00,cumulative_inserts=0,cumulative_evictions=0}
>> queryResultCache{lookups=0,hits=0,hitratio=0.00,inserts=0,evictions=0,size=0,warmupTime=0,cumulative_lookups=0,cumulative_hits=0,cumulative_hitratio=0.00,cumulative_inserts=0,cumulative_evictions=0}
>> documentCache{lookups=0,hits=0,hitratio=0.00,inserts=0,evictions=0,size=0,warmupTime=0,cumulative_lookups=0,cumulative_hits=0,cumulative_hitratio=0.00,cumulative_inserts=0,cumulative_evictions=0}
>>
>>
>> 6) Change the Indexer frequency so it runs every 2 min (instead of all
>> the time). I noticed once the commit is done, I'm able to run my
>> searches. During commit and auto-warming period I just get blank page.
>>
>>  7) Changed from Solrj to XML update -  I still get the blank page
>> whenever update/commit is happening.
>>
>> Apr 13, 2009 6:46:18 PM
>> org.apache.solr.update.processor.LogUpdateProcessor finish
>> INFO: {add=[621094001, 621094002, 621094003, 621094004, 621094005,
>> 621094006, 621094007, 621094008, ...(6992 more)]} 0 1948
>> Apr 13, 2009 6:46:18 PM org.apache.solr.core.SolrCore execute
>> INFO: [20090413_12] webapp=/solr path=/update params={} status=0 QTime=1948
>>
>>
>> So, looks like it's not just StreamingUpdateSolrServer, but whenever
>> the update/commit is happening I'm not able to search. I don't know if
>> it's related to using multi-core. In this test I was using only single
>> thread for update to a single core using only single Solr instance.
>>
>> So, it's clearly related to index process (update, commit and
>> auto-warming). As soon as update/commit/auto-warming is completed I'm
>> able to run my queries again. Is there anything that could stop
>> searching while update process is in-progress - like any lock or
>> something?
>>
>> Any other ideas?
>>
>> Thanks,
>> -vivek
>>
>> On Mon, Apr 13, 2009 at 12:14 AM, Shalin Shekhar Mangar
>> <shalinman...@gmail.com> wrote:
>>> On Mon, Apr 13, 2009 at 12:36 PM, vivek sar <vivex...@gmail.com> wrote:
>>>
>>>> I index in 10K batches and commit after 5 index cyles (after 50K). Is
>>>> there any limitation that I can't search during commit or
>>>> auto-warming? I got 8 CPU cores and only 2 were showing busy (using
>>>> top) - so it's unlikely that the CPU was pegged.
>>>>
>>>>
>>> No, there is no such limitation. The old searcher will continue to serve
>>> search requests until the new one is warmed and registered.
>>>
>>> So, CPU does not seem to be an issue. Does this happen only when you use
>>> StreamingUpdateSolrServer? Which OS, file system? What JVM parameters are
>>> you using? Which servlet container and version?
>>>
>>> --
>>> Regards,
>>> Shalin Shekhar Mangar.
>>>
>>
>



-- 
--Noble Paul

Reply via email to