문제
Docker 또는 Kubernetes용 Prometheus OpenMetrics 통합 을 설치했으며 메모리 또는 CPU를 너무 많이 사용합니다.
해결책
수백 개의 대상을 스크래핑하는 거대한 클러스터에서 통합을 실행하면 CPU 및 메모리 소비가 증가하고 작업자 수가 scrape_duration
에 영향을 미칠 수 있습니다.
예를 들어 Prometheus OpenMetrics 통합은 다음과 같은 이유로 2.5 CPU와 700Mb RAM을 사용합니다.
800 targets
긁어내고 각각1000 timeseries
노출됩니다.- 각각의 지연 시간은
150ms
이고scrape_duration
은 30초입니다.
리소스 소비를 줄이려면:
사용 가능한 최신 이미지로 통합을 업데이트합니다.
emitter_harvest_period
을(를) 낮추어 수확 시간을 줄입니다. (기본값은1s
이며 간격은200ms
보다 작을 수 없습니다.) 메트릭이 더 자주 전송되므로 메모리 소비가 줄어듭니다.메모리 소비와 CPU 사용량을 모두 줄이려면
scrape_duration
를 늘려 측정항목을 덜 자주 수집합니다.메모리 사용량과 CPU 사용량을 모두 줄이려면 작업자 수를 줄입니다. 스크래핑이 느려지고
scrape_duration.
를 초과할 수 있습니다.- 이미지의 사용 가능한 최신 버전으로 통합을 업데이트합니다.
- 기본값
4
에서 원하는 값으로worker_threads
를 줄이십시오.