컨테이너 프로세스 수 제한 점검

워크로드에 맞게 프로세스 수를 제한해 호스트 자원 고갈 위험을 줄이세요.

설명

프로세스 수 제한이 없으면 비정상 동작이나 악성 루프가 짧은 시간 안에 많은 프로세스를 만들어 호스트 자원을 고갈시킬 수 있습니다.

메모리와 CPU 제한만으로는 모든 자원 고갈 상황을 막기 어렵습니다. 프로세스 수 제한까지 함께 설정해야 컨테이너 단위의 폭주를 더 잘 통제할 수 있습니다.

잠재적 영향

  • 하나의 컨테이너가 과도한 프로세스를 생성해 호스트 자원을 고갈시킬 수 있습니다.
  • 같은 호스트의 다른 서비스까지 영향을 받아 연쇄 장애가 생길 수 있습니다.
  • 비정상 프로세스 증가를 초기에 통제하기 어려워집니다.

해결 방법

  • 각 서비스에 맞는 pids_limit 값을 명시하고 -1 같은 무제한 값은 피하세요.
  • CPU, 메모리 제한과 함께 프로세스 수 제한을 운영 표준으로 묶어 관리하세요.
  • 실제 워크로드 특성을 보고 적정 수를 측정한 뒤 제한값을 조정하세요. 너무 낮으면 정상 프로세스나 스레드 생성도 실패할 수 있습니다.

예시

빌드 컨텍스트의 Dockerfile은 생략했습니다. 10은 예시이며 애플리케이션의 프로세스·스레드 수에 맞춰 조정하세요.

변경 전

yaml
services:
  auth:
    build:
      context: .
    mem_limit: 500M

변경 후

yaml
services:
  auth:
    build:
      context: .
    pids_limit: 10
    mem_limit: 500M

설명:

  • 변경 전: 메모리 제한은 있어도 이 구성에는 프로세스 수 제한이 없습니다.
  • 변경 후: pids_limit로 생성 가능한 프로세스 수를 제한합니다. 실제 실행 환경에서 적용 상태와 정상 동작을 확인하세요.

참조