On 7/18/2018 12:04 AM, Ash Ramesh wrote:
I have a quick question about what the memory requirements for TLOG
machines are on 7.3.1. We currently run replication where there are 3 TLOGs
with 8gb ram (2gb heap) and N PULL replicas with 32gb ram (4gb heap). We
have > 10M documents (1 collection) with the index size being ~ 17gb. We
send all read traffic to the PULLs and send Updates and Additions to the
Leader TLOG.
We are wondering how this setup can affect performance for replication,
etc. We are thinking of increasing the heap of the TLOG to 4gb but leaving
the total memory on the machine at 8gb. What will that do to performance?
We also expect our index to grow 3/4x in the next 6 months.
Performance has more to do with index size and memory size than the type
of replication you're doing.
SolrCloud will load balance queries across the cloud, so your low-memory
TLOG replicas are most likely handling queries as well. In a SolrCloud
cluster, a query is not necessarily handled by the machine that you send
the query to.
With memory resources that low compared to index size, the 8GB machines
probably do not perform queries as well as the 32GB machines. If you
increase the heap to 4GB, that will only leave 4GB available for the OS
disk cache, and that's going to drop query performance even further.
There is a feature in Solr 7.4 that will allow you to prefer certain
replica types, so you can tell Solr that it should prefer PULL
replicas. But since you're running 7.3.1, you don't have that feature.
https://issues.apache.org/jira/browse/SOLR-11982
There is also a "preferLocalShards" parameter that has existed for
longer than the new feature mentioned above. This tells Solr that it
should not load balance queries in the cloud if there is a local index
that can satisfy the query. This parameter should only be used if you
have an external load balancer.
Indexing is a heap-intensive operation that doesn't benefit much from
having a lot of extra memory for the operating system. I have no idea
whether 2GB of heap is enough or not. Increasing the heap size MIGHT
make performance better, or it might make no difference at all.
Thanks,
Shawn