我最近在调整一些设置,对比indexing性能时发现,当索引刚新建的时候,完成同样的写入量,节点的cpu使用率要低一些,随着数据写入越来越多,节点的cpu使用率就开始变高了,但也不是成正比关系,会稍微高一些,并且越到后来越趋于固定。
请问这个在理论上正常吗,是什么原因导致这种现象的呢?
另外一个类似的疑问就是,一般设置上只有建议分片不要超过30-50G,但是对整个索引来说,是不是可以设置的很大呢
比如一天的数据写到索引里,索引大小是5T的话,我只设置一个索引,100个分片。和平均写到5个索引,每个索引10个分片,总的indexing速率和cpu使用率,效果有差别吗?
请问这个在理论上正常吗,是什么原因导致这种现象的呢?
另外一个类似的疑问就是,一般设置上只有建议分片不要超过30-50G,但是对整个索引来说,是不是可以设置的很大呢
比如一天的数据写到索引里,索引大小是5T的话,我只设置一个索引,100个分片。和平均写到5个索引,每个索引10个分片,总的indexing速率和cpu使用率,效果有差别吗?
1 个回复
匿名用户
赞同来自:
第一个现象,是因为索引在插入的过程中会不断的进行分段文件的合并,io操作,会消耗cpu.
分片越多肯定是越好的,但是线程数量太多了,又不好,只能权衡一下.
主分片的数量跟数据节点的数据1比1
单个索引的数据量5T100分片,与5个索引1TB,20分片,哪一种好?
主要看数据的种类,数据能否按照业务进行打散?还是必须耦合到一起?
如果可以打散,业务之间没有任何关联? 那最好拆分开.
如果业务数据强关联,不能分开 . 放在一起和分开放,区别不大.
主要还是看业务,怎么去查询数据. 不能的业务,采用不同策略.