es磁盘空间清理

近期发现es磁盘空间占用率达到了88%,理论上讲,磁盘空间占用率高于85%会影响分片,高于90%则会影响数据写入,需要及时处理。

问题排查:

使用 GET /_cat/allocation?v 命令查看es磁盘空间使用情况,发现索引只占用了100G左右,但是总的占用却高达400G多,其他的空间被什么占用了呢?

磁盘空间占用:

1、索引占用

2、缓存

3、日志

4、执行删除未释放占用

其中缓存占用只有少部分,暂且忽略,依次说下其他占用处理方案。

索引占用

索引占用包含过期索引占用和 Monitoring 监控索引占用。

过期索引占用可以写一个定时任务,定期检查是否存在过期索引,目前是保留两天索引,其他历史索引直接清理掉即可,这里清理磁盘空间30G左右。

Monitoring 监控这里大概讲下,它的作用主要是为了监测集群的健康情况,对应索引中主要存放了集群状态、集群统计、节点统计、索引统计等信息。默认是保留近7天的监控数据,监控客户

端会每隔10s采集一次集群的监控信息。随着索引的增多和数据量的上升,Monitoring 监控索引占用空间会越来越大,目前监控索引大小16G左右,7天的也就是112G。

针对 Monitoring 监控索引占用空间和实际业务情况,讲监控周期设置为3天。可以节省大概64G。

## 设置检测周期为3天
{"persistent": {"xpack.monitoring.history.duration":"3d"}}

## 查看设置是否生效
GET _cluster/settings

## 删除已存在检测索引
GET /.monitoring-es-6-2022.10.03/_search
GET /.monitoring-kibana-6-2022.10.03/_search

DELETE .monitoring-es-6-2022.10.07
DELETE .monitoring-kibana-6-2022.10.07

注:以上设置对于开源基础版本是不支持的,即使设置了天数为3天,但是依然会保留默认7天设置。(这也是后面发现不会自动清理历史监测索引后发现的,看来想要更好的服务还是需要花钱。。)

日志

联系运维直接删除即可,可保留最近一周

执行程序未释放

重启节点或直接kill【kill存在风险,需谨慎】,释放100G左右。

posted @ 2022-10-10 11:50  所见即我  阅读(3142)  评论(0编辑  收藏  举报