ื”ื’ื“ืจืช Killer Out-Of-Memory ื‘ืœื™ื ื•ืงืก ืขื‘ื•ืจ PostgreSQL

ื”ื’ื“ืจืช Killer Out-Of-Memory ื‘ืœื™ื ื•ืงืก ืขื‘ื•ืจ PostgreSQL

ื›ืืฉืจ ืฉืจืช ืžืกื“ ื ืชื•ื ื™ื ื ืกื’ืจ ื‘ืื•ืคืŸ ื‘ืœืชื™ ืฆืคื•ื™ ื‘ืœื™ื ื•ืงืก, ืืชื” ืฆืจื™ืš ืœืžืฆื•ื ืืช ื”ืกื™ื‘ื”. ื™ื›ื•ืœื•ืช ืœื”ื™ื•ืช ืžืกืคืจ ืกื™ื‘ื•ืช. ืœื“ื•ื’ืžื”, SIGSEGV - ื›ืฉืœ ืขืงื‘ ื‘ืื’ ื‘ืฉืจืช ื”ืงืฆื” ื”ืื—ื•ืจื™. ืื‘ืœ ื–ื” ื ื“ื™ืจ. ืœืจื•ื‘, ืคืฉื•ื˜ ื ื’ืžืจ ืœืš ืฉื˜ื— ื”ื“ื™ืกืง ืื• ื”ื–ื™ื›ืจื•ืŸ. ืื ื ื’ืžืจ ืœืš ืฉื˜ื— ื”ื“ื™ืกืง, ื™ืฉ ืจืง ืžื•ืฆื ืื—ื“ - ืคื ื” ืžืงื•ื ื•ื”ืคืขืœ ืžื—ื“ืฉ ืืช ืžืกื“ ื”ื ืชื•ื ื™ื.

ืจื•ืฆื— ื—ืกืจ ื–ื™ื›ืจื•ืŸ

ื›ืืฉืจ ืœืฉืจืช ืื• ืœืชื”ืœื™ืš ื ื’ืžืจ ื”ื–ื™ื›ืจื•ืŸ, ืœื™ื ื•ืงืก ืžืฆื™ืขื” 2 ืคืชืจื•ื ื•ืช: ืœืงืจื•ืก ืืช ื›ืœ ื”ืžืขืจื›ืช ืื• ืœืกื™ื™ื ืืช ื”ืชื”ืœื™ืš (ื”ืืคืœื™ืงืฆื™ื”) ืฉืื•ื›ืœืช ืืช ื”ื–ื™ื›ืจื•ืŸ. ืขื“ื™ืฃ, ื›ืžื•ื‘ืŸ, ืœืกื™ื™ื ืืช ื”ืชื”ืœื™ืš ื•ืœื—ืกื•ืš ืืช ืžืขืจื›ืช ื”ื”ืคืขืœื” ืžืงืจื™ืกื”. ื‘ืงื™ืฆื•ืจ, Out-Of-Memory Killer ื”ื•ื ืชื”ืœื™ืš ืฉื”ื•ืจื’ ืืคืœื™ืงืฆื™ื” ื›ื“ื™ ืœื”ืฆื™ืœ ืืช ื”ืœื™ื‘ื” ืžืงืจื™ืกืช. ื–ื” ืžืงืจื™ื‘ ืืช ื”ื™ื™ืฉื•ื ื›ื“ื™ ืœืฉืžื•ืจ ืขืœ ืžืขืจื›ืช ื”ื”ืคืขืœื” ืคื•ืขืœืช. ืชื—ื™ืœื” ื ื“ื•ืŸ ื›ื™ืฆื“ ืคื•ืขืœืช OOM ื•ื›ื™ืฆื“ ืœืฉืœื•ื˜ ื‘ื”, ื•ืœืื—ืจ ืžื›ืŸ ื ืจืื” ื›ื™ืฆื“ OOM Killer ืžื—ืœื™ื˜ ืื™ื–ื• ืืคืœื™ืงืฆื™ื” ืœื”ืคืกื™ืง.

ืื—ืช ื”ืžืฉื™ืžื•ืช ื”ืขื™ืงืจื™ื•ืช ืฉืœ ืœื™ื ื•ืงืก ื”ื™ื ืœื”ืงืฆื•ืช ื–ื™ื›ืจื•ืŸ ืœืชื”ืœื™ื›ื™ื ื›ืฉื”ื ืžื‘ืงืฉื™ื ื–ืืช. ื‘ื“ืจืš ื›ืœืœ, ืชื”ืœื™ืš ืื• ื™ื™ืฉื•ื ืžื‘ืงืฉื™ื ื–ื™ื›ืจื•ืŸ ืžืžืขืจื›ืช ื”ื”ืคืขืœื”, ืืš ืื™ื ื ืžืฉืชืžืฉื™ื ื‘ื• ื‘ืื•ืคืŸ ืžืœื. ืื ืžืขืจื›ืช ื”ื”ืคืขืœื” ืชื—ืœืง ื–ื™ื›ืจื•ืŸ ืœื›ืœ ืžื™ ืฉืžื‘ืงืฉ ืื•ืชื• ืื‘ืœ ืื™ืŸ ืœื• ืชื•ื›ื ื™ื•ืช ืœื”ืฉืชืžืฉ ื‘ื•, ื‘ืงืจื•ื‘ ืžืื•ื“ ื”ื–ื™ื›ืจื•ืŸ ื™ื™ื’ืžืจ ื•ื”ืžืขืจื›ืช ืชื™ื›ืฉืœ. ื›ื“ื™ ืœื”ื™ืžื ืข ืžื›ืš, ืžืขืจื›ืช ื”ื”ืคืขืœื” ืฉื•ืžืจืช ื–ื™ื›ืจื•ืŸ ืœืชื”ืœื™ืš, ืืš ืœืžืขืฉื” ืื™ื ื” ืžืฉื—ืจืจืช ืื•ืชื•. ื–ื™ื›ืจื•ืŸ ืžื•ืงืฆื” ืจืง ื›ืืฉืจ ืชื”ืœื™ืš ื‘ืืžืช ื”ื•ืœืš ืœื”ืฉืชืžืฉ ื‘ื•. ืงื•ืจื” ืฉืœืžืขืจื›ืช ื”ื”ืคืขืœื” ืื™ืŸ ื–ื™ื›ืจื•ืŸ ืคื ื•ื™, ืื‘ืœ ื”ื™ื ืžืงืฆื” ื–ื™ื›ืจื•ืŸ ืœืชื”ืœื™ืš, ื•ื›ืืฉืจ ืชื”ืœื™ืš ืฆืจื™ืš ืืช ื–ื”, ืžืขืจื›ืช ื”ื”ืคืขืœื” ืžืงืฆื” ืื•ืชื• ืื ื”ื™ื ื™ื›ื•ืœื”. ื”ื—ื™ืกืจื•ืŸ ื”ื•ื ืฉืœืคืขืžื™ื ืžืขืจื›ืช ื”ื”ืคืขืœื” ืฉื•ืžืจืช ื–ื™ื›ืจื•ืŸ, ืื‘ืœ ื‘ื–ืžืŸ ื”ื ื›ื•ืŸ ืื™ืŸ ื–ื™ื›ืจื•ืŸ ืคื ื•ื™, ื•ื”ืžืขืจื›ืช ืงื•ืจืกืช. OOM ืžืžืœื ืชืคืงื™ื“ ื—ืฉื•ื‘ ื‘ืชืจื—ื™ืฉ ื–ื” ื•ืžืคืกื™ืง ืชื”ืœื™ื›ื™ื ื›ื“ื™ ืœืžื ื•ืข ืžื”ืงืจื ืœ ืœื”ื™ื›ื ืก ืœืคืื ื™ืงื”. ื›ืืฉืจ ืชื”ืœื™ืš PostgreSQL ื ืืœืฅ ืœื”ืกืชื™ื™ื, ืžื•ืคื™ืขื” ื”ื•ื“ืขื” ื‘ื™ื•ืžืŸ:

Out of Memory: Killed process 12345 (postgres).

ืื ืœืžืขืจื›ืช ื—ืกืจ ื–ื™ื›ืจื•ืŸ ื•ืื™ืŸ ืืคืฉืจื•ืช ืœืฉื—ืจืจ ืื•ืชื”, ื”ืคื•ื ืงืฆื™ื” ื ืงืจืืช out_of_memory. ื‘ืฉืœื‘ ื–ื” ื ื•ืชืจ ืœื” ืจืง ื“ื‘ืจ ืื—ื“ ืœืขืฉื•ืช - ืœื”ืฉืœื™ื ืชื”ืœื™ืš ืื—ื“ ืื• ื™ื•ืชืจ. ื”ืื OOM-killer ืฆืจื™ืš ืœื”ืคืกื™ืง ืืช ื”ืชื”ืœื™ืš ื‘ืื•ืคืŸ ืžื™ื™ื“ื™ ืื• ืฉื”ื•ื ื™ื›ื•ืœ ืœื—ื›ื•ืช? ื‘ืจื•ืจ ืฉื›ืืฉืจ ื ืงืจื out_of_memory, ื–ื” ื ื•ื‘ืข ืžื”ืžืชื ื” ืœืคืขื•ืœืช I/O ืื• ื”ื—ืœืคื” ืœื“ื™ืกืง. ืœื›ืŸ, ืขืœ ื”ืจื•ืฆื— OOM ืœื‘ืฆืข ืชื—ื™ืœื” ื‘ื“ื™ืงื•ืช ื•ืขืœ ื‘ืกื™ืกืŸ ืœื”ื—ืœื™ื˜ ืฉื™ืฉ ืœื”ืคืกื™ืง ืืช ื”ืชื”ืœื™ืš. ืื ื›ืœ ื”ื‘ื“ื™ืงื•ืช ืœื”ืœืŸ ื—ื™ื•ื‘ื™ื•ืช, OOM ืชืกื™ื™ื ืืช ื”ืชื”ืœื™ืš.

ื‘ื—ื™ืจืช ืชื”ืœื™ืš

ื›ืืฉืจ ื”ื–ื™ื›ืจื•ืŸ ื ื’ืžืจ, ื”ืคื•ื ืงืฆื™ื” ื ืงืจืืช out_of_memory(). ื™ืฉ ืœื–ื” ืคื•ื ืงืฆื™ื” select_bad_process(), ืฉืžืงื‘ืœ ื”ืขืจื›ื” ืžื”ืคื•ื ืงืฆื™ื” badness(). ื”ืชื”ืœื™ืš "ื”ื’ืจื•ืข ื‘ื™ื•ืชืจ" ื™ื”ื™ื” ืžืžื•ืงื“. ืคื•ึผื ืงืฆึดื™ึธื” badness() ื‘ื•ื—ืจ ืชื”ืœื™ืš ืœืคื™ ื›ืœืœื™ื ืžืกื•ื™ืžื™ื.

  1. ื”ืงืจื ืœ ื–ืงื•ืง ืœืžื™ื ื™ืžื•ื ื–ื™ื›ืจื•ืŸ ืœืขืฆืžื•.
  2. ืืชื” ืฆืจื™ืš ืœืคื ื•ืช ื”ืจื‘ื” ื–ื™ื›ืจื•ืŸ.
  3. ืื™ืŸ ืฆื•ืจืš ืœื”ืคืกื™ืง ืชื”ืœื™ื›ื™ื ื”ืžืฉืชืžืฉื™ื ื‘ื–ื™ื›ืจื•ืŸ ืžื•ืขื˜.
  4. ืฆืจื™ืš ืœื”ืฉืœื™ื ืžื™ื ื™ืžื•ื ืชื”ืœื™ื›ื™ื.
  5. ืืœื’ื•ืจื™ืชืžื™ื ืžื•ืจื›ื‘ื™ื ื”ืžื’ื“ื™ืœื™ื ืืช ืกื™ื›ื•ื™ื™ ื”ื”ืฉืœืžื” ืœืื•ืชื ืชื”ืœื™ื›ื™ื ืฉื”ืžืฉืชืžืฉ ืขืฆืžื• ืจื•ืฆื” ืœื”ืฉืœื™ื.

ืœืื—ืจ ื”ืฉืœืžืช ื›ืœ ื”ื‘ื“ื™ืงื•ืช ื”ืœืœื•, 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-Killer ืงื•ืจื ืœืคื•ื ืงืฆื™ื” oom_kill_task(). ืคื•ื ืงืฆื™ื” ื–ื• ืฉื•ืœื—ืช ืื•ืช ืกื™ื•ื ืœืชื”ืœื™ืš. ื‘ืžืงืจื” ืฉืœ ืžื—ืกื•ืจ ื‘ื–ื™ื›ืจื•ืŸ oom_kill() ืงื•ืจื ืœืคื•ื ืงืฆื™ื” ื–ื• ื›ื“ื™ ืœืฉืœื•ื— ืื•ืช SIGKILL ืœืชื”ืœื™ืš. ื”ื•ื“ืขื” ื ื›ืชื‘ืช ืœื™ื•ืžืŸ ื”ืœื™ื‘ื”.

Out of Memory: Killed process [pid] [name].

ื›ื™ืฆื“ ืœืฉืœื•ื˜ ื‘- OOM-Killer

ื‘ืœื™ื ื•ืงืก, ืืชื” ื™ื›ื•ืœ ืœื”ืคืขื™ืœ ืื• ืœื”ืฉื‘ื™ืช ืืช 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

ื”ืชื•ืฆืื” ืฉืœ ืคืงื•ื“ื” ื–ื• ืœื ืชื™ืฉืžืจ ืœื ืฆื—, ืืœื ืจืง ืขื“ ืœืืชื—ื•ืœ ื”ืจืืฉื•ืŸ. ืื ืืชื” ืฆืจื™ืš ื™ื•ืชืจ ื”ืชืžื“ื”, ื”ื•ืกืฃ ืืช ื”ืฉื•ืจื” ื”ื–ื• ืœืงื•ื‘ืฅ /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-Killer. ื›ื‘ืจ ืืžืจื ื• ืฉืœื™ื ื•ืงืก ื™ื›ื•ืœื” ืœืฉืžื•ืจ ื™ื•ืชืจ ื–ื™ื›ืจื•ืŸ ืœืชื”ืœื™ื›ื™ื ืžืžื” ืฉื–ืžื™ืŸ ืžื‘ืœื™ ืœื”ืงืฆื•ืช ืื•ืชื• ื‘ืคื•ืขืœ, ื•ื”ืชื ื”ื’ื•ืช ื–ื• ื ืฉืœื˜ืช ืขืœ ื™ื“ื™ ืคืจืžื˜ืจ ืœื™ื‘ืช ืœื™ื ื•ืงืก. ื”ืžืฉืชื ื” ืื—ืจืื™ ืœื›ืš vm.overcommit_memory.

ืืชื” ื™ื›ื•ืœ ืœืฆื™ื™ืŸ ืืช ื”ืขืจื›ื™ื ื”ื‘ืื™ื ืขื‘ื•ืจื•:

0: ื”ืงืจื ืœ ืขืฆืžื• ืžื—ืœื™ื˜ ืื ืœืฉืžื•ืจ ื™ื•ืชืจ ืžื“ื™ ื–ื™ื›ืจื•ืŸ. ื–ื•ื”ื™ ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ื‘ืจื•ื‘ ื”ื’ืจืกืื•ืช ืฉืœ ืœื™ื ื•ืงืก.
1: ื”ืงืจื ืœ ืชืžื™ื“ ื™ืฉืžื•ืจ ื–ื™ื›ืจื•ืŸ ื ื•ืกืฃ. ื–ื” ืžืกื•ื›ืŸ, ืžื›ื™ื•ื•ืŸ ืฉื”ื–ื™ื›ืจื•ืŸ ืขืœื•ืœ ืœื”ื™ื’ืžืจ, ืžื›ื™ื•ื•ืŸ ืฉืกื‘ื™ืจ ืœื”ื ื™ื— ืฉื™ื•ื ืื—ื“ ื”ืชื”ืœื™ื›ื™ื ื™ื“ืจืฉื• ื–ืืช.
2: ื”ืงืจื ืœ ืœื ื™ืฉืžื•ืจ ื™ื•ืชืจ ื–ื™ื›ืจื•ืŸ ืžื”ืžืฆื•ื™ืŸ ื‘ืคืจืžื˜ืจ overcommit_ratio.

ืขื ืคืจืžื˜ืจ ื–ื”, ืืชื” ืžืฆื™ื™ืŸ ืืช ืื—ื•ื– ื”ื–ื™ื›ืจื•ืŸ ืฉืžื•ืชืจ ืœืฉืžื™ืจืช ื™ืชืจ. ืื ืื™ืŸ ืžืงื•ื ืœื›ืš, ืœื ืžื•ืงืฆื” ื–ื™ื›ืจื•ืŸ, ื•ื”ื”ื–ืžื ื” ืชื™ื“ื—ื”. ื–ื•ื”ื™ ื”ืืคืฉืจื•ืช ื”ื‘ื˜ื•ื—ื” ื‘ื™ื•ืชืจ ื”ืžื•ืžืœืฆืช ืขื‘ื•ืจ PostgreSQL. OOM-Killer ืžื•ืฉืคืข ืžืืœืžื ื˜ ื ื•ืกืฃ - ื™ื›ื•ืœืช ื”ื”ื—ืœืคื”, ื”ื ืฉืœื˜ืช ืขืœ ื™ื“ื™ ื”ืžืฉืชื ื” cat /proc/sys/vm/swappiness. ืขืจื›ื™ื ืืœื• ืžืกืคืจื™ื ืœืงืจื ืœ ื›ื™ืฆื“ ืœื˜ืคืœ ื‘ื”ื—ืœืคื”. ื›ื›ืœ ืฉื”ืขืจืš ื’ื‘ื•ื” ื™ื•ืชืจ, ื›ืš ืงื˜ืŸ ื”ืกื™ื›ื•ื™ ืฉ-OOM ื™ืกื™ื™ื ืืช ื”ืชื”ืœื™ืš, ืืš ืขืงื‘ ืคืขื•ืœื•ืช I/O ื™ืฉ ืœื›ืš ื”ืฉืคืขื” ืฉืœื™ืœื™ืช ืขืœ ืžืกื“ ื”ื ืชื•ื ื™ื. ื•ืœื”ื™ืคืš - ื›ื›ืœ ืฉื”ืขืจืš ื ืžื•ืš ื™ื•ืชืจ, ื›ืš ื”ืกื‘ื™ืจื•ืช ืœื”ืชืขืจื‘ื•ืช OOM-Killer ื’ื‘ื•ื”ื” ื™ื•ืชืจ, ืืš ื’ื ื‘ื™ืฆื•ืขื™ ืžืกื“ ื”ื ืชื•ื ื™ื ื’ื‘ื•ื”ื™ื ื™ื•ืชืจ. ืขืจืš ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ื”ื•ื 60, ืืš ืื ื›ืœ ืžืกื“ ื”ื ืชื•ื ื™ื ื ื›ื ืก ืœื–ื™ื›ืจื•ืŸ, ืขื“ื™ืฃ ืœื”ื’ื“ื™ืจ ืืช ื”ืขืจืš ืœ-1.

ืชื•ืฆืื•ืช ืฉืœ

ืืœ ืชืชื ื• ืœ"ืจื•ืฆื—" ื‘-OOM-Killer ืœื”ืคื—ื™ื“ ืืชื›ื. ื‘ืžืงืจื” ื–ื”, ื”ืจื•ืฆื— ื™ื”ื™ื” ื”ืžื•ืฉื™ืข ืฉืœ ื”ืžืขืจื›ืช ืฉืœืš. ื–ื” "ื”ื•ืจื’" ืืช ื”ืชื”ืœื™ื›ื™ื ื”ื’ืจื•ืขื™ื ื‘ื™ื•ืชืจ ื•ืžืฆื™ืœ ืืช ื”ืžืขืจื›ืช ืžืงืจื™ืกื”. ื›ื“ื™ ืœืžื ื•ืข ืฆื•ืจืš ืœื”ืฉืชืžืฉ ื‘- OOM-Killer ื›ื“ื™ ืœืกื™ื™ื ืืช PostgreSQL, ื”ื’ื“ืจ ืœ vm.overcommit_memory ืขืจืš 2. ื–ื” ืœื ืžื‘ื˜ื™ื— ืฉ-OOM-Killer ืœื ื™ืฆื˜ืจืš ืœื”ืชืขืจื‘, ืื‘ืœ ื–ื” ื™ืงื˜ื™ืŸ ืืช ื”ืกื‘ื™ืจื•ืช ืœืืœืฅ ืืช ืชื”ืœื™ืš PostgreSQL ืœื”ืกืชื™ื™ื.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”