我有一个2节点的es集群(弹性云),堆大小为60gb。下面是我的索引和分配的碎片数。
green open prod-master-account 6 0 6871735 99067 4.9gb 4.9gb
green open prod-master-categories 1 1 221 6 3.5mb 1.7mb
green open prod-v1-apac 4 1 10123830 1405510 11.4gb 5.6gb
green open prod-v1-emea 9 1 28608447 2405254 30.6gb 15gb
green open prod-v1-global 10 1 94955647 12548946 128.1gb 61.2gb
green open prod-v1-latam 2 1 4398361 471038 4.7gb 2.3gb
green open prod-v1-noram 9 1 51933712 6188480 60.1gb 29.2gb
jvm内存在60%以上。我想把这个集群降级到一个较低的堆大小。但是它每次都失败,并且由于jvm内存太高而导致一个断路器。
我想知道为什么jvm内存仍然很高?如何保持jvm内存较低?我是不是做了些错事?
正如指南中所说的每gb保留20个碎片,看看我的配置,它的值低于这些值。如何将此群集降级为较低堆大小的群集?
非常感谢!
1条答案
按热度按时间lpwwtiir1#
对于es进程或任何其他jvm进程,不建议使用60gb的堆大小,因为超过32gb时,jvm不使用压缩对象指针(压缩oop),因此无法获得最佳性能。
更多信息请参考es官方文件堆设置。
您可以在下面尝试优化es堆大小
如果您有大的ram机器,那么尝试使用中等大小的机器,在那里您将50%的ram分配给es heap size(不应超过32gb heap size阈值)。
分配较少的主碎片并增加副本碎片以获得更好的搜索性能,有关更多信息,请参阅opster的碎片和副本指南。