当Prometheus的PV使用量出现异常的过度开销时
病症表现
就像图像一样,发现Prometheus的PV使用量异常地过高。在启动时消耗了大约70GB。
普罗米修斯版本: 2.18.2
导致这种情况的因素
当我使用kubectl exec命令进入Prometheus容器时,我会发现
k exec -it prometheus-kube-prometheus-stack-prometheus-0 -n monitoring -c prometheus sh
有很多类似于01EN4ZAY5H2KD172GTD9X7JJC3.tmp的目录。
看了一下创建日期,显然超过了设定的保留日期。
试着减少后,PV使用量有所减少,并达到了合理的数值。
这到底是什么东西?
据调查,据报告,当度量的压缩或保留出现问题时,会创建名为 .tmp 的目录。
问题:https://github.com/prometheus/prometheus/issues/8180
由于未删除.tmp目录,我们的TSDB存储出现填满的问题。我们知道这些tmp目录是由于合并或保留失败而产生的,但即使Prometheus容器正常运行,这些剩余的tmp目录也没有在稍后的任何时间进行轮换或移除。
实质性因素是内存不足。
实际问题是普罗米修斯的内存不足。
顺便提一下,因为内存不足,我好几次都崩溃了。
看起来在8月中旬的2.21版本中,似乎已经合并了一个功能,在启动时自动删除.tmp目录。
PR:https://github.com/prometheus/prometheus/pull/7772
对应的拉请求链接:https://github.com/prometheus/prometheus/pull/7772
還在討論之前版本的支援問題嗎?問題的狀態仍然是未解決。
所以,我得立即更新Prometheus!