I don't expect having equal values to make a noticeable difference,
except possibly in some corner cases. Setting them equal is mostly for
avoiding surprises...

Erick

On Thu, Apr 10, 2014 at 7:17 AM, Atanas Atanasov <atanaso...@gmail.com> wrote:
> Thanks for the tip,
>
> I already set the core properties. Now tomcat has only 27 threads after
> start up, which is awesome.
> Works fine, first search is not noticeably slower than before.
> I'll put equal values for Xmx and Xms and see if there will be any
> difference.
>
> Regards,
> Atanas
>
>
> On Thu, Apr 10, 2014 at 5:11 PM, Erick Erickson 
> <erickerick...@gmail.com>wrote:
>
>> Trying to fit 1,000 cores in 6G of memory is... interesting. That's a
>> lot of stuff in a small amount of memory. I hope these cores' indexes
>> are tiny.
>>
>> The lazy-loading bit for cores has a price. The first user in will pay
>> the warmup penalty for that core while it loads. This may or may not
>> be noticeable but be aware of it. You may or may not want autowarming
>> in place.
>>
>> You can also specify how many cores are kept in memory at one time,
>> they go into an LRU cache and are aged out after they serve their last
>> outstanding request.
>>
>> BTW, current Java practice seems to be setting Xmx and Xms to the same
>> value, 6G in your case.
>>
>> Good Luck!
>> Erick
>>
>> On Thu, Apr 10, 2014 at 12:14 AM, Atanas Atanasov <atanaso...@gmail.com>
>> wrote:
>> > Thanks for the quick responses,
>> > I have allocated 1GB min and 6 GB max memory to Java. The cache settings
>> > are the default ones (maybe this is a good point to start).
>> > All cores share the same schema and config.
>> > I'll try setting the
>> > loadOnStartup=*false* transient=*true *options for each core and see what
>> > will happen.
>> >
>> > Those are the exceptions from the log files:
>> > SEVERE: Servlet.service() for servlet [default] in context with path
>> > [/solrt] threw exception
>> > java.lang.IllegalStateException: Cannot call sendError() after the
>> response
>> > has been committed
>> > at
>> >
>> org.apache.catalina.connector.ResponseFacade.sendError(ResponseFacade.java:450)
>> > at
>> >
>> org.apache.solr.servlet.SolrDispatchFilter.sendError(SolrDispatchFilter.java:695)
>> > at
>> >
>> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:383)
>> > at
>> >
>> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:158)
>> > at
>> >
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>> > at
>> >
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>> > at
>> >
>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
>> > at
>> >
>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
>> > at
>> >
>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
>> > at
>> >
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
>> > at
>> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
>> > at
>> >
>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
>> > at
>> >
>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
>> > at
>> >
>> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
>> > at
>> >
>> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
>> > at
>> >
>> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:315)
>> > at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
>> > at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
>> > at java.lang.Thread.run(Unknown Source)
>> >
>> > AND
>> >
>> > SEVERE: null:ClientAbortException:  java.net.SocketException: Software
>> > caused connection abort: socket write error
>> > at
>> org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:371)
>> > at
>> org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:333)
>> > at
>> >
>> org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:101)
>> > at sun.nio.cs.StreamEncoder.implFlush(Unknown Source)
>> > at sun.nio.cs.StreamEncoder.flush(Unknown Source)
>> > at java.io.OutputStreamWriter.flush(Unknown Source)
>> > at org.apache.solr.util.FastWriter.flush(FastWriter.java:137)
>> > at
>> >
>> org.apache.solr.servlet.SolrDispatchFilter.writeResponse(SolrDispatchFilter.java:648)
>> > at
>> >
>> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:375)
>> > at
>> >
>> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:158)
>> > at
>> >
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>> > at
>> >
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>> > at
>> >
>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
>> > at
>> >
>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
>> > at
>> >
>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
>> > at
>> >
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
>> > at
>> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
>> > at
>> >
>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
>> > at
>> >
>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
>> > at
>> >
>> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
>> > at
>> >
>> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
>> > at
>> >
>> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313)
>> > at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
>> > at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
>> > at java.lang.Thread.run(Unknown Source)
>> > Caused by: java.net.SocketException: Software caused connection abort:
>> > socket write error
>> > at java.net.SocketOutputStream.socketWrite0(Native Method)
>> > at java.net.SocketOutputStream.socketWrite(Unknown Source)
>> > at java.net.SocketOutputStream.write(Unknown Source)
>> > at
>> >
>> org.apache.coyote.http11.InternalOutputBuffer.realWriteBytes(InternalOutputBuffer.java:215)
>> > at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:480)
>> > at
>> >
>> org.apache.coyote.http11.InternalOutputBuffer.flush(InternalOutputBuffer.java:119)
>> > at
>> >
>> org.apache.coyote.http11.AbstractHttp11Processor.action(AbstractHttp11Processor.java:799)
>> > at org.apache.coyote.Response.action(Response.java:174)
>> > at
>> org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:366)
>> > ... 24 more
>> >
>> >
>> >
>> > On Thu, Apr 10, 2014 at 9:51 AM, Alexandre Rafalovitch
>> > <arafa...@gmail.com>wrote:
>> >
>> >> Are you using all those cores at once? If not, there is a recent
>> >> settings to allow solr to load cores on demand.
>> >>
>> >> If you are using them all, perhaps you need to look into splitting
>> >> them to different machines (horizontal scaling).
>> >>
>> >> What about your caches? How many additional structures you have
>> >> configured for each core? How much memory you allocated to the Java
>> >> process. You are probably running out of memory and thrashing with a
>> >> swap. I am not even sure Java process can access that much memory in
>> >> one process. You might be better off running multiple Tomcat/Solr
>> >> instances on the same machine with different subsets of cores.
>> >>
>> >> Regards,
>> >>    Alex.
>> >> P.s. This is general advice, I don't know the specific issues around
>> >> that version of Solr/Tomcat.
>> >> Personal website: http://www.outerthoughts.com/
>> >> Current project: http://www.solr-start.com/ - Accelerating your Solr
>> >> proficiency
>> >>
>> >>
>> >> On Thu, Apr 10, 2014 at 1:40 PM, Atanas Atanasov <atanaso...@gmail.com>
>> >> wrote:
>> >> > Hi, guys,
>> >> >
>> >> > I need some help. After updating to SOLR 4.4 the tomcat process is
>> >> > consuming about 2GBs of memory, the CPU usage is about 40% after the
>> >> start
>> >> > for about 10 minutes. However, the bigger problem is, I have about
>> 1000
>> >> > cores and seems that for each core a thread is created. The process
>> has
>> >> > more than 1000 threads and everything is extremely slow. Creating or
>> >> > unloading a core even without documents takes about 20 minutes.
>> Searching
>> >> > is more or less good, but storing also takes a lot.
>> >> > Is there some configuration I missed or that I did wrong? There aren't
>> >> many
>> >> > calls, I use 64 bit tomcat 7, SOLR 4.4, latest 64 bit Java. The
>> machine
>> >> has
>> >> > 24 GBs of RAM, a CPU with 16 cores and is running Windows Server 2008
>> R2.
>> >> > Index is uppdated every 30 seconds/10 000 documents.
>> >> > I haven't checked the number of threads before the update, because I
>> >> didn't
>> >> > have to, it was working just fine. Any suggestion will be highly
>> >> > appreciated, thank you in advance.
>> >> >
>> >> > Regards,
>> >> > Atanas
>> >>
>>

Reply via email to