-
背景
有一套es,12个data节点,分片数量平衡,但是磁盘大小使用率不均衡。
ES集群 kibana地址
如下:
172.21.43.106、172.21.43.142 两个节点明显超过其他节点磁盘占用率近10%
-
分析
集群整体上有12个数据节点,591个索引(包括以. 开头的内置索引如.monitoring-es-6-2024.12.27、.kibana 等),6286个分片。
分析如下:
| 分片数 | |
|---|---|
| 172.21.43.101 | 524 |
| 172.21.43.102 | 523 |
| 172.21.43.103 | 524 |
| 172.21.43.104 | 524 |
| 172.21.43.105 | 523 |
| 172.21.43.106 | 524 |
| 172.21.43.107 | 524 |
| 172.21.43.108 | 524 |
| 172.21.43.109 | 524 |
| 172.21.43.142 | 524 |
| 172.21.43.143 | 524 |
| 172.21.43.144 | 524 |
-
分析分片数等于节点数的索引数据
经过分析发现,索引如果设置为12个分片,同一索引的各分片数据基本无差异(有些小数据量的分片有kb级别的的差异,忽略不计)
-
分析分片数小于节点数的索引数据(普通索引)
其中有274个索引设置的分片数小于12(node节点数),可能导致数据在不同node节点分布不均。
如下为索引分片数小于node节点数的索引截图:
如下为上图索引数据在各节点node上的分布统计截图:
分析这些分片数小于12的索引数据分布情况,可以发现 172.21.43.106 节点的数据量最大,可以断定因为索引设置分片数小于12,导致数据分布未均匀分布在12个node上, 172.21.43.106 节点的磁盘占用比其他节点大。
-
分析内部索引(以索引名. 开头的索引)
共21个索引,42个分片,截图如下:
分析这些内部索引数据分布情况,可以发现 172.21.43.142 节点的数据量最大,可以断定因为内部索引因为分片数未达到12,数据未均匀分布,导致 172.21.43.142 节点的磁盘占用比其他节点大。
内部索引的分片和数据量大小如下(数据量单位 MB):
| 43.101 | 43.102 | 43.103 | 43.104 | 43.105 | 43.106 | 43.107 | 43.108 | 43.109 | 43.142 | 43.143 | 43.144 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| .monitoring-kibana-6-2025.01.03 | 0.246 | 0.246 | ||||||||||
| .reporting-2022.02.27 | 0.019 | 0.019 | ||||||||||
| .monitoring-es-6-2024.12.30 | 3993.6 | 3993.6 | ||||||||||
| .monitoring-kibana-6-2024.12.27 | 2.2 | 2.2 | ||||||||||
| .monitoring-es-6-2025.01.03 | 431.2 | 517.7 | ||||||||||
| .reporting-2024.01.28 | 2.6 | 2.6 | ||||||||||
| .monitoring-kibana-6-2024.12.29 | 2.0 | 2.0 | ||||||||||
| .monitoring-es-6-2025.01.02 | 4096 | 4096 | ||||||||||
| .monitoring-es-6-2025.01.01 | 3993.6 | 3993.6 | ||||||||||
| .monitoring-kibana-6-2024.12.28 | 2.0 | 2.0 | ||||||||||
| .monitoring-es-6-2024.12.31 | 3993.6 | 3993.6 | ||||||||||
| .monitoring-es-6-2024.12.27 | 3891.2 | 3891.2 | ||||||||||
| .monitoring-kibana-6-2024.12.30 | 2.1 | 2.1 | ||||||||||
| .reporting-2024.06.02 | 2.7 | 2.7 | ||||||||||
| .monitoring-kibana-6-2024.12.31 | 2.0 | 2.0 | ||||||||||
| .kibana | 0.078 | 0.078 | ||||||||||
| .monitoring-es-6-2024.12.29 | 3891.2 | 3891.2 | ||||||||||
| .reporting-2024.01.14 | 5.3 | 5.3 | ||||||||||
| .monitoring-es-6-2024.12.28 | 3891.2 | 3891.2 | ||||||||||
| .monitoring-kibana-6-2025.01.01 | 2.0 | 2.0 | ||||||||||
| .monitoring-kibana-6-2025.01.02 | 2.2 | 2.2 |
-
总结
分片数小于12节点的索引导致 172.21.43.106、172.21.43.103、172.21.43.142 节点数据量比其他节点大。
内部索引导致 172.21.43.142、172.21.43.105 节点数据量比其他节点大。
综合之下:
172.21.43.106、172.21.43.142 两个节点的数据量比其他节点大。
-
建议
- 内部索引因为分片数比较少,未达到数据在各节点node上的均匀分布(数理学上的样本数比较少导致未均匀分布,属于正常现象)。并且不建议修改内部索引,暂时维持现状。
- 业务上使用的普通索引,建议设置分片数=节点node数,这样可以保证数据在各节点node上的均匀分布。