Hey there, I have been doing some stress with a 2 physical CPU (with 4 cores each) server. After some reading about GC performance tunning I have configured it this way:
/usr/lib/jvm/java-6-sun/bin/java -server -Xms7000m -Xmx7000m -XX:ReservedCodeCacheSize=10m -XX:NewSize=1000m -XX:MaxNewSize=1000m -XX:SurvivorRatio=16 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+CMSClassUnloadingEnabled -XX:PermSize=35m -XX:MaxPermSize=35m -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/opt/tomcat-shard-00/common/endorsed My java version is: java version "1.6.0_12" Java(TM) SE Runtime Environment (build 1.6.0_12-b04) Java HotSpot(TM) 64-Bit Server VM (build 11.2-b01, mixed mode) My index is optimized with compound file and in readOnly mode. I just have a solr core in my Solr box. I have launched different test against an index and for my surprise the results are: test1: number of concurrent threads: 2 throughput: 15 response ms: 130 test2: number of concurrent threads: 3 throughput: 22.3 average response ms: 130 test3: number of concurrent threads: 4 throughput: 28 average response ms: 140 test4: number of concurrent threads: 5 throughput: 26.8 average response ms: 190 test5: number of concurrent threads: 6 throughput: 22 average response ms: 270 All requests are launched to the same IndexSearcher (no reloads or warmings are done during the test) I have activated the debug in the JVM to see when a GC happens. It is happening every 3 seconds and it takes 20ms aprox in test1,test2,test3. In test4 and test5 it happens every 3 seconds aswell and takes 40ms. So, looks like GC is not delaying the average response time of the requests. The machine has 4 cores and it is really not stressed in terms of CPU, neighter IO (I am using ssd disk). Given this scenario, how is it possible that changing from 5 concurrent threads to 6 the average response time is almost double? (or from 4 to 5 is not double but it still significantly more) I think GC can't be the cause given the numbers I have mencioned. As far as I always have understood Lucene IndexSearcher deals perfectly with concurreny but it's seems that there's something there that blocks when there is more that 2 requests at the same time. Compound file optimization gives better response times but could in any way be bad for performance? I am so confused about this... can someone explain me if this is normal or why does it happens? I mean, if lucene or Solr has some blocking thing? Thanks in advance -- View this message in context: http://old.nabble.com/Strange-performance-behaviour-when-concurrent-requests-are-done-tp27659695p27659695.html Sent from the Solr - User mailing list archive at Nabble.com.