on
[우분투]도커 메모리 오류 Out of Memory 확인방법
[우분투]도커 메모리 오류 Out of Memory 확인방법
도커에서 돌고 있던 java 프로세스가 Out of Memory로 강제 kill 당했다.
현상은 작동되던 프로세스가 정상작동이 안되는 것인데, 이것이 OOM(out of memory) 에러인지 확인해보기 위해서는 다음과같이 확인하면 된다.
1. syslog 를 확인한다.
우분투 /var/log 의 syslog를 확인한다.
아래 내용을 보면 oom-kill 로 문제 프로세스가 kill당하고,
그 프로세스를 담고 있던 도커 컨테이너가 delete 되는 것을 확인할 수 있다.
oom-kill:constraint=CONSTRAINT_NONE,nodemask=(null),cpuset=d20ddfa000acb059135d0036dd8f34a1e2f9c2579cf24032a372e704598c4f19,mems_allowed=0,global_oom,task_memcg=/docker/d20ddfa000acb059135d0036dd8f34a1e2f9c2579cf24032a372e704598c4f19,task=java,pid=1069553,uid=0 [9856994.554801] Out of memory: Killed process 1069553 (java) total-vm:19163036kB, anon-rss:14791720kB, file-rss:0kB, shmem-rss:0kB, UID:0 pgtables:30056kB oom_score_adj:0 [9856995.217124] oom_reaper: reaped process 1069553 (java), now anon-rss:0kB, file-rss:0kB, shmem-rss:0kB dockerd[2767]: time="2021-11-26T05:18:37.165264329Z" level=info msg="ignoring event" container=d20ddfa000acb059135d0036dd8f34a1e2f9c2579cf24032a372e704598c4f19 module=libcontainerd namespace=moby topic=/tasks/delete type="*events.TaskDelete"
2. docker stats 명령어로 메모리 상태를 확인한다.
$ sudo docker stats
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS 123473e03cfc kye-process 0.83% 4.919GiB / 15.46GiB 31.83% 0B / 0B 162MB / 111MB 189 321da21dd82c nginx 0.00% 13.06MiB / 15.46GiB 0.08% 0B / 0B 167MB / 16.4kB 2
언제 메모리가 증가하고 해제가 안되는지 모니터링한다.
from http://kye-develop.tistory.com/50 by ccl(A) rewrite - 2021-11-26 17:01:59