近期通过consul注册了100个node_exporter,发现prometheus所在服务器,频繁发生IO负载过高,内存耗尽的问题(4C8G,普通200GHDD盘),导致服务器短暂性失联,直到服务重启后,内存、IO等指标逐渐恢复正常,通过查看官方文档,得知,prometheus默认2小时会将采集的监控指标数据从内存中落到硬盘中,基本可以确定,是内存数据落盘时导致突发性IO增高,由于数据首先写入内存,所以内存也逐渐耗尽,找到问题后,第一个想到的办法是将本地存储改为远端的时序数据库tsdb,降低本地IO,但发现尽管配置了remote_wirte/remote_read,本地还是会落盘,问题没有得到改善,再经过查看配置文件,发现获取节点监控指标的频率是15s,即scrape_interval,而官方默认配置为1m,猜想应该是频率太高,导致内存积累的数据过大,于是将该参数调整为1m,降低了数据采集频率,情况好转,目前内存一直稳定在65-80%,落盘时内存会增大到最高点,数据回写完成后,降到最低点。问题得以解决【在不考虑硬件扩容的情况下】。
记录一次prometheus占用大量内存故障处理
原创
©著作权归作者所有:来自51CTO博客作者zhenlq2015的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
一次临时表空间大量占用问题的处理
一个电信运营商客户的核心交易系统,临时表空间大量被占用,临时表空间被撑到了600GB。这样的问题复杂吗?取决于很多因素
数据库 java mysql oracle python -
记录一次vSAN硬盘故障
本文主要记录了一次vSAN下的磁盘故障排查操作,问题的发现、排查、解决,以及总结
服务器 故障记录 vSAN vmware ESXi -
记录一次生产ES故障
ES
数据 elastic 历史数据