要不要再翻翻文档呢?

关于单个机器分片数容量问题

Elasticsearch | 作者 guoyanbiao520 | 发布于2021年01月04日 | 阅读数:5138

分片数的设定基本规则是遵照单分片不超过50g的规则,那有个问题请教各位大神,单个机器容纳多少分片呢,机器配置按照8核64G算,有点蒙圈,不知道单个机器多少分片是性能的瓶颈,现在我们5台机器,都是64G8核机器,将近2T数据,查询慢得要命,单分片数据都要100G了,想重新设置分片数调优,求大神指教~
已邀请:

spoofer

赞同来自: liaosy yimusidian

1 GB 内存 20个分片~

下面是业界总结出来的几条索引规划的原则:

索引分片设置为数据节点的倍数
单个分片大小控制在30GB-50GB
单个节点总分片建议不超过1000个
集群总分片个数控制在3万以内

官网文档:https://www.elastic.co/guide/e ... .html

阿里云的文档:https://help.aliyun.com/document_detail/72660.html

当然也欢迎来掘金订阅我的小册:https://juejin.cn/book/7054754754529853475
匿名用户

匿名用户

赞同来自: liaosy

6.8以前,64G内存的机器shard数最好不要超过600,从6.8以后可以冻结索引,分片数就没有那么多限制了。日志类场景,单分片控制在50GB以内,但实际生产环境经常遇到分片到40GB的时候,突然写入速率增加,延迟会非常高,所以一般控制在20-30GB
匿名用户

匿名用户

赞同来自: liaosy

分片数不多,主要是单个分片太大了,缩小到30GB试试

yimusidian - 90后IT男

赞同来自: liaosy

ES 的每个分片(shard)都是lucene的一个index,而lucene的一个index只能存储20亿个文档,所以一个分片也只能最多存储20亿个文档。 另外,我们也建议一个分片的大小在10G-50G之间,太大的话查询时会比较慢,另外在做副本修复的时,耗时比较多;如果有多个并发查询,则有很多小分片会降低查询吞吐量。
这个主要是要考虑索引的数据量、可能的并发数要求,还有es本身的限制,一个分片最多能索引20亿条数据。
建议:分片数和节点数一致就可以了。
如果考虑扩展,那就加倍。(1.5-2倍)

要回复问题请先登录注册