เดฒเดฟเดจเดเตเดธเดฟเตฝ เดเดฐเต เดกเดพเดฑเตเดฑเดพเดฌเตเดธเต เดธเตเตผเดตเตผ เด เดชเตเดฐเดคเตเดเตเดทเดฟเดคเดฎเดพเดฏเดฟ เดชเตเดฑเดคเตเดคเตเดเดเดเตเดเตเดฎเตเดชเตเตพ, เดจเดฟเดเตเดเตพ เดเดพเดฐเดฃเด เดเดฃเตเดเตเดคเตเดคเตเดฃเตเดเดคเตเดฃเตเดเต. เดจเดฟเดฐเดตเดงเดฟ เดเดพเดฐเดฃเดเตเดเดณเตเดฃเตเดเดพเดเดพเด. เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, SIGSEGV - เดฌเดพเดเตเดเตเตปเดกเต เดธเตเตผเดตเดฑเดฟเดฒเต เดเดฐเต เดฌเดเต เดเดพเดฐเดฃเด เดชเดฐเดพเดเดฏเด. เดเดจเตเดจเดพเตฝ เดเดคเต เด เดชเตเตผเดตเดฎเดพเดฃเต. เดฎเดฟเดเตเดเดชเตเดชเตเดดเตเด, เดจเดฟเดเตเดเตพเดเตเดเต เดกเดฟเดธเตเดเดฟเตฝ เดธเตเดฅเดฒเดฎเต เดฎเตเดฎเตเดฎเดฑเดฟเดฏเต เดคเตเตผเดจเตเดจเต. เดจเดฟเดเตเดเดณเตเดเต เดกเดฟเดธเตเดเดฟเตฝ เดเดเด เดคเตเตผเดจเตเดจเดพเตฝ, เดเดฐเต เดชเตเดเดตเดดเดฟ เดฎเดพเดคเตเดฐเดฎเตเดฏเตเดณเตเดณเต - เดธเตเดฅเดฒเด เดถเตเดจเตเดฏเดฎเดพเดเตเดเดฟ เดกเดพเดฑเตเดฑเดพเดฌเตเดธเต เดชเตเดจเดฐเดพเดฐเดเดญเดฟเดเตเดเตเด.
เดเตผเดฎเตเดฎเดฏเดฟเดฒเตเดฒเดพเดคเตเดค เดเตเดฒเดฏเดพเดณเดฟ
เดเดฐเต เดธเตเตผเดตเดฑเต เดชเตเดฐเตเดธเดธเตเดธเต เดฎเตเดฎเตเดฎเดฑเดฟ เดคเตเดฐเตเดฎเตเดชเตเตพ, Linux 2 เดชเดฐเดฟเดนเดพเดฐเดเตเดเตพ เดตเดพเดเตเดฆเดพเดจเด เดเตเดฏเตเดฏเตเดจเตเดจเต: เดฎเตเดดเตเดตเตป เดธเดฟเดธเตเดฑเตเดฑเดตเตเด เดเตเดฐเดพเดทเต เดเตเดฏเตเดฏเตเด เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดฎเตเดฎเตเดฎเดฑเดฟ เดจเดถเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจ เดชเตเดฐเดเตเดฐเดฟเดฏ (เด เดชเตเดฒเดฟเดเตเดเตเดทเตป) เด เดตเดธเดพเดจเดฟเดชเตเดชเดฟเดเตเดเตเด. เดคเตเตผเดเตเดเดฏเดพเดฏเตเด, เดชเตเดฐเดเตเดฐเดฟเดฏ เด เดตเดธเดพเดจเดฟเดชเตเดชเดฟเดเตเดเต OS เดเตเดฐเดพเดทเดฟเตฝ เดจเดฟเดจเตเดจเต เดธเดเดฐเดเตเดทเดฟเดเตเดเตเดจเตเดจเดคเดพเดฃเต เดจเดฒเตเดฒเดคเต. เดเตเดฐเตเดเตเดเดคเตเดคเดฟเตฝ, เดเตเตผเดฃเดฒเดฟเดจเต เดเตเดฐเดพเดทเตเดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดธเดเดฐเดเตเดทเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเดฐเต เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเต เดจเดถเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจ เดเดฐเต เดชเตเดฐเดเตเดฐเดฟเดฏเดฏเดพเดฃเต เดเดเตเดเต-เดเดซเต-เดฎเตเดฎเตเดฎเดฑเดฟ เดเดฟเดฒเตเดฒเตผ. OS เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเดคเต เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเดพเตป เดเดคเต เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเต เดฌเดฒเดฟเดเดดเดฟเดเตเดเตเดจเตเดจเต. OOM เดเดเตเดเดจเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเตเดตเตเดจเตเดจเตเด เด เดคเต เดเดเตเดเดจเต เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเดเตเดเดพเดฎเตเดจเตเดจเตเด เดเดฆเตเดฏเด เดเตผเดเตเด เดเตเดฏเตเดฏเดพเด, เดคเตเดเตผเดจเตเดจเต OOM เดเดฟเดฒเตเดฒเตผ เดเดคเต เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เด เดตเดธเดพเดจเดฟเดชเตเดชเดฟเดเตเดเดฃเดฎเตเดจเตเดจเต เดคเตเดฐเตเดฎเดพเดจเดฟเดเตเดเตเดจเตเดจเดคเต เดเดเตเดเดจเตเดฏเตเดจเตเดจเต เดจเตเดเตเดเดพเด.
เดฒเดฟเดจเดเตเดธเดฟเดจเตเดฑเต เดชเตเดฐเดงเดพเดจ เดเตเดฒเดฟเดเดณเดฟเดฒเตเดจเตเดจเต, เดชเตเดฐเตเดธเดธเตเดธเตเดเตพ เดเดตเดถเตเดฏเดชเตเดชเตเดเตเดฎเตเดชเตเตพ เดฎเตเดฎเตเดฎเดฑเดฟ เด เดจเตเดตเดฆเดฟเดเตเดเตเด เดเดจเตเดจเดคเดพเดฃเต. เดธเดพเดงเดพเดฐเดฃเดเดคเดฟเดฏเดฟเตฝ, เดเดฐเต เดชเตเดฐเตเดธเดธเตเดธเต เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเต OS-เตฝ เดจเดฟเดจเตเดจเต เดฎเตเดฎเตเดฎเดฑเดฟ เด เดญเตเดฏเตผเดคเตเดฅเดฟเดเตเดเตเดจเตเดจเต, เดชเดเตเดทเต เด เดคเต เดชเตเตผเดฃเตเดฃเดฎเดพเดฏเดฟ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดฟเดฒเตเดฒ. OS เดฎเตเดฎเตเดฎเดฑเดฟ เดเดตเดถเตเดฏเดชเตเดชเตเดเตเดจเตเดจ เดเดฒเตเดฒเดพเดตเตผเดเตเดเตเด เด เดคเต เดเดชเดฏเตเดเดฟเดเตเดเดพเตป เดชเดฆเตเดงเดคเดฟเดฏเดฟเดฒเตเดฒเตเดเตเดเดฟเตฝ, เดตเดณเดฐเต เดตเตเดเด เดฎเตเดฎเตเดฎเดฑเดฟ เดคเตเตผเดจเตเดจเตเดชเตเดเตเดเดฏเตเด เดธเดฟเดธเตเดฑเตเดฑเด เดชเดฐเดพเดเดฏเดชเตเดชเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเด. เดเดคเต เดเดดเดฟเดตเดพเดเตเดเดพเตป, OS เดชเตเดฐเตเดธเดธเตเดธเดฟเดจเดพเดฏเดฟ เดฎเตเดฎเตเดฎเดฑเดฟ เดฑเดฟเดธเตผเดตเต เดเตเดฏเตเดฏเตเดจเตเดจเต, เดชเดเตเดทเต เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ เด เดคเต เดฑเดฟเดฒเตเดธเต เดเตเดฏเตเดฏเตเดจเตเดจเดฟเดฒเตเดฒ. เดเดฐเต เดชเตเดฐเตเดธเดธเตเดธเต เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ เด เดคเต เดเดชเดฏเตเดเดฟเดเตเดเดพเตป เดชเตเดเตเดฎเตเดชเตเตพ เดฎเดพเดคเตเดฐเดฎเต เดฎเตเดฎเตเดฎเดฑเดฟ เด เดจเตเดตเดฆเดฟเดเตเดเต. OS-เดจเต เดธเตเดเดจเตเดฏ เดฎเตเดฎเตเดฎเดฑเดฟ เดเดฒเตเดฒ เดเดจเตเดจเดคเต เดธเดเดญเดตเดฟเดเตเดเตเดจเตเดจเต, เดชเดเตเดทเต เด เดคเต เดเดฐเต เดชเตเดฐเตเดธเดธเตเดธเดฟเดจเต เดฎเตเดฎเตเดฎเดฑเดฟ เดจเตฝเดเตเดจเตเดจเต, เดเดฐเต เดชเตเดฐเตเดธเดธเตเดธเต เดเดตเดถเตเดฏเดฎเตเดณเตเดณเดชเตเดชเตเตพ, OS เด เดคเดฟเดจเต เดเดดเดฟเดฏเตเดฎเตเดเตเดเดฟเตฝ เด เดคเต เด เดจเตเดตเดฆเดฟเดเตเดเตเด. เดชเตเดฐเดพเดฏเตเดฎ เดเดฟเดฒเดชเตเดชเตเตพ OS เดฎเตเดฎเตเดฎเดฑเดฟ เดฑเดฟเดธเตผเดตเต เดเตเดฏเตเดฏเตเดจเตเดจเต, เดเดจเตเดจเดพเตฝ เดถเดฐเดฟเดฏเดพเดฏ เดธเดฎเดฏเดคเตเดคเต เดธเตเดเดจเตเดฏ เดฎเตเดฎเตเดฎเดฑเดฟ เดเดฒเตเดฒ, เดธเดฟเดธเตเดฑเตเดฑเด เดเตเดฐเดพเดทเต เดเตเดฏเตเดฏเตเดจเตเดจเต. เด เดธเดพเดนเดเดฐเตเดฏเดคเตเดคเดฟเตฝ OOM เดเดฐเต เดชเตเดฐเดงเดพเดจ เดชเดเตเดเต เดตเดนเดฟเดเตเดเตเดเดฏเตเด เดเตเตผเดฃเตฝ เดชเดฐเดฟเดญเตเดฐเดพเดจเตเดคเดฐเดพเดเตเดจเตเดจเดคเต เดคเดเดฏเดพเตป เดชเตเดฐเดเตเดฐเดฟเดฏเดเตพ เด เดตเดธเดพเดจเดฟเดชเตเดชเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต. เดเดฐเต PostgreSQL เดชเตเดฐเดเตเดฐเดฟเดฏ เด เดตเดธเดพเดจเดฟเดชเตเดชเดฟเดเตเดเดพเตป เดจเดฟเตผเดฌเดจเตเดงเดฟเดคเดฎเดพเดเตเดฎเตเดชเตเตพ, เดฒเตเดเดฟเตฝ เดเดฐเต เดธเดจเตเดฆเตเดถเด เดฆเตเดถเตเดฏเดฎเดพเดเตเด:
Out of Memory: Killed process 12345 (postgres).
เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดจเต เดฎเตเดฎเตเดฎเดฑเดฟ เดเตเดฑเดตเดพเดฃเตเดเตเดเดฟเตฝ เด
เดคเต เดธเตเดตเดคเดจเตเดคเตเดฐเดฎเดพเดเตเดเดพเตป เดเดดเดฟเดฏเตเดจเตเดจเดฟเดฒเตเดฒเตเดเตเดเดฟเตฝ, เดซเดเดเตเดทเดจเต เดตเดฟเดณเดฟเดเตเดเตเดจเตเดจเต out_of_memory
. เด เดเดเตเดเดคเตเดคเดฟเตฝ, เด
เดตเตพเดเตเดเต เดเดฐเต เดเดพเดฐเตเดฏเด เดฎเดพเดคเตเดฐเดฎเต เดเตเดฏเตเดฏเดพเดจเตเดณเตเดณเต - เดเดจเตเดจเต เด
เดคเดฟเดฒเดงเดฟเดเดฎเต เดชเตเดฐเดเตเดฐเดฟเดฏเดเตพ เดชเตเตผเดคเตเดคเดฟเดฏเดพเดเตเดเตเด. OOM-เดเดฟเดฒเตเดฒเตผ เดเดเตป เดคเดจเตเดจเต เดชเตเดฐเดเตเดฐเดฟเดฏ เด
เดตเดธเดพเดจเดฟเดชเตเดชเดฟเดเตเดเดฃเดฎเต เด
เดคเต เดเดพเดคเตเดคเดฟเดฐเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเดฎเต? เดตเตเดฏเดเตเดคเดฎเดพเดฏเตเด, out_of_memory เดเดจเตเดจเต เดตเดฟเดณเดฟเดเตเดเดชเตเดชเตเดเตเดฎเตเดชเตเตพ, เด
เดคเต เดเดฐเต I/O เดเดชเตเดชเดฑเตเดทเดจเดพเดฏเดฟ เดเดพเดคเตเดคเดฟเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเดพเดฒเต เดกเดฟเดธเตเดเดฟเดฒเตเดเตเดเตเดณเตเดณ เดชเตเดเดฟเดเดเดฟเดฒเตเดเตเดเต เดเดฃเต. เด
เดคเดฟเดจเดพเตฝ, OOM เดเตเดฒเดฏเดพเดณเดฟ เดเดฆเตเดฏเด เดชเดฐเดฟเดถเตเดงเดจเดเตพ เดจเดเดคเตเดคเตเดเดฏเตเด เด
เดตเดฏเตเดเต เด
เดเดฟเดธเตเดฅเดพเดจเดคเตเดคเดฟเตฝ เดชเตเดฐเดเตเดฐเดฟเดฏ เด
เดตเดธเดพเดจเดฟเดชเตเดชเดฟเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเตเดจเตเดจเต เดคเตเดฐเตเดฎเดพเดจเดฟเดเตเดเตเดเดฏเตเด เดตเตเดฃเด. เดเตเดตเดเตเดฏเตเดณเตเดณ เดเดฒเตเดฒเดพ เดชเดฐเดฟเดถเตเดงเดจเดเดณเตเด เดชเตเดธเดฟเดฑเตเดฑเตเดตเต เดเดฃเตเดเตเดเดฟเตฝ, OOM เดชเตเดฐเดเตเดฐเดฟเดฏ เด
เดตเดธเดพเดจเดฟเดชเตเดชเดฟเดเตเดเตเด.
เดชเตเดฐเดเตเดฐเดฟเดฏ เดคเดฟเดฐเดเตเดเตเดเตเดเตเดเตฝ
เดฎเตเดฎเตเดฎเดฑเดฟ เดคเตเดฐเตเดฎเตเดชเตเตพ, เดซเดเดเตเดทเตป เดเดจเตเดจเต เดตเดฟเดณเดฟเดเตเดเตเดจเตเดจเต out_of_memory()
. เด
เดคเดฟเดจเต เดเดฐเต เดซเดเตเดทเตป เดเดฃเตเดเต select_bad_process()
, เดซเดเดเตเดทเดจเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดฐเต เดฎเตเดฒเตเดฏเดจเดฟเตผเดฃเตเดฃเดฏเด เดฒเดญเดฟเดเตเดเตเดจเตเดจเต badness()
. "เดเดฑเตเดฑเดตเตเด เดฎเตเดถเดฎเดพเดฏ" เดชเตเดฐเดเตเดฐเดฟเดฏ เดฒเดเตเดทเตเดฏเดฎเดฟเดเตเดจเตเดจเต. เดซเดเดเตเดทเตป badness()
เดเดฟเดฒ เดจเดฟเดฏเดฎเดเตเดเตพเดเตเดเดจเตเดธเตเดคเดฎเดพเดฏเดฟ เดเดฐเต เดชเตเดฐเดเตเดฐเดฟเดฏ เดคเดฟเดฐเดเตเดเตเดเตเดเตเดเตเดจเตเดจเต.
- เดเตเตผเดฃเดฒเดฟเดจเต เดเตเดฑเดเตเดเต เดฎเดฟเดจเดฟเดฎเด เดฎเตเดฎเตเดฎเดฑเดฟ เดเดตเดถเตเดฏเดฎเดพเดฃเต.
- เดจเดฟเดเตเดเตพ เดเดฐเตเดชเดพเดเต เดฎเตเดฎเตเดฎเดฑเดฟ เดธเตเดตเดคเดจเตเดคเตเดฐเดฎเดพเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต.
- เดเตเดฑเดเตเดเต เดฎเตเดฎเตเดฎเดฑเดฟ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจ เดชเตเดฐเดเตเดฐเดฟเดฏเดเตพ เด เดตเดธเดพเดจเดฟเดชเตเดชเดฟเดเตเดเตเดฃเตเด เดเดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ.
- เดฎเดฟเดจเดฟเดฎเด เดจเดเดชเดเดฟเดเตเดฐเดฎเดเตเดเตพ เดชเตเตผเดคเตเดคเดฟเดฏเดพเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต.
- เดเดชเดฏเตเดเตเดคเดพเดตเต เดคเดจเตเดจเต เดชเตเตผเดคเตเดคเดฟเดฏเดพเดเตเดเดพเตป เดเดเตเดฐเดนเดฟเดเตเดเตเดจเตเดจ เดชเตเดฐเดเตเดฐเดฟเดฏเดเตพ เดชเตเตผเดคเตเดคเดฟเดฏเดพเดเตเดเดพเดจเตเดณเตเดณ เดธเดพเดงเตเดฏเดค เดตเตผเดฆเตเดงเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจ เดธเดเตเดเตเตผเดฃเตเดฃเดฎเดพเดฏ เด เตฝเดเตเดฐเดฟเดคเดเตเดเตพ.
เด เดชเดฐเดฟเดถเตเดงเดจเดเดณเตเดฒเตเดฒเดพเด เดชเตเตผเดคเตเดคเดฟเดฏเดพเดเตเดเดฟเดฏ เดถเตเดทเด, OOM เดธเตเดเตเตผ เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดจเตเดจเต (oom_score
). OOM เด
เดธเตเตป เดเตเดฏเตเดฏเตเดจเตเดจเต oom_score
เดเดฐเต เดชเตเดฐเดเตเดฐเดฟเดฏเดฏเตเด, เดคเตเดเตผเดจเตเดจเต เด เดฎเตเดฒเตเดฏเด เดฎเตเดฎเตเดฎเดฑเดฟเดฏเตเดเต เด
เดณเดตเต เดเตเดฃเตเดเต เดเตเดฃเดฟเดเตเดเตเดจเตเดจเต. เดตเดฒเดฟเดฏ เดฎเตเดฒเตเดฏเดเตเดเดณเตเดณเตเดณ เดชเตเดฐเดเตเดฐเดฟเดฏเดเตพ OOM เดเดฟเดฒเตเดฒเดฑเดฟเดจเต เดเดฐเดฏเดพเดเดพเดจเตเดณเตเดณ เดธเดพเดงเตเดฏเดค เดเตเดเตเดคเดฒเดพเดฃเต. เดฑเตเดเตเดเต เดฏเตเดธเดฑเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเตเดเตเด เดชเตเดฐเดเตเดฐเดฟเดฏเดเตพเดเตเดเต เดเตเดฑเดเตเด เดธเตเดเตเตผ เดเดฃเตเดเต, เด
เดคเต เด
เดตเดธเดพเดจเดฟเดชเตเดชเดฟเดเตเดเดพเตป เดจเดฟเตผเดฌเดจเตเดงเดฟเดคเดฐเดพเดเดพเดจเตเดณเตเดณ เดธเดพเดงเตเดฏเดค เดเตเดฑเดตเดพเดฃเต.
postgres=# SELECT pg_backend_pid();
pg_backend_pid
----------------
3813
(1 row)
Postgres เดชเตเดฐเตเดธเดธเตเดธเต เดเดกเดฟ 3813 เดเดฃเต, เด
เดคเดฟเดจเดพเตฝ เดฎเดฑเตเดฑเตเดฐเต เดทเตเดฒเตเดฒเดฟเตฝ เด เดเตเตผเดฃเตฝ เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเตผ เดเดชเดฏเตเดเดฟเดเตเดเต เดธเตเดเตเตผ เดจเตเดเดพเดจเดพเดเตเด oom_score
:
vagrant@vagrant:~$ sudo cat /proc/3813/oom_score
2
OOM-Killer เดชเตเดฐเดเตเดฐเดฟเดฏเดฏเต เดเดฒเตเดฒเดพเดคเดพเดเตเดเดพเตป เดจเดฟเดเตเดเตพ เดเดเตเดฐเดนเดฟเดเตเดเตเดจเตเดจเดฟเดฒเตเดฒเตเดเตเดเดฟเตฝ, เดฎเดฑเตเดฑเตเดฐเต เดเตเตผเดฃเตฝ เดเดชเตเดทเตป เดเดฃเตเดเต: oom_score_adj
. เดจเดฟเดเตเดเตพ เดตเดฟเดฒเดฎเดคเดฟเดเตเดเตเดจเตเดจ เดเดฐเต เดชเตเดฐเตเดธเดธเตเดธเต เดชเตเตผเดคเตเดคเดฟเดฏเดพเดเตเดเดพเดจเตเดณเตเดณ เดธเดพเดงเตเดฏเดค เดเตเดฑเดฏเตเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดเดฐเต เดตเดฒเดฟเดฏ เดจเตเดเดฑเตเดฑเตเดตเต เดฎเตเดฒเตเดฏเด เดเตเตผเดเตเดเตเด.
sudo echo -100 > /proc/3813/oom_score_adj
เดเดฐเต เดฎเตเดฒเตเดฏเด เดธเดเตเดเดฎเดพเดเตเดเดพเตป oom_score_adj
, เดธเตเดตเดจ เดฌเตเดฒเตเดเตเดเดฟเตฝ OOMScoreAdjust เดธเดเตเดเดฎเดพเดเตเดเตเด:
[Service]
OOMScoreAdjust=-1000
เด
เดฒเตเดฒเตเดเตเดเดฟเตฝ เดเดชเดฏเตเดเดฟเดเตเดเตเด oomprotect
เดเดฐเต เดเตเดฎเดฟเตฝ rcctl
.
rcctl set <i>servicename</i> oomprotect -1000
เดเดฐเต เดชเตเดฐเดเตเดฐเดฟเดฏเดฏเตเดเต เดจเดฟเตผเดฌเดจเตเดงเดฟเดค เด เดตเดธเดพเดจเดฟเดชเตเดชเดฟเดเตเดเตฝ
เดเดจเตเดจเต เด
เดคเดฟเดฒเดงเดฟเดเดฎเต เดชเตเดฐเดเตเดฐเดฟเดฏเดเตพ เดเดคเดฟเดจเดเด เดคเดฟเดฐเดเตเดเตเดเตเดคเตเดคเดฟเดฐเดฟเดเตเดเตเดฎเตเดชเตเตพ, OOM-เดเดฟเดฒเตเดฒเตผ เดซเดเดเตโเดทเดจเต เดตเดฟเดณเดฟเดเตเดเตเดจเตเดจเต oom_kill_task()
. เด เดซเดเดเตเดทเตป เดชเตเดฐเดเตเดฐเดฟเดฏเดฏเดฟเดฒเตเดเตเดเต เดเดฐเต เด
เดตเดธเดพเดจเดฟเดชเตเดชเดฟเดเตเดเตฝ เดธเดฟเดเตเดจเตฝ เด
เดฏเดฏเตเดเตเดเตเดจเตเดจเต. เดฎเตเดฎเตเดฎเดฑเดฟ เดเตเดฑเดตเดพเดฃเตเดเตเดเดฟเตฝ oom_kill()
เดชเตเดฐเตเดธเดธเตเดธเดฟเดฒเตเดเตเดเต เดเดฐเต SIGKILL เดธเดฟเดเตเดจเตฝ เด
เดฏเดฏเตโเดเตเดเดพเตป เด เดซเดเดเตโเดทเดจเต เดตเดฟเดณเดฟเดเตเดเตเดจเตเดจเต. เดเตเตผเดฃเตฝ เดฒเตเดเดฟเดฒเตเดเตเดเต เดเดฐเต เดธเดจเตเดฆเตเดถเด เดเดดเตเดคเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต.
Out of Memory: Killed process [pid] [name].
OOM-เดเดฟเดฒเตเดฒเตผ เดเดเตเดเดจเต เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเดเตเดเดพเด
Linux-เตฝ, เดจเดฟเดเตเดเตพเดเตเดเต OOM-Killer เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดทเดฎเดฎเดพเดเตเดเดพเดจเต เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเดเตเดเดพเดจเต เดเดดเดฟเดฏเตเด (เดฐเดฃเตเดเดพเดฎเดคเตเดคเตเดคเต เดถเตเดชเดพเตผเดถ เดเตเดฏเตเดคเดฟเดเตเดเดฟเดฒเตเดฒเตเดเตเดเดฟเดฒเตเด). เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดทเดฎเดฎเดพเดเตเดเดพเดจเต เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเดเตเดเดพเดจเต เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเตผ เดเดชเดฏเตเดเดฟเดเตเดเตเด vm.oom-kill
. เดฑเตบเดเตเดฎเดฟเตฝ OOM-เดเดฟเดฒเตเดฒเตผ เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดทเดฎเดฎเดพเดเตเดเดพเตป, เดเดฎเดพเตปเดกเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเด sysctl
.
sudo -s sysctl -w vm.oom-kill = 1
OOM-Killer เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเดเตเดเตเดจเตเดจเดคเดฟเดจเต, เด เดคเต เดเดฎเดพเตปเดกเดฟเตฝ เดฎเตเดฒเตเดฏเด 0 เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเตเด:
sudo -s sysctl -w vm.oom-kill = 0
เด เดเดฎเดพเตปเดกเดฟเดจเตเดฑเต เดซเดฒเด เดถเดพเดถเตเดตเดคเดฎเดพเดฏเดฟ เดธเดเดฐเดเตเดทเดฟเดเตเดเดชเตเดชเตเดเดฟเดฒเตเดฒ, เดชเดเตเดทเต เดเดฆเตเดฏเดคเตเดคเต เดฑเตเดฌเตเดเตเดเต เดตเดฐเต เดฎเดพเดคเตเดฐเด. เดจเดฟเดเตเดเตพเดเตเดเต เดเตเดเตเดคเตฝ เดธเตเดฅเดฟเดฐเตเดคเตเดธเดพเดนเด เดเดตเดถเตเดฏเดฎเตเดฃเตเดเตเดเตเดเดฟเตฝ, เดซเดฏเดฒเดฟเดฒเตเดเตเดเต เด เดตเดฐเดฟ เดเตเตผเดเตเดเตเด /etc/sysctl.conf
:
echo vm.oom-kill = 1 >>/etc/sysctl.conf
เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดทเดฎเดฎเดพเดเตเดเดพเดจเตเด เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเดเตเดเดพเดจเตเดฎเตเดณเตเดณ เดฎเดฑเตเดฑเตเดฐเต เดฎเดพเตผเดเด เดเดฐเต เดตเตเดฐเดฟเดฏเดฌเดฟเตพ เดเดดเตเดคเตเด เดเดจเตเดจเดคเดพเดฃเต panic_on_oom
. เดฎเตเดฒเตเดฏเด เดเดชเตเดชเตเดดเตเด เดเตเดเตเดเต เดเตป เดเตเดฏเตเดฏเดพเดตเตเดจเตเดจเดคเดพเดฃเต /proc
.
$ cat /proc/sys/vm/panic_on_oom
0
เดจเดฟเดเตเดเตพ เดฎเตเดฒเตเดฏเด 0 เดเดฏเดฟ เดธเดเตเดเดฎเดพเดเตเดเตเดเดฏเดพเดฃเตเดเตเดเดฟเตฝ, เดฎเตเดฎเตเดฎเดฑเดฟ เดคเตเดฐเตเดฎเตเดชเตเตพ, เดเตเตผเดฃเตฝ เดชเดพเดจเดฟเดเต เดเดฃเตเดเดพเดเดฟเดฒเตเดฒ.
$ echo 0 > /proc/sys/vm/panic_on_oom
เดจเดฟเดเตเดเตพ เดฎเตเดฒเตเดฏเด 1 เดเดฏเดฟ เดธเดเตเดเดฎเดพเดเตเดเตเดเดฏเดพเดฃเตเดเตเดเดฟเตฝ, เดฎเตเดฎเตเดฎเดฑเดฟ เดคเตเดฐเตเดฎเตเดชเตเตพ, เดเดฐเต เดเตเตผเดฃเตฝ เดชเดพเดจเดฟเดเต เดธเดเดญเดตเดฟเดเตเดเตเด.
echo 1 > /proc/sys/vm/panic_on_oom
OOM-เดเดฟเดฒเตเดฒเตผ เดเดฃเดพเดเตเดเดพเดจเตเด เดเดซเดพเดเตเดเดพเดจเตเด เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ. เดฒเดฟเดจเดเตโเดธเดฟเดจเต เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ เด
เดจเตเดตเดฆเดฟเดเตเดเดพเดคเต เดคเดจเตเดจเต เดฒเดญเตเดฏเดฎเดพเดฏเดคเดฟเดจเตเดเตเดเดพเตพ เดเตเดเตเดคเตฝ เดฎเตเดฎเตเดฎเดฑเดฟ เดชเตเดฐเตเดธเดธเตเดธเตเดเตพเดเตเดเดพเดฏเดฟ เดฑเดฟเดธเตผเดตเต เดเตเดฏเตเดฏเดพเดจเดพเดเตเดฎเตเดจเตเดจเต เดเดเตเดเตพ เดเดคเดฟเดจเดเด เดชเดฑเดเตเดเดฟเดเตเดเตเดฃเตเดเต, เด เดธเตเดตเดญเดพเดตเด เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเดเตเดเตเดจเตเดจเดคเต เดเดฐเต เดฒเดฟเดจเดเตเดธเต เดเตเตผเดฃเตฝ เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเดฑเดพเดฃเต. เดตเตเดฐเดฟเดฏเดฌเดฟเตพ เดเดคเดฟเดจเต เดเดคเตเดคเดฐเดตเดพเดฆเดฟเดฏเดพเดฃเต vm.overcommit_memory
.
เด เดคเดฟเดจเดพเดฏเดฟ เดจเดฟเดเตเดเตพเดเตเดเต เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดฎเตเดฒเตเดฏเดเตเดเตพ เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเดพเตป เดเดดเดฟเดฏเตเด:
0: เดตเดณเดฐเตเดฏเดงเดฟเดเด เดฎเตเดฎเตเดฎเดฑเดฟ เดฑเดฟเดธเตผเดตเต เดเตเดฏเตเดฏเดฃเดฎเต เดเดจเตเดจเต เดเตเตผเดฃเตฝ เดคเดจเตเดจเต เดคเตเดฐเตเดฎเดพเดจเดฟเดเตเดเตเดจเตเดจเต. เดฒเดฟเดจเดเตเดธเดฟเดจเตเดฑเต เดฎเดฟเดเตเด เดชเดคเดฟเดชเตเดชเตเดเดณเดฟเดฒเตเด เดเดคเต เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟเดฏเดพเดฃเต.
1: เดเตเตผเดฃเตฝ เดเดชเตเดชเตเดดเตเด เด
เดงเดฟเด เดฎเตเดฎเตเดฎเดฑเดฟ เดฑเดฟเดธเตผเดตเต เดเตเดฏเตเดฏเตเด. เดเดคเต เด
เดชเดเดเดเดฐเดฎเดพเดฃเต, เดเดพเดฐเดฃเด เดฎเตเดฎเตเดฎเดฑเดฟ เดคเตเตผเดจเตเดจเตเดชเตเดฏเตเดเตเดเดพเด, เดเดพเดฐเดฃเด, เดฎเดฟเดเตเดเดตเดพเดฑเตเด, เดเดฐเต เดฆเดฟเดตเดธเด เดชเตเดฐเดเตเดฐเดฟเดฏเดเตพเดเตเดเต เด
เดคเต เดเดตเดถเตเดฏเดฎเดพเดฏเดฟ เดตเดฐเตเด.
2: เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเดฑเดฟเตฝ เดชเดฑเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดเตเดเดพเตพ เดเตเดเตเดคเตฝ เดฎเตเดฎเตเดฎเดฑเดฟ เดเตเตผเดฃเตฝ เดฑเดฟเดธเตผเดตเต เดเตเดฏเตเดฏเดฟเดฒเตเดฒ overcommit_ratio
.
เด เดชเดฐเดพเดฎเตเดฑเตเดฑเตผ เดเดชเดฏเตเดเดฟเดเตเดเต, เดเดตเตผ เดฑเดฟเดธเตผเดตเต เดเตเดฏเตเดฏเดพเตป เด
เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจ เดฎเตเดฎเตเดฎเดฑเดฟเดฏเตเดเต เดถเดคเดฎเดพเดจเด เดจเดฟเดเตเดเตพ เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเตเดจเตเดจเต. เด
เดคเดฟเดจเต เดเดเดฎเดฟเดฒเตเดฒเตเดเตเดเดฟเตฝ, เดฎเตเดฎเตเดฎเดฑเดฟ เด
เดจเตเดตเดฆเดฟเดเตเดเดฟเดฒเตเดฒ, เดธเดเดตเดฐเดฃเด เดจเดฟเดทเตเดงเดฟเดเตเดเดชเตเดชเตเดเตเด. PostgreSQL-เดจเต เดถเตเดชเดพเตผเดถ เดเตเดฏเตเดฏเตเดจเตเดจ เดเดฑเตเดฑเดตเตเด เดธเตเดฐเดเตเดทเดฟเดคเดฎเดพเดฏ เดเดชเตเดทเดจเดพเดฃเดฟเดคเต. OOM-เดเดฟเดฒเตเดฒเดฑเดฟเดจเต เดฎเดฑเตเดฑเตเดฐเต เดเดเดเด เดฌเดพเดงเดฟเดเตเดเตเดจเตเดจเต - เดตเตเดฐเดฟเดฏเดฌเดฟเตพ เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเดเตเดเตเดจเตเดจ เดธเตเดตเดพเดชเตเดชเดฟเดเดเต เดเดดเดฟเดตเต cat /proc/sys/vm/swappiness
. เดชเตเดเดฟเดเดเต เดเดเตเดเดจเต เดเตเดเดพเดฐเตเดฏเด เดเตเดฏเตเดฏเดฃเดฎเตเดจเตเดจเต เด เดฎเตเดฒเตเดฏเดเตเดเตพ เดเตเตผเดฃเดฒเดฟเดจเตเดเต เดชเดฑเดฏเตเดจเตเดจเต. เดเดฏเตผเดจเตเดจ เดฎเตเดฒเตเดฏเด, OOM เดชเตเดฐเดเตเดฐเดฟเดฏ เด
เดตเดธเดพเดจเดฟเดชเตเดชเดฟเดเตเดเดพเดจเตเดณเตเดณ เดธเดพเดงเตเดฏเดค เดเตเดฑเดตเดพเดฃเต, เดชเดเตเดทเต I/O เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเตพ เดเดพเดฐเดฃเด เดเดคเต เดกเดพเดฑเตเดฑเดพเดฌเตเดธเดฟเตฝ เดชเตเดฐเดคเดฟเดเตเดฒ เดธเตเดตเดพเดงเตเดจเด เดเตเดฒเตเดคเตเดคเตเดจเตเดจเต. เดคเดฟเดฐเดฟเดเตเดเตเด - เดเตเดฑเดเตเด เดฎเตเดฒเตเดฏเด, OOM-เดเดฟเดฒเตเดฒเตผ เดเดเดชเตเดเดฒเดฟเดจเตเดณเตเดณ เดธเดพเดงเตเดฏเดค เดเตเดเตเดคเดฒเดพเดฃเต, เดชเดเตเดทเต เดกเดพเดฑเตเดฑเดพเดฌเตเดธเต เดชเตเดฐเดเดเดจเดตเตเด เดเตเดเตเดคเดฒเดพเดฃเต. เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟ เดฎเตเดฒเตเดฏเด 60 เดเดฃเต, เดเดจเตเดจเดพเตฝ เดฎเตเดดเตเดตเตป เดกเดพเดฑเตเดฑเดพเดฌเตเดธเตเด เดฎเตเดฎเตเดฎเดฑเดฟเดฏเดฟเตฝ เดฏเตเดเดฟเดเตเดเตเดจเตเดจเตเดตเตเดเตเดเดฟเตฝ, เดฎเตเดฒเตเดฏเด 1 เดเดฏเดฟ เดธเดเตเดเตเดเดฐเดฟเดเตเดเตเดจเตเดจเดคเดพเดฃเต เดจเดฒเตเดฒเดคเต.
เดซเดฒเดเตเดเตพ
OOM-เดเดฟเดฒเตเดฒเดฑเดฟเดฒเต "เดเตเดฒเดฏเดพเดณเดฟ" เดจเดฟเดเตเดเดณเต เดญเดฏเดชเตเดชเตเดเตเดคเตเดคเดพเตป เด
เดจเตเดตเดฆเดฟเดเตเดเดฐเตเดคเต. เด เดธเดพเดนเดเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดเตเดฒเดฏเดพเดณเดฟ เดจเดฟเดเตเดเดณเตเดเต เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดจเตเดฑเต เดฐเดเตเดทเดเดจเดพเดฏเดฟเดฐเดฟเดเตเดเตเด. เดเดคเต เดเดฑเตเดฑเดตเตเด เดฎเตเดถเด เดชเตเดฐเดเตเดฐเดฟเดฏเดเดณเต "เดเตเดฒเตเดฒเตเดจเตเดจเต" เดเตเดเดพเดคเต เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเต เดเตเดฐเดพเดทเดฟเตฝ เดจเดฟเดจเตเดจเต เดฐเดเตเดทเดฟเดเตเดเตเดจเตเดจเต. PostgreSQL เด
เดตเดธเดพเดจเดฟเดชเตเดชเดฟเดเตเดเดพเตป OOM-Killer เดเดชเดฏเตเดเดฟเดเตเดเตเดฃเตเดเดฟเดตเดฐเตเดจเตเดจเดคเต เดเดดเดฟเดตเดพเดเตเดเดพเตป, เดเดคเดฟเดจเดพเดฏเดฟ เดธเดเตเดเดฎเดพเดเตเดเตเด vm.overcommit_memory
เดฎเตเดฒเตเดฏเด 2. OOM-เดเดฟเดฒเตเดฒเตผ เดเดเดชเตเดเตเดฃเตเดเดคเดฟเดฒเตเดฒเตเดจเตเดจเต เดเดคเต เดเดฑเดชเตเดชเตเดจเตฝเดเตเดจเตเดจเดฟเดฒเตเดฒ, เดชเดเตเดทเต เดเดคเต PostgreSQL เดชเตเดฐเดเตเดฐเดฟเดฏ เด
เดตเดธเดพเดจเดฟเดชเตเดชเดฟเดเตเดเดพเตป เดจเดฟเตผเดฌเดจเตเดงเดฟเดคเดฎเดพเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดธเดพเดงเตเดฏเดค เดเตเดฑเดฏเตเดเตเดเตเด.
เด เดตเดฒเดเดฌเด: www.habr.com