問題
Prometheus OpenMetrics integration for Docker or Kubernetesをインストールしたところ、メモリやCPUを大量に消費してしまいました。
解決
数百のターゲットをスクレイピングする巨大なクラスタで統合を実行すると、CPU とメモリの消費量が増加し、ワーカーの数がscrape_duration
に影響を与える可能性があります。
例えば、Prometheus OpenMetricsの統合では、2.5のCPUと700MbのRAMを消費します。
800 targets
をスクレイピングし、それぞれ1000 timeseries
を露出させます。- それぞれのレイテンシは
150ms
で、scrape_duration
は 30 秒です。
資源の消費を抑えるために
インテグレーションを最新の利用可能なイメージに更新します。
emitter_harvest_period
を下げることで収穫時間を短縮します。(デフォルト値は1s
であり、間隔は200ms
より小さくすることはできません。)メトリクスがより頻繁に送信されるため、メモリ消費量が削減されます。scrape_duration
を増やすことでメトリクスの収集頻度を減らし、メモリ消費と CPU 使用率の両方を削減します。ワーカーの数を減らして、メモリ消費と CPU 使用率の両方を削減します。スクレイピングの速度が低下し、
scrape_duration.
を超える可能性があります。- インテグレーションを、利用可能な最新バージョンの画像に更新します。
worker_threads
デフォルト値の4
から希望の値まで減らします。