如何查看和解释 ElasticSearch 集群的磁盘空间使用情况
要了解你的 elasticsearch 集群每个节点正在使用多少磁盘空间以及剩余多少磁盘空间,使用
es_allocation_curl.sh
curl -XGET "http://localhost:9200/_cat/allocation?v&pretty"一个没有任何数据的节点的示例输出:
es_allocation_example.txt
shards disk.indices disk.used disk.avail disk.total disk.percent host ip node
0 0b 2.4gb 200.9gb 203.3gb 1 172.18.0.2 172.18.0.2 TxYuHLFes_allocation_explanation.txt
此示例输出告诉你:
* `shards: 0` 集群当前没有分片。这意味着集群中没有数据
* `disk.indices: 0b` 集群当前使用 0 字节的磁盘空间用于索引。
* `disk.used: 2.4gb` ElasticSearch 存储其数据的磁盘有 2.4 千兆字节已用空间。这并不意味着 ElasticSearch 使用 2.4 千兆字节,任何其他应用程序(包括操作系统)也可能使用(部分)该空间。
* `disk.avail: 200.9gb` ElasticSearch 存储其数据的磁盘有 200.9 千兆字节的可用空间。记住这不会仅在 ElasticSearch 在该磁盘上使用数据时缩小,其他应用程序也可能消耗一些磁盘空间,具体取决于你如何设置 ElasticSearch。
* `disk.total: 203.3gb` ElasticSearch 存储其数据的磁盘总大小为 203.3 千兆字节(总大小即*没有任何文件的文件系统上的可用空间*)
* `disk.percent: 1` 当前可用总磁盘空间(`disk.total`)的 1% 已被使用。此值始终四舍五入到整百分比。
* `host, ip, node`:此行引用的节点。一个带有一些测试数据的节点的示例(请参见此 TechOverflow 文章了解如何生成测试数据):
es_allocation_example_with_data.txt
shards disk.indices disk.used disk.avail disk.total disk.percent host ip node
5 6.8kb 2.4gb 21.6gb 24gb 10 172.18.0.2 172.18.0.2 J3W5zqj
5 UNASSIGNED如我们所见,ElasticSearch 现在有 5 个分片。注意第二行告诉我们 5 个分片是 UNASSIGNED。这是因为 ElasticSearch 已配置为每个分片制作一个副本,并且没有第二个节点可以放置副本。对于开发配置这通常没问题,但生产配置通常应至少有两个节点。请参见我们的 ElasticSearch docker-compose 和 systemd 服务生成器了解如何使用 docker 配置本地多节点集群的说明。
Check out similar posts by category:
ElasticSearch
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow