본문 바로가기
WIKI 기술 지식 베이스

높은 CPU 또는 메모리 사용량 (High CPU or Memory Consumption)

원문 보기 위키 갱신

Agent가 CPU나 메모리를 과도하게 사용하는 원인을 찾고, 리소스 사용량을 줄이기 위해 설정을 조정하는 방법을 알려드릴게요. 여러 요인이 이 문제를 일으킬 수 있으니 아래 단계를 하나씩 확인해봐요.

출처: 문서

본문

Agent의 CPU 또는 메모리 사용량이 높아지는 원인은 여러 가지가 있어요. 아래 단계를 시도한 뒤에도 문제가 계속되면 Datadog 지원팀에 문의하세요.

높은 CPU 또는 메모리 사용량의 일반적인 원인

  • 통합이 수천 개의 메트릭을 반환하거나, 많은 수의 체크 인스턴스를 실행하고 있는 경우. 실행 중인 체크 인스턴스 요약과 수집된 메트릭 수를 보려면 the status CLI 명령어를 실행하고 Collector 섹션을 확인하세요.
  • Agent의 Python 또는 Go 런타임이 높은 리소스 소비를 일으키는 경우. Live Processes Monitoring을 활성화해 Agent 프로세스가 예상치 못한 메모리나 CPU를 소비하는지 확인하세요. 운영체제의 활동 관리자로 Agent 프로세스 리소스 소비를 확인할 수도 있어요.
  • Agent가 많은 수의 프로세스를 모니터링하는 경우. 이는 Process Check 설정 파일에서 구성돼요.
  • Agent의 동작이 Windows 안티멀웨어나 안티바이러스 도구를 트리거해 높은 CPU 사용량을 유발하는 경우.
  • Agent가 매우 많은 수의 로그 줄이나 DogStatsD 메트릭을 전달하는 경우.

리소스 사용량을 줄이기 위한 조정

Agent 설정에서 리소스 사용량을 줄이기 위해 할 수 있는 조정은 다음과 같아요:

  • 체크 인스턴스가 많거나 많은 수의 메트릭을 수집하는 통합은 해당 통합의 conf.yaml 파일에서 min_collection_interval을 조정하세요. 일반적으로 Agent는 각 체크 인스턴스를 10~15초마다 실행해요. min_collection_interval을 60초 이상으로 설정하면 리소스 소비를 줄이는 데 도움이 돼요. 체크 수집 간격에 대한 자세한 내용은 Custom Agent Check 문서를 참고하세요.
  • 통합이 Autodiscovery를 사용하도록 설정됐는지, 또는 더 구체적으로 범위를 좁힐 수 있는 와일드카드(*)를 사용하고 있는지 확인하세요. Autodiscovery에 대한 자세한 내용은 Basic Agent Autodiscovery를 참고하세요.

Datadog 지원팀에 문의하기 (Reach out to Datadog Support)

위 해결책 중 어느 것도 상황에 맞지 않다면 Datadog 지원팀에 문의하세요. Agent 프로세스가 예상치 못한 메모리나 CPU를 소비하고 있는지 확인하려면 Live Processes Monitoring을 활성화해 두세요.

티켓을 열 때는 문제를 어떻게 확인하고 있는지, 지금까지 어떤 단계를 거쳤는지 정보를 포함하세요. 문제를 단일 통합으로 격리할 수 있는지 여부에 따라 아래 섹션 중 하나의 정보를 포함하세요.

단일 통합으로 격리된 높은 소비 (High consumption isolated to a single integration)

하나의 통합만 높은 메모리를 소비한다면, Python 메모리 프로파일 출력과 함께 디버그 레벨 flare를 보내세요:

  1. 디버그 모드를 활성화하려면 Debug Mode 문서를 따르세요.

  2. 프로파일을 보내려면 flare 명령어에 --profile 30 플래그를 추가하세요:

    sudo datadog-agent flare --profile 30
    
이 명령어는 프로파일 정보를 수집하면서 실행하는 데 약 30초가 걸려요.


1. Python 메모리 프로파일은 다음 명령어의 출력을 수집하세요:

   ```shell
   sudo -u dd-agent -- datadog-agent check <check name> -m -t 10

단일 통합과 관련되지 않은 높은 소비 (High consumption not associated with a single integration)

높은 메모리 소비가 단일 통합과 관련되지 않았다면, Agent가 예상보다 많은 메모리나 CPU를 사용하는 기간 동안 수집한 프로파일과 함께 디버그 레벨 flare를 보내세요:

  1. 디버그 모드를 활성화하려면 Debug Mode 문서를 따르세요.
  2. 프로파일을 보내려면 flare 명령어에 --profile 30 플래그를 추가하세요:
    sudo datadog-agent flare --profile 30
    
이 명령어는 프로파일 정보를 수집하면서 실행하는 데 약 30초가 걸려요.

#### Agent Profiling 체크 (Agent Profiling check)

Agent 버전 7.67부터 [Agent Profiling 체크](https://docs.datadoghq.com/integrations/agentprofiling.md)를 활성화하면 사용자가 구성한 메모리 또는 CPU 임계값에 따라 프로파일이 포함된 flare를 자동으로 생성할 수 있어요. 높은 메모리나 CPU 문제를 쉽게 재현할 수 없을 때 이 체크가 유용해요.

## 더 알아보기 (Learn more)

도움이 되는 추가 문서, 링크, 글:

- [Agent flare 보내기](https://docs.datadoghq.com/agent/troubleshooting/send_a_flare.md)
- [Agent 체크 상태 확인하기](https://docs.datadoghq.com/agent/troubleshooting/agent_check_status.md)