Hi. I am studying Lucene performance and in particular how it benefits from 
faster I/O such as SSD and NVMe.
I am using nightlybench for indexing wiki (1K docs) with similar parameters as 
used in nightlyBench. (Hardware: Intel Xeon, 2.5GHz, 20 processor ,40 with 
hyperthreading, 64G Memory) and study indexing speed on HDD, SSD and NVMe. 
While I do see benefit when switching from HDD to SSD, there is not much 
noticeable benefit moving to NVMe.
I get best performance (200GB/hour) with 20 indexing threads, increasing number 
of threads to 40 hurts performance. Similarly increasing maxConcurrentMerges 
above 3-5 doesn't seem to give me any benefit. I am wondering what the 
bottleneck is, or anyone has insight on  set of options (number of threads, 
merge options, flush options, read buffer?) to take advantage of a very fast 
I/O system. I see NVMe bandwidth going as high as 800MB/s but it is only fast 
spikes and CPU utilization is about 50% on average, though some cores have 
consistently higher utilization while others have spiky behavior.
You thoughts and inside is greatly appreciated. Thanks.
Anahita Shayesteh

Reply via email to