기본 패턴
bash
docker run --memory=512m --cpus=1.5 my-app:latest설명
- 기본적으로 컨테이너는 호스트 자원을 무제한으로 사용할 수 있으므로, 무거운 프로세스는 같은 머신의 다른 작업까지 압박할 수 있습니다.
--memory는 메모리 상한을,--cpus는 사용할 CPU 양을 대략적으로 제한하는 대표 옵션입니다.- 이런 제한은 운영 환경뿐 아니라, 개발 중 비정상 루프나 메모리 누수 문제를 조기에 드러내는 데도 도움이 됩니다.
- 다만 제한을 너무 낮게 잡으면 정상 앱도 자주 죽거나, 성능이 급격히 떨어질 수 있습니다.
- 따라서 제한은 "안전장치"이면서 동시에 "실제 자원 예산"이므로, 서비스 특성에 맞게 측정하며 조정해야 합니다.
짧은 예제
bash
docker run \
--name worker \
--memory=1g \
--cpus=2 \
my-worker:latest빠른 정리
| 옵션 | 의미 |
|---|---|
--memory=512m | 메모리 상한 설정 |
--cpus=1.5 | 사용할 CPU 양 제한 |
| 제한이 없을 때 | 호스트 자원을 과도하게 점유할 수 있음 |
| 너무 낮을 때 | 앱이 불안정하거나 느려질 수 있음 |
| 운영 팁 | 측정 후 예산을 정하고 점진적으로 조정 |
주의할 점
자원 제한은 "작게 잡을수록 안전"한 것이 아닙니다. 실제 워크로드보다 지나치게 낮게 두면 오히려 정상 요청에서도 장애처럼 보이는 현상이 생길 수 있습니다.
참고 링크
2 sources