The most basic question is how you are load-testing it? Assuming you have some 
kind of client firing queries at Solr, keep adding threads so Solr is handling 
more and more queries in parallel. If you start to see the response time at the 
client get longer _and_ the  QTime in Solr’s response stays about the same, 
then the queries are queueing up and you need to see about increasing the Jetty 
threads handling queries.

Second is whether you’re hitting GC pauses, look at the GC logs, especially for 
“stop the world” pauses. This is unlikely as you’re still getting 60 qps, but 
something to check.

Setting your heap to 31G is good advice, but it won’t dramatically increase the 
throughput I’d guess.

If your I/O isn’t very high, then your index is mostly memory-resident. A 
general bit of tuning advice is to _reduce_ the heap size, leaving OS memory 
for the index. See Uwe’s blog: 
https://blog.thetaphi.de/2012/07/use-lucenes-mmapdirectory-on-64bit.html. 
There’s a sweet spot between having too much heap and too little, and 
unfortunately you have to experiment to find out.

But given the numbers you’re talking about, you won’t be getting 1,000 QPS on a 
single box and you’ll have to scale out with replicas to hit that number. 
Getting all the QPS you can out of the box is important, of course. Do be 
careful to use enough different queries that you don’t get them from the 
queryResultCache. I had one client who was thrilled they were getting 3ms 
response times…. by firing the same query over and over and hitting the 
queryResultCache 99.9999% of the time ;).

Best,
Erick

> On Sep 30, 2019, at 4:28 AM, Yasufumi Mizoguchi <yasufumi0...@gmail.com> 
> wrote:
> 
> Hi, Ere.
> 
> Thank you for valuable feedback.
> I will try Xmx31G and Xms31G instead of current ones.
> 
> Thanks and Regards,
> Yasufumi.
> 
> 2019年9月30日(月) 17:19 Ere Maijala <ere.maij...@helsinki.fi>:
> 
>> Just a side note: -Xmx32G is really bad for performance as it forces
>> Java to use non-compressed pointers. You'll actually get better results
>> with -Xmx31G. For more information, see e.g.
>> 
>> https://blog.codecentric.de/en/2014/02/35gb-heap-less-32gb-java-jvm-memory-oddities/
>> 
>> Regards,
>> Ere
>> 
>> Yasufumi Mizoguchi kirjoitti 30.9.2019 klo 11.05:
>>> Hi, Deepak.
>>> Thank you for replying me.
>>> 
>>> JVM settings from solr.in.sh file are as follows. (Sorry, I could not
>> show
>>> all due to our policy)
>>> 
>>> -verbose:gc
>>> -XX:+PrintHeapAtGC
>>> -XX:+PrintGCDetails
>>> -XX:+PrintGCDateStamps
>>> -XX:+PrintGCTimeStamps
>>> -XX:+PrintTenuringDistribution
>>> -XX:+PrintGCApplicationStoppedTime
>>> -Dcom.sun.management.jmxremote.ssl=false
>>> -Dcom.sun.management.jmxremote.authenticate=false
>>> -Dcom.sun.management.jmxremote.port=18983
>>> -XX:OnOutOfMemoryError=/home/solr/solr-6.2.1/bin/oom_solr.sh
>>> -XX:NewSize=128m
>>> -XX:MaxNewSize=128m
>>> -XX:+UseG1GC
>>> -XX:+PerfDisableSharedMem
>>> -XX:+ParallelRefProcEnabled
>>> -XX:G1HeapRegionSize=8m
>>> -XX:MaxGCPauseMillis=250
>>> -XX:InitiatingHeapOccupancyPercent=75
>>> -XX:+UseLargePages
>>> -XX:+AggressiveOpts
>>> -Xmx32G
>>> -Xms32G
>>> -Xss256k
>>> 
>>> 
>>> Thanks & Regards
>>> Yasufumi.
>>> 
>>> 2019年9月30日(月) 16:12 Deepak Goel <deic...@gmail.com>:
>>> 
>>>> Hello
>>>> 
>>>> Can you please share the JVM heap settings in detail?
>>>> 
>>>> Deepak
>>>> 
>>>> On Mon, 30 Sep 2019, 11:15 Yasufumi Mizoguchi, <yasufumi0...@gmail.com>
>>>> wrote:
>>>> 
>>>>> Hi,
>>>>> 
>>>>> I am trying some tests to confirm if single Solr instance can perform
>>>> over
>>>>> 1000 queries per second(!).
>>>>> 
>>>>> But now, although CPU usage is 40% or so and iowait is almost 0%,
>>>>> throughput does not increase over 60 queries per second.
>>>>> 
>>>>> I think there are some bottlenecks around Kernel, JVM, or Solr
>> settings.
>>>>> 
>>>>> The values we already checked and configured are followings.
>>>>> 
>>>>> * Kernel:
>>>>> file descriptor
>>>>> net.ipv4.tcp_max_syn_backlog
>>>>> net.ipv4.tcp_syncookies
>>>>> net.core.somaxconn
>>>>> net.core.rmem_max
>>>>> net.core.wmem_max
>>>>> net.ipv4.tcp_rmem
>>>>> net.ipv4.tcp_wmem
>>>>> 
>>>>> * JVM:
>>>>> Heap [ -> 32GB]
>>>>> G1GC settings
>>>>> 
>>>>> * Solr:
>>>>> (Jetty) MaxThreads [ -> 20000]
>>>>> 
>>>>> 
>>>>> And the other info is as follows.
>>>>> 
>>>>> CPU : 16 cores
>>>>> RAM : 128 GB
>>>>> Disk : SSD 500GB
>>>>> NIC : 10Gbps(maybe)
>>>>> OS : Ubuntu 14.04
>>>>> JVM : OpenJDK 1.8.0u191
>>>>> Solr : 6.2.1
>>>>> Index size : about 60GB
>>>>> 
>>>>> Any insights will be appreciated.
>>>>> 
>>>>> Thanks and regards,
>>>>> Yasufumi.
>>>>> 
>>>> 
>>> 
>> 
>> --
>> Ere Maijala
>> Kansalliskirjasto / The National Library of Finland
>> 

Reply via email to