有个人长的像洋葱,走着走着就哭了…….

elasticsearch磁盘存储设置,急急急

Elasticsearch | 作者 张大帅 | 发布于2018年04月18日 | 阅读数:10590

elasticsearch目前单机,日志java.io.IOException: No space left on device,提示是磁盘空间不够,但是机器是有空间的,请问怎么设置,我有20M的日志数据,为什么到elasticsearch里面就存储了150M左右呢?
已邀请:

kennywu76 - Wood

赞同来自: laoyang360

补充一点: mapping一定要正确预先定义字段类型,避免在写入数据的时候根据数据类型让ES自己动态生成类型。 特别是字符串,ES动态生成的是multi-field,包含一个text,一个keyword类型。 往往有一个类型不是你需要的,却浪费了大量的磁盘空间。

zqc0512 - andy zhou

赞同来自: shitangjiejie

默认80% 与 默认90%样

JackGe

赞同来自:

先查看下elasticsearch.yml文件中path.data配置数据存放的目录,再通过df -h查看读取磁盘空间,是否是因为es存储数据所在的磁盘比较小,而其余磁盘比较空。
 
es占用的磁盘空间比原始日志数据还要大的可能原因,1. 保存日志数据的索引设置了副本(GET _cat/indices/{indexName}?v 查看pri.store.size的值)  2.索引的mapping配置,如果设置了分词,占用的空间就会大(多了倒排索引文件)

yayg2008

赞同来自:

猜测楼主没有对mapping进行优化,所以对占用的空间很诧异。去掉不必要的分词,存储会节省空间。

shitangjiejie

赞同来自:

同意楼上,es默认80%的时候磁盘就会报警,你可以关闭这个磁盘监控
curl -XPUT ip:9200/_cluster/settings -d '{ "transient" : { "cluster.routing.allocation.disk.threshold_enabled" : false } }'

要回复问题请先登录注册