近期通过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%,落盘时内存会增大到最高点,数据回写完成后,降到最低点。问题得以解决【在不考虑硬件扩容的情况下】。