Elasticsearch 索引在磁盘上占用的空间比显示的要大

标签 elasticsearch elasticsearch-6

我在 elasticsearch 中有几个索引,其中一个只有大约 100 个文档,但它必须每隔一秒更新一次。

GET _cat/indices 的结果如下:

green  open index1           8naYU5e-R-iHvfSKnrEiGw 1 0      2   9  25.5kb  25.5kb
yellow open index2           ZPQWzY7VRYGnBG0i6AL5ag 5 1   5658  89   1.2mb   1.2mb
yellow open index3           MTIDbt4uQbOv4K-0uuyOKA 5 1      0   0   1.1kb   1.1kb
yellow open index4           laF0UcIYTFKQQ6bB9dtQyw 5 1      0   0   1.1kb   1.1kb
yellow open index5           d5SYGXhYTPiVH_GKSA47lQ 5 1      0   0   1.1kb   1.1kb
yellow open index6           nIiNMwNWRZu-aISdLWa8ZA 5 1 110964  61  16.1mb  16.1mb
yellow open index7           g492XL4ZRKy4NOIBwF1yzA 5 1 111054 352  12.5mb  12.5mb
yellow open index8           C2g2RI_oQaOxUvpbzSnVIQ 5 1    123 400 484.8kb 484.8kb

如您所见,index7 中只有 123 个文档,占用的磁盘空间不应超过 500kb。

但是 du -sh ./* 的结果是这样的:

128K    ./8naYU5e-R-iHvfSKnrEiGw
1.5G    ./C2g2RI_oQaOxUvpbzSnVIQ
172K    ./d5SYGXhYTPiVH_GKSA47lQ
1.1G    ./g492XL4ZRKy4NOIBwF1yzA
172K    ./laF0UcIYTFKQQ6bB9dtQyw
172K    ./MTIDbt4uQbOv4K-0uuyOKA
424M    ./nIiNMwNWRZu-aISdLWa8ZA
276M    ./ZPQWzY7VRYGnBG0i6AL5ag

它占用了超过 1GB 的磁盘空间。

我的问题是为什么以及如何解决?

我在 Ubuntu 16.04 上使用 elasticsearch 6.2.4

更新

du -sh ./g492XL4ZRKy4NOIBwF1yzA/* 的结果

3.2M    ./indices/g492XL4ZRKy4NOIBwF1yzA/0/index
8.0K    ./indices/g492XL4ZRKy4NOIBwF1yzA/0/_state
241M    ./indices/g492XL4ZRKy4NOIBwF1yzA/0/translog
3.1M    ./indices/g492XL4ZRKy4NOIBwF1yzA/1/index
8.0K    ./indices/g492XL4ZRKy4NOIBwF1yzA/1/_state
238M    ./indices/g492XL4ZRKy4NOIBwF1yzA/1/translog
3.2M    ./indices/g492XL4ZRKy4NOIBwF1yzA/2/index
8.0K    ./indices/g492XL4ZRKy4NOIBwF1yzA/2/_state
241M    ./indices/g492XL4ZRKy4NOIBwF1yzA/2/translog
3.1M    ./indices/g492XL4ZRKy4NOIBwF1yzA/3/index
8.0K    ./indices/g492XL4ZRKy4NOIBwF1yzA/3/_state
241M    ./indices/g492XL4ZRKy4NOIBwF1yzA/3/translog
3.1M    ./indices/g492XL4ZRKy4NOIBwF1yzA/4/index
8.0K    ./indices/g492XL4ZRKy4NOIBwF1yzA/4/_state
241M    ./indices/g492XL4ZRKy4NOIBwF1yzA/4/translog
4.0K    ./indices/g492XL4ZRKy4NOIBwF1yzA/_state/state-4.st

最佳答案

您在索引文件夹上使用 du -h 测量的大小不仅包括索引中存储的文档所占用的大小,还包括 translog files ,默认情况下最大可达 512mb。

在您的情况下,_cat/indices 显示您的 index7 索引大小为 12.5mb,并且在您的索引文件夹上运行 du -h ,您可以看到位于每个分片文件夹中的每个 index 子文件夹大约为 3.1mb,与 _cat/indices 报告的大小相同。

关于Elasticsearch 索引在磁盘上占用的空间比显示的要大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50111347/

相关文章:

docker - Elasticsearch Docker Compose 没有启动 - 如何?

elasticsearch - 具有多个条件和时间范围的Elasticsearch查询

cluster-computing - Elasticsearch 中的集群

java - ElasticSearch 中的部分类型映射

elasticsearch - 在 Elasticsearch 6 上找不到 org.elasticsearch.common.transport.InetSocketTransportAddress

elasticsearch - 将 Elastic 搜索数据从 5.6.4 迁移到 6.6.0

elasticsearch - 按 Kibana 中的属性出现计数文档

image - 使用python 3.6.0在Elasticsearch中存储图像的正确方法

elasticsearch - 与 Elastic Search 6 和 php ClientBuilder 完全匹配

elasticsearch - 如何在跨域查询中包括部分匹配的结果?