疲劳是最舒适的枕头,努力工作吧。

单个索引过大是否会影响indexing性能?

Elasticsearch | 作者 wangxinrong | 发布于2020年05月14日 | 阅读数:2026

我最近在调整一些设置,对比indexing性能时发现,当索引刚新建的时候,完成同样的写入量,节点的cpu使用率要低一些,随着数据写入越来越多,节点的cpu使用率就开始变高了,但也不是成正比关系,会稍微高一些,并且越到后来越趋于固定。
 
请问这个在理论上正常吗,是什么原因导致这种现象的呢?
 
另外一个类似的疑问就是,一般设置上只有建议分片不要超过30-50G,但是对整个索引来说,是不是可以设置的很大呢
比如一天的数据写到索引里,索引大小是5T的话,我只设置一个索引,100个分片。和平均写到5个索引,每个索引10个分片,总的indexing速率和cpu使用率,效果有差别吗?
已邀请:
匿名用户

匿名用户

赞同来自:

这种问题没几个人能回答出来.
 
第一个现象,是因为索引在插入的过程中会不断的进行分段文件的合并,io操作,会消耗cpu.
 
分片越多肯定是越好的,但是线程数量太多了,又不好,只能权衡一下.
 
主分片的数量跟数据节点的数据1比1
 
单个索引的数据量5T100分片,与5个索引1TB,20分片,哪一种好?
 
主要看数据的种类,数据能否按照业务进行打散?还是必须耦合到一起?
 
如果可以打散,业务之间没有任何关联? 那最好拆分开.
 
如果业务数据强关联,不能分开 . 放在一起和分开放,区别不大. 
 
主要还是看业务,怎么去查询数据. 不能的业务,采用不同策略.
 
 
 
 
 
 
 

要回复问题请先登录注册