改进Elasticsearch索引性能

06odsfpq  于 2023-06-21  发布在  ElasticSearch
关注(0)|答案(1)|浏览(89)

我试图提高我的ES(版本8.3.3)索引性能。
我有一个2节点集群(在2个物理服务器上,每个服务器有96个CPU和755 GB RAM),我将分片的数量设置为4,副本设置为0,索引设置为40 GB(它将每30分钟左右滚动一次)。有2个filebeat示例将数据推送到同一个ES。
我想知道,无论我的ES集群中有多少个节点,我所有的数据都只能写入一个索引。这是分片数量有助于并行写入索引的地方吗?
通过将分片的数量从2增加到4,我看到了一个轻微的改善,其中看到的最高索引速率从~ 33 K/s增加到~ 41 K/s,但在我的filebeat日志中仍然报告了丢包。
与此同时,我读到过有太多的碎片会降低搜索性能。
我的问题是,对于40 GB的索引大小,我应该设置多少个分片,而不会降低搜索性能?

0yycz8jy

0yycz8jy1#

我想知道,无论我的ES集群中有多少个节点,我所有的数据都只能写入一个索引。这是分片数量有助于并行写入索引的地方吗?
是的。主分片计数将帮助您并行化流程,特别是索引。但当然,这仅限于硬件本身。Elasticsearch可以和你的硬件一样快。所以,如果你还没有SSD磁盘,也许你可以切换到SSD磁盘。RAID类型对性能也有很大影响。
我的问题是,对于40 GB的索引大小,我应该设置多少个分片,而不会降低搜索性能?
在最佳实践中,建议将碎片大小保持在10- 50 GB之间。分片大小已经在该范围内,您可以检查以下建议。

推荐:

1.在2台物理服务器上构建虚拟机,将最大RAM设置为62 GB RAM,并将堆设置为31 GB。每个物理服务器将有12个节点。它会表现得更好。
1.至少有3个专用主节点,内存为4GB。
1.拥有专用的协调器节点,并通过它们发送所有HTTP流量。
1.将refresh_interval设置为更大的数值以加快索引速度。
一些有用的文章:Tune for indexing speed.Tune for search speed.

相关问题