OOM Kill

Supported OS Linux

개요

본 점검은 Datadog 에이전트 및 시스템 프로브를 통해 커널 OOM(메모리 부족) 킬 프로세스를 모니터링합니다.

설정

설치

OOM Kill 점검은 Datadog 에이전트 패키지에 포함되어 있습니다. 이 프로그램은 시스템 프로브에 구현된 eBPF 프로그램에 기반합니다.

시스템 프로브에서 사용하는 eBPF 프로그램은 런타임에 컴파일되며 적절한 커널 헤더에 액세스할 수 있어야 합니다.

데비안(Debian) 유사 배포에서 다음으로 커널 헤더를 설치합니다.

apt install -y linux-headers-$(uname -r)

RHEL 유사 배포에서 다음으로 커널 헤더를 설치합니다.

yum install -y kernel-headers-$(uname -r)
yum install -y kernel-devel-$(uname -r)

참고: OOM Kill 점검이 제대로 동작하려면 커널 버전 4.9 이상이 필요합니다. 또한, 윈도우즈(Windows) 및 CentOS/RHEL 8 이전 버전은 지원되지 않습니다.

설정

  1. 에이전트의 설정 디렉토리 루트에 있는 system-probe.yaml 파일에 다음 설정을 추가합니다.

    system_probe_config:
        enable_oom_kill: true
    
  2. OOM Kill 메트릭 수집을 시작하려면 에이전트의 설정 디렉토리 루트의 conf.d/ 폴더에 oom_kill.d/conf.yaml 파일이 있는지 확인합니다. 사용 가능한 모든 설정 옵션은 oom_kill.d/conf.yaml 샘플을 참조하세요.

  3. 에이전트를 다시 시작합니다.

도커(Docker)로 설정하기

위의 설명대로 system-probe.yamloom_kill.d/conf.yaml 마운트 이외에도 다음 설정을 수행합니다.

  1. 다음 볼륨을 에이전트 컨테이너에 마운트합니다.

    -v /sys/kernel/debug:/sys/kernel/debug
    -v /lib/modules:/lib/modules
    -v /usr/src:/usr/src
    
  2. BPF 작업을 활성화하려면 다음 권한을 추가합니다.

    --privileged
    

    커널 버전 5.8부터는 --privileged 파라미터를--cap-add CAP_BPF로 대체할 수 있습니다.

참고: 도커(Docker) 스웜은 --privileged 모드가 지원되지 않습니다.

Helm으로 설정하기

Datadog Helm 차트datadog.systemProbedatadog.systemProbe.enableOOMKill 파라미터가 values.yaml 파일에서 활성화되어 있는지 확인합니다.

Operator(v1.0.0 이상)로 설정하기

DatadogAgent 매니페스트에서 다음과 같이 features.oomKill.enabled 파라미터를 설정합니다.

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  features:
    oomKill:
      enabled: true

참고: COS(컨테이너에 최적화된 OS)를 사용하는 경우 다음과 같이 노드 에이전트에서 src 볼륨을 오버라이드합니다.

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  features:
    oomKill:
      enabled: true
  override:
    nodeAgent:
      volumes:
      - emptyDir: {}
        name: src

검증

에이전트 상태 하위 명령을 실행하고 점검 섹션에서 oom_kill을 찾으세요.

수집한 데이터

메트릭

서비스 점검

OOM Kill 점검은 서비스 점검을 포함하지 않습니다.

이벤트

OOM Kill 점검은 취소된 프로세스 ID와 이름, 트리거한 프로세스 ID와 이름이 포함된 각 OOM Kill 이벤트를 제출합니다.

트러블슈팅

도움이 필요하신가요? Datadog 지원팀에 문의하세요.

PREVIEWING: may/embedded-workflows