๊ธ ์์ฑ์: caputdraconis
OOME๋?
์ฌ์ฉ ๊ฐ๋ฅํ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํด์, ๋์ด์ ํ๋ก์ธ์ค์๊ฒ ํ ๋นํ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์๋ ์ํฉ์ ์๋ฏธํฉ๋๋ค. ์ด๋ฐ ์ํฉ์์ ์๋ก์ด ํ๋ก์ธ์ค์๊ฒ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๊ธฐ ์ํด์, ์ข
๋ฃํ ํ๋ก์ธ์ค๋ฅผ ์ ํํ๊ณ ์ด๋ฅผ ์ข
๋ฃํจ์ผ๋ก์จ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ๋ณดํฉ๋๋ค.
์ข
๋ฃํ ํ๋ก์ธ์ค๋ฅผ ์ ํํ๋ ๊ธฐ์ค์ ๋ฌด์์ธ๊ฐ?
OOM Killer ๊ฐ ์ข
๋ฃ์ํฌ ํ๋ก์ธ์ค๋ฅผ ์ ํํ๋ ๊ธฐ์ค์ oom_score ๋ผ๋ ๊ฐ์
๋๋ค. ์ด ๊ฐ์ด ๋์ ํ๋ก์ธ์ค๊ฐ ๋ค๋ฅธ ํ๋ก์ธ์ค๋ค๋ณด๋ค ๋ ๋จผ์ ์ข
๋ฃ๋ฉ๋๋ค. ์๋์ ๊ฐ์ด oom_score๋ฅผ ๊ฐ์ง ํ๋ก์ธ์ค๋ค์ด ์๋ค๊ณ ๊ฐ์ ํด๋ณด๊ฒ ์ต๋๋ค.
- ํ๋ก์ธ์ค 1 : 4
- ํ๋ก์ธ์ค 2 : -2
- ํ๋ก์ธ์ค 3 : 0
- ํ๋ก์ธ์ค 4 : 6
์ข
๋ฃํ ํ๋ก์ธ์ค๋ค์ ์ 4๊ฐ๋ง ์กด์ฌํ๋ค๊ณ ๊ฐ์ ํ์ ๋, ํ๋ก์ธ์ค 4 -> ํ๋ก์ธ์ค 1 -> ํ๋ก์ธ์ค 3 -> ํ๋ก์ธ์ค 2 ์์๋ก ์ข
๋ฃ๋ฉ๋๋ค.
oom_score ๋ ์ด๋ป๊ฒ ํ์ธํ ์ ์๋๊ฐ?
oom_score ๋ ํ๋ก์ธ์ค๋ค์ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๋ /proc ๋๋ ํ ๋ฆฌ์์ ํ์ธํ ์ ์์ต๋๋ค. proc ์๋์๋ ์๋ง์ PID ๊ฐ์ ์ด๋ฆ์ผ๋ก ํ๋ ๋๋ ํ ๋ฆฌ๋ค์ด ์์นํ๊ณ ์์ผ๋ฉฐ, ์ด ๋๋ ํ ๋ฆฌ ์์ ์๋ oom_score ๋ผ๋ ํ์ผ์ oom_score ๊ฐ ์ ์ฅ/๊ด๋ฆฌ๋๊ณ ์์ต๋๋ค.
๊ฐ๋จํ๊ฒ cat ๋ช
๋ น์ด๋ก ๊ฐ ํ๋ก์ธ์ค๋ค์ oom_score ๋ฅผ ํ์ธํด ๋ณผ ์ ์์ต๋๋ค.
OOM ์ด ๋ฐ์ํ๋์ง๋ฅผ ํ์ธํ๋ ค๋ฉด ์๋์ ๋ช
๋ น์ด๋ก ํ์ธ์ด ๊ฐ๋ฅํฉ๋๋ค. ์ฌ๊ธฐ์ dmesg ๋ ์ปค๋์์ ๋ฐ์ํ๋ ๋ค์ํ ๋ฉ์์ง(๋ก๊ทธ)๋ค์ ์ถ๋ ฅํ๋ ๋ช
๋ น์ด์
๋๋ค.
dmesg -T | grep -i oom