On 10/29/2018 7:24 AM, Sofiya Strochyk wrote:
Actually the smallest server doesn't look bad in terms of performance,
it has been consistently better that the other ones (without
replication) which seems a bit strange (it should be about the same or
slightly worse, right?). I guess the memory being smaller than index
doesn't cause problems due to the fact that we use SSDs.
SSD, while fast, is nowhere near as fast as main memory. As I said, the
memory numbers might cause performance problems, or they might not.
Glad you're in the latter category.
What if we are sending requests to machine which is part of the
cluster but doesn't host any shards? Does it handle the initial
request and merging of the results, or this has to be handled by one
of the shards anyway?
Also i was thinking "more shards -> each shard searches smaller set of
documents -> search is faster". Or is the overhead for merging results
bigger than overhead from searching larger set of documents?
If every shard is on its own machine, many shards might not be a
performance bottleneck with a high query rate. The more shards you
have, the more the machine doing the aggregation must do to produce results.
SolrCloud complicates the situation further. It normally does load
balancing of all requests that come in across the cloud. So the machine
handling the request might not be the machine where you SENT the request.
Very likely the one with a higher load is the one that is aggregating
shard requests for a full result.
Is there a way to confirm this? Maybe the aggregating shard is going
to have additional requests in its solr.log?
The logfiles on your servers should be verbose enough to indicate what
machines are handling which parts of the request.
Most Solr performance issues are memory related. With an extreme
query rate, CPU can also be a bottleneck, but memory will almost
always be the bottleneck you run into first.
This is the advice i've seen often, but how exactly can we run out of
memory if total RAM is 128, heap is 8 and index size is 80. Especially
since node with 64G runs just as fine if not better.
Even when memory is insufficient, "running out" of memory generally
doesn't happen unless the heap is too small.Java will work within the
limits imposed by the system if it can. For OS disk cache, the OS tries
to be as smart as it can about which data stays in the cache and which
data is discarded.
A lot of useful information can be obtained from the GC logs that
Solr's built-in scripting creates. Can you share these logs?
The screenshots described here can also be very useful for
troubleshooting:
https://wiki.apache.org/solr/SolrPerformanceProblems#Asking_for_help_on_a_memory.2Fperformance_issue
I have attached some GC logs and screenshots, hope these are helpful
(can only attach small files)
Only one attachment made it to the list. I'm surprised that ANY of them
made it -- usually they don't. Generally you need to use a file sharing
website and provide links. Dropbox is one site that works well. Gist
might also work.
The GC log that made it through (solr_gc.log.7.1) is only two minutes
long. Nothing useful can be learned from a log that short. It is also
missing the information at the top about the JVM that created it, so I'm
wondering if you edited the file so it was shorter before including it.
Thanks,
Shawn