เปเบกเบทเปเบญเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบเบญเบเบเบฒเบเบเปเปเบกเบนเบเปเบเบปเบฒเปเบเบเบเปเปเบเบฒเบเบเบดเบเปเบ Linux, เบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเบญเบเบซเบฒเปเบซเบเบเบปเบ. เบญเบฒเบเบเบฐเบกเบตเปเบซเบเบเบปเบเบซเบผเบฒเบเบขเปเบฒเบ. เบเบปเบโเบเบปเบงโเบขเปเบฒเบ, SIGSEGV โ เบเบงเบฒเบกโเบฅเบปเปเบกโเปเบซเบผเบงโเปเบเบทเปเบญเบโเบเบฒเบ bug เปเบโเปเบเบตเบโเปเบงเบต backend. เปเบเปเบเบตเปเปเบกเปเบเบซเบฒเบเบฒเบ. เบชเปเบงเบเบซเบผเบฒเบเบกเบฑเบ, เบเปเบฒเบเบเบฝเบเปเบเปเบซเบกเบปเบเบเบทเปเบเบเบตเปเบเบดเบเบซเบผเบทเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒ. เบเปเบฒเปเบเบปเปเบฒเปเบปเบเบเบทเปเบเบเบตเปเบเบดเบชเบเป, เบกเบตเบเบฒเบเบเบฝเบงเบญเบญเบ - free up space and restart the database .
เบเบฑเบเบเปเบฒเบเบงเบฒเบกเบเบปเบเบเบณเบเบญเบ
เปเบกเบทเปเบญเปเบเบตเบเปเบงเบตเบซเบผเบทเบเบฐเบเบงเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบญเบญเบเบเบฒเบเบเบงเบฒเบกเบเบปเบเบเปเบฒ, Linux เบชเบฐเปเบซเบเบต 2 เบงเบดเบเบตเปเบเปเปเบ: เบเบฑเบเบฅเบฐเบเบปเบเบเบฑเบเบซเบกเบปเบเบซเบผเบทเบขเบธเบเบเบฐเบเบงเบเบเบฒเบ (เปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบ) เบเบตเปเบเปเบฒเบฅเบฑเบเบเบดเบเบเบงเบฒเบกเบเปเบฒ. เบกเบฑเบเบเบตเบเบงเปเบฒ, เปเบเปเบเบญเบ, เปเบเบทเปเบญเบขเบธเบเบเบฐเบเบงเบเบเบฒเบเปเบฅเบฐเบเบฐเบซเบเบฑเบ OS เบเบฒเบเบเบฒเบเบเบฑเบเบเปเบญเบ. เบชเบฐเบซเบผเบธเบเปเบฅเปเบง, Out-Of-Memory Killer เปเบกเปเบเบเบฐเบเบงเบเบเบฒเบเบเบตเปเบเปเบฒเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเปเบเบทเปเบญเบเปเบงเบเบเบฐเบขเบฑเบ kernel เบเบฒเบเบเบฒเบเบเบฑเบเบเปเบญเบ. เบกเบฑเบเปเบชเบเบชเบฐเบฅเบฐเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเปเบเบทเปเบญเปเบฎเบฑเบเปเบซเป OS เปเบฎเบฑเบเบงเบฝเบ. เบเปเบฒเบญเบดเบเปเบซเปเบเบถเบเบชเบฒเบซเบฒเบฅเบทเบเปเบฝเบงเบเบฑเบเบงเบดเบเบต OOM เปเบฎเบฑเบเบงเบฝเบเปเบฅเบฐเบงเบดเบเบตเบเบฒเบเบเบงเบเบเบธเบกเบกเบฑเบ, เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเปเบเบดเปเบเบงเปเบฒ OOM Killer เบเบฑเบเบชเบดเบเปเบเบงเปเบฒเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเปเบเบเบตเปเบเบฐเบขเบธเบเปเบเบปเบฒ.
เบซเบเบถเปเบเปเบเบงเบฝเบเบเบฒเบเบเบปเปเบเบเปเบเบญเบ Linux เปเบกเปเบเบเบฒเบเบเบฑเบเบชเบฑเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเปเบซเปเบเบฑเบเบเบฐเบเบงเบเบเบฒเบเปเบเปเบงเบฅเบฒเบเบตเปเบเบงเบเปเบเบปเบฒเบฎเปเบญเบเบเปเปเบญเบปเบฒเบกเบฑเบ. เปเบเบเบเบปเบเบเบฐเบเบด, เบเบฐเบเบงเบเบเบฒเบเบซเบผเบทเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเบเบฐเบฎเปเบญเบเบเปเบเบงเบฒเบกเบเบปเบเบเปเบฒเบเบฒเบ OS, เปเบเปเบเปเปเปเบเปเปเบเปเบกเบฑเบเบขเปเบฒเบเปเบเบฑเบกเบเบตเป. เบเปเบฒ OS เบเปเบญเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเปเบซเปเบเบฑเบเบเบธเบเบเบปเบเบเบตเปเบเปเปเบเปเบเปเปเบกเบตเปเบเบเบเบตเปเบเบฐเปเบเปเบกเบฑเบ, เปเบเปเบงเปเบเบตเปเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเบเบฐเบซเบกเบปเบเปเบเปเบฅเบฐเบฅเบฐเบเบปเบเบเบฐเบฅเบปเปเบกเปเบซเบฅเบง. เปเบเบทเปเบญเบซเบผเบตเบเปเบงเบฑเปเบเบเบฒเบเบเบตเป, OS เบชเบฐเบซเบเบงเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเบชเปเบฒเบฅเบฑเบเบเบฐเบเบงเบเบเบฒเบ, เปเบเปเบเบปเบงเบเบดเบเปเบฅเปเบงเบเปเปเปเบเปเบเปเบญเบเบกเบฑเบ. เบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเปเบเปเบเบทเบเบเบฑเบเบชเบฑเบเบเบฝเบเปเบเปเปเบกเบทเปเบญเบเบฐเบเบงเบเบเบฒเบเบเบตเปเบเบฐเปเบเปเบกเบฑเบ. เบกเบฑเบเปเบเบตเบเบเบทเปเบเบงเปเบฒ OS เบเปเปเบกเบตเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเบเบฃเบต, เปเบเปเบกเบฑเบเบกเบญเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเปเบซเปเบเบฑเบเบเบฐเบเบงเบเบเบฒเบ, เปเบฅเบฐเปเบกเบทเปเบญเบเบฐเบเบงเบเบเบฒเบเบเปเบญเบเบเบฒเบเบกเบฑเบ, OS เบเบฐเบเบฑเบเบชเบฑเบเบกเบฑเบเบเปเบฒเบกเบฑเบเบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบเป. เบเปเปเปเบชเบเปเบกเปเบเบงเปเบฒเบเบฒเบเบเบฑเปเบ OS เบชเบฐเบซเบเบงเบเบเบงเบฒเบกเบเบปเบเบเปเบฒ, เปเบเปเปเบเปเบงเบฅเบฒเบเบตเปเปเบซเบกเบฒเบฐเบชเบปเบกเบเปเปเบกเบตเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเบเบฃเบต, เปเบฅเบฐเบฅเบฐเบเบปเบเบเบฑเบเบเปเบญเบ. OOM เบกเบตเบเบปเบเบเบฒเบเบชเปเบฒเบเบฑเบเปเบเบชเบฐเบเบฒเบเบฐเบเบฒเบเบเบตเปเปเบฅเบฐเบขเบธเบเบเบฐเบเบงเบเบเบฒเบเปเบเบทเปเบญเบเปเบญเบเบเบฑเบเบเปเปเปเบซเป kernel panicking. เปเบกเบทเปเบญเบเบฐเบเบงเบเบเบฒเบ PostgreSQL เบเบทเบเบเบฑเบเบเบฑเบเปเบซเปเบขเบธเบเปเบเบปเบฒ, เบเปเปเบเบงเบฒเบกเบเบฐเบเบฒเบเบปเบเบขเบนเปเปเบเบเบฑเบเบเบถเบ:
Out of Memory: Killed process 12345 (postgres).
เบเปเบฒเบฅเบฐเบเบปเบเบกเบตเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเบเปเปเบฒเปเบฅเบฐเบเปเปเบชเบฒเบกเบฒเบเบเบปเบเบเปเบญเบเปเบเป, เบเบฑเบเบเบฑเบเปเบญเบตเปเบเบงเปเบฒ out_of_memory
. เปเบเบเบฑเปเบเบเบญเบเบเบตเป, เบเบฒเบเบกเบตเบเบฝเบเปเบเปเบชเบดเปเบเบเบฝเบงเบเบตเปเบเบฐเปเบฎเบฑเบ - เบชเปเบฒเปเบฅเบฑเบเบซเบเบถเปเบเบซเบผเบทเบซเบผเบฒเบเบเบฐเบเบงเบเบเบฒเบ. OOM-killer เบเบงเบเบขเบธเบเบเบฐเบเบงเบเบเบฒเบเบเบฑเบเบเบตเบซเบผเบทเบชเบฒเบกเบฒเบเบฅเปเบเปเบฒเปเบเปเบเป? เปเบเปเบเบญเบ, เปเบกเบทเปเบญ out_of_memory เบเบทเบเปเบญเบตเปเบ, เบกเบฑเบเปเบกเปเบเปเบเบทเปเบญเบเบกเบฒเบเบฒเบเบเบฒเบเบฅเปเบเปเบฒเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบ I/O เบซเบผเบท paging เบเบฑเบเปเบเปเบ. เบเบฑเปเบเบเบฑเปเบ, เบเบนเปเบเปเบฒ OOM เบเปเบฒเบญเบดเบเบเปเบญเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเบงเบเบชเบญเบเปเบฅเบฐ, เปเบเบเบญเบตเบเปเบชเปเบเบงเบเบกเบฑเบ, เบเบฑเบเบชเบดเบเปเบเบงเปเบฒเบเบฐเบเบงเบเบเบฒเบเบเปเบญเบเปเบเปเบฎเบฑเบเบเบฒเบเบขเบธเบเปเบเบปเบฒ. เบเปเบฒเบเบฒเบเบเบงเบเบชเบญเบเบเบฑเบเบซเบกเบปเบเบเปเบฒเบเบฅเบธเปเบกเบเบตเปเปเบกเปเบเปเบเบฑเบเบเบงเบ, OOM เบเบฐเบชเบดเปเบเบชเบธเบเบเบฐเบเบงเบเบเบฒเบ.
เบเบฒเบเบเบฑเบเปเบฅเบทเบญเบเบเบฐเบเบงเบเบเบฒเบ
เปเบกเบทเปเบญเปเปเบงเบเบเบงเบฒเบกเบเบณเปเบปเบ, เบเบฑเบเบเบฑเบเบเบทเบเปเบญเบตเปเบ out_of_memory()
. เบกเบฑเบเบกเบตเบซเบเปเบฒเบเบตเป select_bad_process()
, เปเบเบดเปเบเปเบเปเบฎเบฑเบเบเบฒเบเบเบฐเปเบกเบตเบเบเบปเบเบเบฒเบเบซเบเปเบฒเบเบตเป badness()
. เบเบฐเบเบงเบเบเบฒเบ "เบฎเปเบฒเบเปเบฎเบเบเบตเปเบชเบธเบ" เบเบฐเบเบทเบเปเบเบปเปเบฒเบซเบกเบฒเบ. เบเบฑเบเบเบฑเบ badness()
เปเบฅเบทเบญเบเบเบฐเบเบงเบเบเบฒเบเบเบฒเบกเบเบปเบเบฅเบฐเบเบฝเบเบเบตเปเปเบเปเบเบญเบ.
- kernel เบเปเบญเบเบเบฒเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเบเบฑเปเบเบเปเปเบฒเบเบฒเบเบขเปเบฒเบเบชเปเบฒเบฅเบฑเบเบเบปเบงเบกเบฑเบเปเบญเบ.
- เบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเบตเปเบกเบเบงเบฒเบกเบเปเบฒเบซเบผเบฒเบ.
- เบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเบขเบธเบเปเบเบปเบฒเบเบฐเบเบงเบเบเบฒเบเบเบตเปเปเบเปเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเบเบฝเบเปเบฅเบฑเบเบเปเบญเบ.
- เบเบฐเบเบงเบเบเบฒเบเบเบฑเปเบเบเปเปเบฒเบเปเบญเบเปเบเปเบฎเบฑเบเบเบฒเบเบชเปเบฒเปเบฅเบฑเบ.
- เบชเบนเบเบเบฒเบเบเบดเบเปเบฅเปเบเบตเปเบเบฑเบเบเปเบญเบเบเบตเปเปเบเบตเปเบกเปเบญเบเบฒเบเบเบญเบเบเบฒเบเบชเปเบฒเปเบฅเบฑเบเบชเปเบฒเบฅเบฑเบเบเบฐเบเบงเบเบเบฒเบเปเบซเบผเบปเปเบฒเบเบฑเปเบเบเบตเปเบเบนเปเปเบเปเปเบญเบเบเปเบญเบเบเบฒเบเบชเปเบฒเปเบฅเบฑเบ.
เบซเบผเบฑเบเบเบฒเบเบชเปเบฒเปเบฅเบฑเบเบเบฒเบเบเบงเบเบชเบญเบเบเบฑเบเบซเบกเบปเบเปเบซเบผเบปเปเบฒเบเบตเป, OOM เบเบงเบเปเบเบดเปเบเบเบฐเปเบเบ (oom_score
). OOM เปเบเปเบเบเบฑเปเบ oom_score
เปเบเปเบฅเบฐเบเบฐเบเบงเบเบเบฒเบ, เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบนเบเบเปเบฒเบเบตเปเบเปเบงเบเบเปเบฒเบเบงเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒ. เบเบฐเบเบงเบเบเบฒเบเบเบตเปเบกเบตเบเปเบฒเปเบซเบเปเบเบงเปเบฒเบกเบตเปเบเบงเปเบเปเบกเบเบตเปเบเบฐเบเบปเบเปเบเบฑเบเปเบซเบเบทเปเบญเบเบญเบ OOM Killer. เบเบฐเบเบงเบเบเบฒเบเบเบตเปเบเปเบฝเบงเบเปเบญเบเบเบฑเบเบเบนเปเปเบเปเบฎเบฒเบเบกเบตเบเบฐเปเบเบเบเปเปเบฒเปเบฅเบฐเบซเบเปเบญเบเบเบตเปเบเบฐเบเบทเบเบเบฑเบเบเบฑเบเปเบซเปเบขเบธเบเปเบเบปเบฒ.
postgres=# SELECT pg_backend_pid();
pg_backend_pid
----------------
3813
(1 row)
ID เบเบฐเบเบงเบเบเบฒเบ Postgres เปเบกเปเบ 3813, เบเบฑเปเบเบเบฑเปเบเปเบเปเบเบฐเบญเบทเปเบเบกเบฑเบเปเบเบฑเบเปเบเปเบเปเบเบตเปเบเบฐเปเบเปเบฎเบฑเบเบเบฐเปเบเบเปเบเบเปเบเปเบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบ kernel เบเบตเป. 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-Killer เปเบเบซเบฒเบเบฑเบเบเบฑเบ oom_kill_task()
. เบเบฑเบเบเบฑเบเบเบตเปเบชเบปเปเบเบชเบฑเบเบเบฒเบเบเบฒเบเบขเบธเบเปเบเบปเบฒเปเบเบซเบฒเบเบฐเบเบงเบเบเบฒเบ. เปเบเบเปเบฅเบฐเบเบตเบเบญเบเบเบฒเบเบเบฒเบเปเบเบเบเบงเบฒเบกเบเบปเบเบเปเบฒ oom_kill()
เปเบญเบตเปเบเบเบฑเบเบเบฑเบเบเบตเปเปเบเบทเปเบญเบชเบปเปเบเบชเบฑเบเบเบฒเบ SIGKILL เปเบเบซเบฒเบเบฐเบเบงเบเบเบฒเบ. เบเปเปเบเบงเบฒเบกเบเบทเบเบเบฝเบเปเบชเปเบเบฑเบเบเบถเบ kernel.
Out of Memory: Killed process [pid] [name].
เบงเบดเบเบตเบเบฒเบเบเบงเบเบเบธเบก OOM-Killer
เปเบ Linux, เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเบตเบเปเบเปเบซเบผเบทเบเบดเบเบเบฒเบเปเบเปเบเบฒเบ OOM-Killer (เปเบเบดเบเปเบกเปเบเบงเปเบฒเบญเบฑเบเบชเบธเบเบเปเบฒเบเปเบกเปเบเบเปเปเปเบเปเปเบเบฐเบเปเบฒ). เปเบเบทเปเบญเปเบเบตเบเปเบเปเบซเบผเบทเบเบดเบเบเบฒเบเปเบเปเบเบฒเบ, เปเบซเปเปเบเปเบเบฒเบฅเบฒเบกเบดเปเบเบต vm.oom-kill
. เปเบเบทเปเบญเปเบเบตเบเปเบเป OOM-Killer เปเบเปเบงเบฅเบฒเปเบฅเปเบ, เบเปเบฒเปเบเบตเบเบเบฒเบเบเปเบฒเบชเบฑเปเบ sysctl
.
sudo -s sysctl -w vm.oom-kill = 1
เปเบเบทเปเบญเบเบดเบเบเบฒเบเปเบเปเบเบฒเบ OOM-Killer, เปเบซเปเบฅเบฐเบเบธเบเปเบฒ 0 เปเบเบเปเบฒเบชเบฑเปเบเบเบฝเบงเบเบฑเบ:
sudo -s sysctl -w vm.oom-kill = 0
เบเบปเบเปเบเปเบฎเบฑเบเบเบญเบเบเปเบฒเบชเบฑเปเบเบเบตเปเบเบฐเบเปเปเบเบทเบเบเบฑเบเบเบถเบเปเบงเปเบเบฐเบซเบผเบญเบเปเบ, เปเบเปเบงเปเบฒเบเบฝเบเปเบเปเบเบปเบเบเปเบงเบฒ reboot เบเปเบฒเบญเบดเบ. เบเปเบฒเบเปเบฒเบเบเปเบญเบเบเบฒเบเบเบงเบฒเบกเบเบปเบเบเบปเบเบซเบผเบฒเบ, เปเบเบตเปเบกเปเบชเบฑเปเบเบเบตเปเปเบชเปเปเบเบฅเป /etc/sysctl.conf
:
echo vm.oom-kill = 1 >>/etc/sysctl.conf
เบญเบตเบเบงเบดเบเบตเบซเบเบถเปเบเบเบตเปเบเบฐเปเบเบตเบเปเบเปเปเบฅเบฐเบเบดเบเบเบฒเบเปเบเปเบเบฒเบเปเบกเปเบเบเบฒเบเบเบฝเบเบเบปเบงเปเบ panic_on_oom
. เบกเบนเบเบเปเบฒเบชเบฒเบกเบฒเบเบเบงเบเบชเบญเบเปเบเปเบเบฐเบซเบผเบญเบเปเบงเบฅเบฒ /proc
.
$ cat /proc/sys/vm/panic_on_oom
0
เบเปเบฒเบเปเบฒเบเบเบฑเปเบเบเปเบฒเปเบเบฑเบ 0, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เปเบกเบทเปเบญเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเบซเบกเบปเบ, เบเบฐเบเปเปเบกเบตเบเบงเบฒเบกเปเบเบเปเบ kernel.
$ echo 0 > /proc/sys/vm/panic_on_oom
เบเปเบฒเบเปเบฒเบเบเบฑเปเบเบเปเบฒเปเบเบฑเบ 1, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เปเบกเบทเปเบญเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเบซเบกเบปเบ, kernel panic เบเบฐเปเบเบตเบเบเบถเปเบ.
echo 1 > /proc/sys/vm/panic_on_oom
OOM-Killer เบเปเปเบเบฝเบเปเบเปเบชเบฒเบกเบฒเบเปเบเบตเบเปเบฅเบฐเบเบดเบเปเบเป. เบเบงเบเปเบฎเบปเบฒเปเบงเบปเปเบฒเปเบฅเปเบงเบงเปเบฒ Linux เบชเบฒเบกเบฒเบเบชเบฐเบซเบเบงเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเบชเปเบฒเบฅเบฑเบเบเบฐเบเบงเบเบเบฒเบเบซเบผเบฒเบเบเปเบงเบฒเบเบตเปเบกเบตเบขเบนเปเปเบเบเบเปเปเบกเบตเบเบฒเบเบเบฑเบเบชเบฑเบเบกเบฑเบเบขเปเบฒเบเปเบเปเบเบดเบ, เปเบฅเบฐเบเบถเบเบเบดเบเปเบฒเบเบตเปเบเบทเบเบเบงเบเบเบธเบกเปเบเบเบเบฒเบฅเบฒเบกเบดเปเบเบต Linux kernel. เบเบปเบงเปเบเปเบกเปเบเบฎเบฑเบเบเบดเบเบเบญเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบตเป vm.overcommit_memory
.
เบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเบเบปเบเบเปเบฒเบเปเปเปเบเบเบตเปเบชเปเบฒเบฅเบฑเบเบกเบฑเบ:
0: kernel เบเบปเบงเบกเบฑเบเปเบญเบเบเบฑเบเบชเบดเบเปเบเบงเปเบฒเบเบฐเบชเบฐเบซเบเบงเบเบเบงเบฒเบกเบเบปเบเบเปเบฒเบซเบผเบฒเบเปเบเบตเบเปเบเบซเบผเบทเบเปเป. เบเบตเปเปเบกเปเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเปเบ Linux เปเบงเบตเบเบฑเบเบชเปเบงเบเปเบซเบเป.
1: kernel เบเบฐเบชเบฐเบซเบเบงเบเบเบงเบฒเบกเบเบปเบเบเปเบฒเบเบดเปเบชเบเบชเบฐเปเบซเบกเบต. เบเบตเปเปเบกเปเบเบเบงเบฒเบกเบชเปเบฝเบ, เปเบเบฒเบฐเบงเปเบฒเบเบงเบฒเบกเบเบปเบเบเปเบฒเบญเบฒเบเบเบฐเบซเบกเบปเบเปเบ, เปเบเบฒเบฐเบงเปเบฒ, เบชเปเบงเบเบซเบผเบฒเบเบญเบฒเบเบเบฐ, เบกเบทเปเบซเบเบถเปเบเบเบฐเบเบงเบเบเบฒเบเบเบฐเบเปเบญเบเบเบฒเบเบกเบฑเบ.
2: kernel เบเบฐเบเปเปเบชเบฐเบซเบเบงเบเบเบงเบฒเบกเบเปเบฒเบซเบผเบฒเบเบเปเบงเบฒเบเบตเปเบฅเบฐเบเบธเปเบงเปเปเบเบเบฒเบฅเบฒเบกเบดเปเบเบต overcommit_ratio
.
เบเปเบงเบเบเบฒเบฅเบฒเบกเบดเปเบเบตเบเบตเป, เบเปเบฒเบเบฅเบฐเบเบธเปเบเบตเปเบเบฑเบเบเบญเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเบเบตเปเบเบทเบเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเบญเบเปเบเบตเบ. เบเปเบฒเบเปเปเบกเบตเบซเปเบญเบเบชเปเบฒเบฅเบฑเบเบกเบฑเบ, เบเปเปเบกเบตเบเบฒเบเบเบฑเบเบชเบฑเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒ, เปเบฅเบฐเบเบฒเบเบเบญเบเบเบฐเบเบทเบเบเบฐเบเบดเปเบชเบ. เบเบตเปเปเบกเปเบเบเบฒเบเปเบฅเบทเบญเบเบเบตเปเบเบญเบเปเบเบเบตเปเบชเบธเบเบเบตเปเปเบเบฐเบเปเบฒเบชเปเบฒเบฅเบฑเบ PostgreSQL. OOM-Killer เปเบเปเบฎเบฑเบเบเบปเบเบเบฐเบเบปเบเบเบฒเบเบญเบปเบเบเบฐเบเบญเบเบญเบทเปเบ - เบเบงเบฒเบกเบชเบฒเบกเบฒเบเปเบเบเบฒเบเปเบฅเบเบเปเบฝเบ, เปเบเบดเปเบเบเบทเบเบเบงเบเบเบธเบกเปเบเบเบเบปเบงเปเบ cat /proc/sys/vm/swappiness
. เบเปเบฒเปเบซเบผเบปเปเบฒเบเบตเปเบเบญเบ kernel เบงเบดเบเบตเบเบฒเบเบเบฑเบเบเบฒเบเบเบฑเบเบซเบเปเบฒเปเบงเบฑเบ. เบกเบนเบเบเปเบฒเบเบตเปเบชเบนเบเบเบถเปเบ, เบกเบฑเบเปเบเบฑเบเปเบเปเบเปเบซเบเปเบญเบเบเบตเป OOM เบเบฐเบขเบธเบเบเบฐเบเบงเบเบเบฒเบ, เปเบเปเปเบเบทเปเบญเบเบเบฒเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบ I/O เบกเบฑเบเบกเบตเบเบปเบเบเบฐเบเบปเบเบเบฒเบเบฅเบปเบเบเปเปเบเบฒเบเบเปเปเบกเบนเบ. เปเบฅเบฐเปเบเบเบฒเบเบเบฑเบเบเบฑเบ - เบกเบนเบเบเปเบฒเบเปเปเบฒ, เบเบงเบฒเบกเปเบเบฑเบเปเบเปเบเปเบเบญเบเบเบฒเบเปเบเบเปเบเบ OOM-Killer เบชเบนเบเบเบถเปเบ, เปเบเปเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเปเปเบกเบนเบเบเบฑเบเบชเบนเบเบเบงเปเบฒ. เบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเปเบกเปเบ 60, เปเบเปเบเปเบฒเบเบฒเบเบเปเปเบกเบนเบเบเบฑเบเบซเบกเบปเบเปเบซเบกเบฒเบฐเบเบฑเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒ, เบกเบฑเบเบเบตเบเบงเปเบฒเบเบตเปเบเบฐเบเปเบฒเบเบปเบเบเปเบฒเปเบเบฑเบ 1.
เบเบปเบเปเบเปเบฎเบฑเบ
เบขเปเบฒเบเปเบญเบเปเบซเป "เบเบฑเบเบเปเบฒ" เปเบ OOM-Killer เบขเปเบฒเบเปเบเบปเปเบฒ. เปเบเบเปเบฅเบฐเบเบตเบเบตเป, killer เบเบฐเปเบเบฑเบเบเบนเปเบเปเบญเบเปเบซเปเบฅเบญเบเบเบญเบเบฅเบฐเบเบปเบเบเบญเบเบเปเบฒเบ. เบกเบฑเบ "เบเปเบฒ" เบเบฐเบเบงเบเบเบฒเบเบเบตเปเบฎเปเบฒเบเปเบฎเบเบเบตเปเบชเบธเบเปเบฅเบฐเบเปเบงเบเบเบฐเบขเบฑเบเบฅเบฐเบเบปเบเบเบฒเบเบเบฒเบเบเบฑเบเบเปเบญเบ. เปเบเบทเปเบญเบซเบผเบตเบเปเบงเบฑเปเบเบเบฒเบเปเบเป OOM-Killer เปเบเบทเปเบญเบขเบธเบ PostgreSQL, เบเบฑเปเบเปเบเบฑเบ vm.overcommit_memory
เบกเบนเบเบเปเบฒ 2. เบเบตเปเบเปเปเปเบเปเบฎเบฑเบเบเบฐเบเบฑเบเบงเปเบฒ OOM-Killer เบเบฐเบเปเปเบกเบตเบเบฒเบเปเบเบเปเบเบ, เปเบเปเบกเบฑเบเบเบฐเบซเบผเบธเบเบเปเบญเบเบเบงเบฒเบกเปเบเบฑเบเปเบเปเบเปเบเบญเบเบเบฒเบเบเบฑเบเบเบฑเบเปเบซเปเบเบฐเบเบงเบเบเบฒเบ PostgreSQL เบขเบธเบเปเบเบปเบฒ.
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com