Do multiple Solr shards on a single machine improv

2019-03-09 22:49发布

问题:

Does running multiple Solr shards on a single machine improve performance? I would expect Lucene to be multi-threaded, but it doesn't seem to be using more than a single core on my server with 16 physical cores. I realize this is workload dependent, but any statistics or benchmarks would be very useful!

回答1:

I ran some benchmarks of our search stack, and found that adding more Solr shards (on a single machine, with 16 physical cores) did improve performance up to about 8 shards (where I got a 6.5x speed up). This is on an index with ~1.5million documents, running complex range queries.

So, it seems that Solr doesn't take advantage of multiple physical cores, when running queries against a single index.



回答2:

If you currently have a single box with a single shard, then splitting this shard into several shards:

  • is likely to worsen throughput,
  • may improve latency, by parallelizing query execution.

I can't provide you with statistics or benchmarks because it depends on whether query execution is CPU or I/O bound: if query execution is already I/O bound on a single box then splitting the shard into several shards will even worsen throughput. You will need to test yourself, just take a production log and try to replay it in both scenarii.