弹性云配置的elasticsearch碎片大小和jvm内存

hfyxw5xn  于 2021-06-10  发布在  ElasticSearch
关注(0)|答案(1)|浏览(414)

我有一个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个碎片,看看我的配置,它的值低于这些值。如何将此群集降级为较低堆大小的群集?
非常感谢!

lpwwtiir

lpwwtiir1#

对于es进程或任何其他jvm进程,不建议使用60gb的堆大小,因为超过32gb时,jvm不使用压缩对象指针(压缩oop),因此无法获得最佳性能。
更多信息请参考es官方文件堆设置。
您可以在下面尝试优化es堆大小
如果您有大的ram机器,那么尝试使用中等大小的机器,在那里您将50%的ram分配给es heap size(不应超过32gb heap size阈值)。
分配较少的主碎片并增加副本碎片以获得更好的搜索性能,有关更多信息,请参阅opster的碎片和副本指南。

相关问题