Hi, A little history before i tell the actual issue. Please bare with me. In Dev lab with a single VM (2vCPU, 4gb RAM, 3Gb to JVM, JBoss5.1, JDK1.6.0.30) we used Solr 4.1 and indexed 250K documents with each document of avg size 22Kb - Totla index size is 3.6GB. Every thing works good. The only query that will be hitting this cluster is with *q=masterId:XXX* where masterId is our unique key defined in schema. All our fields are stored
Now for performance testing we requested our perf. lab to upgrade their Solr 3.5 to Solr 4.1. Performance Lab has 1 Master and 2 slaves. After upgrading To Solr 4.1 the first thing they observed is index size shrieked to 1/2 of Solr3.5 (This is good) They have the same machine Spec as Dev. As soon as we started hitting the Slaves with queries we saw CPU Spike upto 100% withing 2mins at 15QPS and the Application becomes sluggish to unresponsive. 1. The same machine had Solr 3.5 earlier word like charm and we took the QPS upto 150. But with 4.1 we are stuck below 15. 2. Even after we stop the load runner we still see CPU 100% for long time. 3. We also performed same query test by reverting 1 slave to Solr3.5 and second slave to 4.1. 3.5 had no issue and 4.1 was causing CPU 100% (Master was turned off so no replication) 4. Took thread dumps as to check whats consuming CPU. There were no dead locks and all threads are in Block State. of which most are as seen below this message. Burning ourselves for several hours so far we couldn't identify why 3.5 performs better than 4.1. Where as the only difference is solr and the related change required for 4.1 in schema and config file. Also we use MMapdirectory for both. Any advice or direction would be great. thanks Thread 32403: (state = BLOCKED) - java.util.AbstractList$Itr.hasNext() @bci=8, line=339 (Compiled frame; information may be imprecise) - org.apache.lucene.document.Document.getFields(java.lang.String) @bci=19, line=175 (Compiled frame) - org.apache.lucene.document.LazyDocument$LazyField.stringValue() @bci=38, line=107 (Compiled frame) - org.apache.solr.schema.FieldType.toExternal(org.apache.lucene.index.IndexableField) @bci=1, line=330 (Compiled frame) - org.apache.solr.schema.FieldType.toObject(org.apache.lucene.index.IndexableField) @bci=2, line=339 (Compiled frame) - org.apache.solr.response.BinaryResponseWriter$Resolver.getValue(org.apache.solr.schema.SchemaField, org.apache.lucene.index.IndexableField) @bci=120, line=223 (Compiled frame) - org.apache.solr.response.BinaryResponseWriter$Resolver.getDoc(org.apache.lucene.document.Document) @bci=76, line=186 (Compiled frame) - org.apache.solr.response.BinaryResponseWriter$Resolver.writeResultsBody(org.apache.solr.response.ResultContext, org.apache.solr.common.util.JavaBinCodec) @bci=205, line=147 (Compiled frame) - org.apache.solr.response.BinaryResponseWriter$Resolver.writeResults(org.apache.solr.response.ResultContext, org.apache.solr.common.util.JavaBinCodec) @bci=126, line=173 (Compiled frame) - org.apache.solr.response.BinaryResponseWriter$Resolver.resolve(java.lang.Object, org.apache.solr.common.util.JavaBinCodec) @bci=13, line=86 (Compiled frame) - org.apache.solr.common.util.JavaBinCodec.writeVal(java.lang.Object) @bci=24, line=154 (Compiled frame) - org.apache.solr.common.util.JavaBinCodec.writeNamedList(org.apache.solr.common.util.NamedList) @bci=53, line=144 (Compiled frame) - org.apache.solr.common.util.JavaBinCodec.writeKnownType(java.lang.Object) @bci=22, line=234 (Compiled frame) - org.apache.solr.common.util.JavaBinCodec.writeVal(java.lang.Object) @bci=2, line=149 (Compiled frame) - org.apache.solr.common.util.JavaBinCodec.marshal(java.lang.Object, java.io.OutputStream) @bci=20, line=92 (Compiled frame) - org.apache.solr.response.BinaryResponseWriter.write(java.io.OutputStream, org.apache.solr.request.SolrQueryRequest, org.apache.solr.response.SolrQueryResponse) @bci=68, line=50 (Compiled frame) - org.apache.solr.servlet.SolrDispatchFilter.writeResponse(org.apache.solr.response.SolrQueryResponse, javax.servlet.ServletResponse, org.apache.solr.response.QueryResponseWriter, org.apache.solr.request.SolrQueryRequest, org.apache.solr.servlet.cache.Method) @bci=104, line=397 (Interpreted frame) - org.apache.solr.servlet.SolrDispatchFilter.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) @bci=867, line=282 (Interpreted frame) - org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) @bci=119, line=235 (Compiled frame) - org.apache.catalina.core.ApplicationFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) @bci=101, line=206 (Compiled frame) - org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) @bci=61, line=96 (Compiled frame) - org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) @bci=119, line=235 (Compiled frame) - org.apache.catalina.core.ApplicationFilterChain.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) @bci=101, line=206 (Compiled frame) - org.apache.catalina.core.StandardWrapperValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response) @bci=800, line=235 (Interpreted frame) - org.apache.catalina.core.StandardContextValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response) @bci=363, line=191 (Compiled frame) - org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response) @bci=386, line=190 (Compiled frame) - org.jboss.web.tomcat.security.JaccContextValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response) @bci=117, line=92 (Interpreted frame) - org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response, org.jboss.servlet.http.HttpEvent) @bci=80, line=126 (Interpreted frame) - org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response) @bci=4, line=70 (Interpreted frame) - org.apache.catalina.core.StandardHostValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response) @bci=64, line=127 (Interpreted frame) - org.apache.catalina.valves.ErrorReportValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response) @bci=6, line=102 (Compiled frame) - org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response) @bci=35, line=158 (Compiled frame) - org.apache.catalina.core.StandardEngineValve.invoke(org.apache.catalina.connector.Request, org.apache.catalina.connector.Response) @bci=42, line=109 (Compiled frame) - org.apache.catalina.connector.CoyoteAdapter.service(org.apache.coyote.Request, org.apache.coyote.Response) @bci=157, line=330 (Interpreted frame) - org.apache.coyote.ajp.AjpProcessor.process(java.net.Socket) @bci=322, line=436 (Compiled frame) - org.apache.coyote.ajp.AjpProtocol$AjpConnectionHandler.process(java.net.Socket) @bci=39, line=384 (Interpreted frame) - org.apache.tomcat.util.net.JIoEndpoint$Worker.run() @bci=41, line=447 (Interpreted frame) - java.lang.Thread.run() @bci=11, line=662 (Interpreted frame) -- View this message in context: http://lucene.472066.n3.nabble.com/Solr3-5-Vs-Solr4-1-Help-please-tp4043543.html Sent from the Solr - User mailing list archive at Nabble.com.