ES提示MANY_REQUESTS/12/disk usage exceeded flood-stage watermark, index has read-only-allow-delete
liuhua-2023/8/15 12:04:12
今天我们公司运营平台测试环境提交审批时遇到ES报错问题,提交审批流程都不行。
分析了一下,应该是流程服务所以来的ES服务主动锁定索引造成的。网上查了一下ES锁定的原因,可能是内存满了,磁盘满了,或索引在恢复中、刷新中、合并中、备份、复制中。
参考:https://blog.csdn.net/qq_38423256/article/details/131062957
显示最近我们没有对ES进行维护操作,应该是内存或磁盘的问题。又查询、排除了内存占用的问题,最后看磁盘,50G的磁盘只剩不到5%的可用空间了。估计是ES服务判断了磁盘剩余空间阈值,进而将索引变成了只读模式。我尝试通过以下操作去掉只读模式:
curl -X PUT "http://localhost:9200/_all/_settings" -H "Content-Type: application/json" -d '{"index.blocks.read_only_allow_delete": null}'
该操作返回执行成功,通过以下操作查询结果:
curl http://localhost:9200/_all/_settings
看到只读模式去掉了。但一会儿再查询,又变成只读模式了。
看来只能尝试清理磁盘了。
通过du -h --max-depth=1查询各目录占用磁盘空间大小,找到磁盘占用大的目录,进行清理。
清理了一定磁盘空间后,再执行操作去掉只读模式,然后成功了。