7.4.4. OOM 종료 정책 이해


컨테이너에 있는 모든 프로세스의 총 메모리 사용량이 메모리 제한을 초과하거나 노드의 메모리 부족 상태가 심각한 경우에는 OpenShift Container Platform에서 컨테이너의 프로세스를 종료할 수 있습니다.

프로세스가 OOM(Out of Memory) 종료되면 컨테이너가 즉시 종료될 수 있습니다. 컨테이너 PID 1 프로세스에서 SIGKILL을 수신하면 컨테이너가 즉시 종료됩니다. 그 외에는 컨테이너 동작이 기타 프로세스의 동작에 따라 달라집니다.

예를 들어 컨테이너 프로세스가 코드 137로 종료되면 SIGKILL 신호가 수신되었음을 나타냅니다.

컨테이너가 즉시 종료되지 않으면 다음과 같이 OOM 종료를 탐지할 수 있습니다.

  1. 원격 쉘을 사용하여 Pod에 액세스합니다.

    # oc rsh test
    Copy to Clipboard Toggle word wrap
  2. 다음 명령을 실행하여 /sys/fs/cgroup/memory/memory.oom_control에서 현재 OOM 종료 수를 확인합니다.

    $ grep '^oom_kill ' /sys/fs/cgroup/memory/memory.oom_control
    oom_kill 0
    Copy to Clipboard Toggle word wrap
  3. 다음 명령을 실행하여 OOM 종료를 유도합니다.

    $ sed -e '' </dev/zero
    Copy to Clipboard Toggle word wrap

    출력 예

    Killed
    Copy to Clipboard Toggle word wrap

  4. 다음 명령을 실행하여 sed 명령의 종료 상태를 확인합니다.

    $ echo $?
    Copy to Clipboard Toggle word wrap

    출력 예

    137
    Copy to Clipboard Toggle word wrap

    137 코드는 컨테이너 프로세스가 코드 137로 종료되었음을 나타냅니다. 이 코드는 SIGKILL 신호가 수신되었음을 나타냅니다.

  5. 다음 명령을 실행하여 /sys/fs/cgroup/memory/memory.oom_control에서 OOM 종료 카운터가 증가했는지 확인합니다.

    $ grep '^oom_kill ' /sys/fs/cgroup/memory/memory.oom_control
    oom_kill 1
    Copy to Clipboard Toggle word wrap

    Pod에서 하나 이상의 프로세스가 OOM 종료된 경우 나중에 Pod가 종료되면(즉시 여부와 관계없이) 단계는 실패, 이유는 OOM 종료가 됩니다. restartPolicy 값에 따라 OOM 종료된 Pod가 다시 시작될 수 있습니다. 재시작되지 않는 경우 복제 컨트롤러와 같은 컨트롤러는 Pod의 실패 상태를 확인하고 새 Pod를 생성하여 이전 Pod를 교체합니다.

    다음 명령을 사용하여 Pod 상태를 가져옵니다.

    $ oc get pod test
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME      READY     STATUS      RESTARTS   AGE
    test      0/1       OOMKilled   0          1m
    Copy to Clipboard Toggle word wrap

    • Pod가 재시작되지 않은 경우 다음 명령을 실행하여 Pod를 확인합니다.

      $ oc get pod test -o yaml
      Copy to Clipboard Toggle word wrap

      출력 예

      ...
      status:
        containerStatuses:
        - name: test
          ready: false
          restartCount: 0
          state:
            terminated:
              exitCode: 137
              reason: OOMKilled
        phase: Failed
      Copy to Clipboard Toggle word wrap

    • 재시작된 경우 다음 명령을 실행하여 Pod를 확인합니다.

      $ oc get pod test -o yaml
      Copy to Clipboard Toggle word wrap

      출력 예

      ...
      status:
        containerStatuses:
        - name: test
          ready: true
          restartCount: 1
          lastState:
            terminated:
              exitCode: 137
              reason: OOMKilled
          state:
            running:
        phase: Running
      Copy to Clipboard Toggle word wrap

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat