
āϝāĻāύ Linux āĻĄāĻžāĻāĻžāĻŦā§āϏ āϏāĻžāϰā§āĻāĻžāϰāĻāĻŋ āĻ āĻĒā§āϰāϤā§āϝāĻžāĻļāĻŋāϤāĻāĻžāĻŦā§ āĻŦāύā§āϧ āĻšāϝāĻŧā§ āϝāĻžāϝāĻŧ āĻāĻŦāĻ āĻāϰ āĻāĻžāϰāĻŖ āύāĻŋāϰā§āĻŖāϝāĻŧ āĻāϰāĻž āĻĒā§āϰāϝāĻŧā§āĻāύāĨ¤ āĻāϰ āĻāĻāĻžāϧāĻŋāĻ āĻāĻžāϰāĻŖ āĻĨāĻžāĻāϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, SIGSEGV - āĻŦā§āϝāĻžāĻāĻāύā§āĻĄ āϏāĻžāϰā§āĻāĻžāϰ⧠āĻāĻāĻāĻŋ āϤā§āϰā§āĻāĻŋāϰ āĻāĻžāϰāĻŖā§ āĻŦā§āϝāϰā§āĻĨāϤāĻžāĨ¤ āĻāĻŋāύā§āϤ⧠āĻāĻāĻž āĻŦāĻŋāϰāϞāĨ¤ āĻĒā§āϰāĻžāϝāĻŧāĻļāĻ, āĻāĻĒāύāĻžāϰ āĻā§āĻŦāϞ āĻĄāĻŋāϏā§āĻā§āϰ āϏā§āĻĨāĻžāύ āĻŦāĻž āĻŽā§āĻŽāϰāĻŋ āĻĢā§āϰāĻŋāϝāĻŧā§ āϝāĻžāϝāĻŧāĨ¤ āϝāĻĻāĻŋ āĻāĻĒāύāĻžāϰ āĻĄāĻŋāϏā§āĻā§āϰ āϏā§āĻĨāĻžāύ āĻĢā§āϰāĻŋāϝāĻŧā§ āϝāĻžāϝāĻŧ, āϤāĻŦā§ āĻāĻāĻŽāĻžāϤā§āϰ āĻāĻĒāĻžāϝāĻŧ āĻāĻā§ - āϏā§āĻĨāĻžāύ āĻāĻžāϞāĻŋ āĻāϰā§āύ āĻāĻŦāĻ āĻĄāĻžāĻāĻžāĻŦā§āϏ āĻĒā§āύāϰāĻžāϝāĻŧ āĻāĻžāϞ⧠āĻāϰā§āύāĨ¤
āĻāĻāĻ-āĻ āĻĢ-āĻŽā§āĻŽāϰāĻŋ āĻāĻŋāϞāĻžāϰ
āϝāĻāύ āϤā§āĻŽāĻŋ āϏāĻžāϰā§āĻāĻžāϰ āĻ āĻĨāĻŦāĻž āĻĒā§āϰāϏā§āϏāĻāĻŋāϰ āĻŽā§āĻŽā§āϰāĻŋ āĻļā§āώ āĻšāϝāĻŧā§ āϝāĻžāϝāĻŧ, Linux āĻāĻāĻ-āĻ āĻĢ-āĻŽā§āĻŽāϰāĻŋ āĻāĻŋāϞāĻžāϰ āĻĻā§āĻāĻŋ āϏāĻŽāĻžāϧāĻžāύ āĻĻā§āϝāĻŧ: āĻĒā§āϰ⧠āϏāĻŋāϏā§āĻā§āĻŽ āĻā§āϰā§āϝāĻžāĻļ āĻāϰāĻžāύ⧠āĻ āĻĨāĻŦāĻž āϝ⧠āĻĒā§āϰāϏā§āϏāĻāĻŋ (āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύ) āĻŽā§āĻŽāϰāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻā§, āϏā§āĻāĻŋāĻā§ āĻāĻžāϰā§āĻŽāĻŋāύā§āĻ āĻāϰāĻžāĨ¤ āĻ āĻŦāĻļā§āϝāĻ, āĻĒā§āϰāϏā§āϏāĻāĻŋ āĻāĻžāϰā§āĻŽāĻŋāύā§āĻ āĻāϰ⧠āĻ āĻĒāĻžāϰā§āĻāĻŋāĻ āϏāĻŋāϏā§āĻā§āĻŽāĻā§ āĻā§āϰā§āϝāĻžāĻļ āĻšāĻāϝāĻŧāĻž āĻĨā§āĻā§ āĻŦāĻžāĻāĻāĻžāύā§āĻ āĻļā§āϰā§āϝāĻŧāĨ¤ āϏāĻāĻā§āώā§āĻĒā§, āĻāĻāĻ-āĻ āĻĢ-āĻŽā§āĻŽāϰāĻŋ āĻāĻŋāϞāĻžāϰ āĻšāϞ⧠āĻāĻŽāύ āĻāĻāĻāĻŋ āĻĒā§āϰāϏā§āϏ āϝāĻž āĻāĻžāϰā§āύā§āϞāĻā§ āĻā§āϰā§āϝāĻžāĻļ āĻšāĻāϝāĻŧāĻž āĻĨā§āĻā§ āĻŦāĻžāĻāĻāĻžāϤ⧠āĻāĻāĻāĻŋ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύāĻā§ āĻāĻžāϰā§āĻŽāĻŋāύā§āĻ āĻāϰā§āĨ¤ āĻāĻāĻŋ āĻ āĻĒāĻžāϰā§āĻāĻŋāĻ āϏāĻŋāϏā§āĻā§āĻŽāĻā§ āĻāĻžāϞ⧠āϰāĻžāĻāĻžāϰ āĻāύā§āϝ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύāĻāĻŋāĻā§ āĻā§āϏāϰā§āĻ āĻāϰā§āĨ¤ āĻāϞā§āύ āĻĒā§āϰāĻĨāĻŽā§ āĻāϞā§āĻāύāĻž āĻāϰāĻž āϝāĻžāĻ OOM āĻā§āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāϰ⧠āĻāĻŦāĻ āĻā§āĻāĻžāĻŦā§ āĻāĻāĻŋāĻā§ āύāĻŋāϝāĻŧāύā§āϤā§āϰāĻŖ āĻāϰāĻž āϝāĻžāϝāĻŧ, āĻāĻŦāĻ āϤāĻžāϰāĻĒāϰ āĻĻā§āĻāĻž āϝāĻžāĻ OOM āĻāĻŋāϞāĻžāϰ āĻā§āĻāĻžāĻŦā§ āϏāĻŋāĻĻā§āϧāĻžāύā§āϤ āύā§āϝāĻŧ āĻā§āύ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύāĻā§āϞā§āĻā§ āĻāĻžāϰā§āĻŽāĻŋāύā§āĻ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤
āĻĒā§āϰāϧāĻžāύ āĻāĻžāĻāĻā§āϞā§āϰ āĻŽāϧā§āϝ⧠āĻāĻāĻāĻŋ Linux āĻĒā§āϰāϏā§āϏāĻā§āϞ⧠āϝāĻāύ āĻŽā§āĻŽāϰāĻŋāϰ āĻāύā§āϝ āĻ āύā§āϰā§āϧ āĻāϰā§, āϤāĻāύ āϤāĻžāĻĻā§āϰ āĻŽā§āĻŽāϰāĻŋ āĻŦāϰāĻžāĻĻā§āĻĻ āĻāϰā§āύāĨ¤ āϏāĻžāϧāĻžāϰāĻŖāϤ, āĻāĻāĻāĻŋ āĻĒā§āϰāϏā§āϏ āĻŦāĻž āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύ OS-āĻāϰ āĻāĻžāĻā§ āĻŽā§āĻŽāϰāĻŋāϰ āĻāύā§āϝ āĻ āύā§āϰā§āϧ āĻāϰ⧠āĻāĻŋāύā§āϤ⧠āϤāĻž āĻĒā§āϰā§āĻĒā§āϰāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āύāĻžāĨ¤ āϝāĻĻāĻŋ OS āĻāĻŽāύ āĻĒā§āϰāϤā§āϝā§āĻāĻā§ āĻŽā§āĻŽāϰāĻŋ āĻŦāϰāĻžāĻĻā§āĻĻ āĻāϰ⧠āϝāĻžāϰāĻž āĻ āύā§āϰā§āϧ āĻāϰ⧠āĻāĻŋāύā§āϤ⧠āϤāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāϰ āĻā§āύ⧠āĻĒāϰāĻŋāĻāϞā§āĻĒāύāĻž āύā§āĻ, āϤāĻžāĻšāϞ⧠āϏāĻŋāϏā§āĻā§āĻŽā§āϰ āĻŽā§āĻŽāϰāĻŋ āĻĻā§āϰā§āϤ āĻļā§āώ āĻšāϝāĻŧā§ āϝāĻžāĻŦā§ āĻāĻŦāĻ āϏāĻŋāϏā§āĻā§āĻŽāĻāĻŋ āĻā§āϰā§āϝāĻžāĻļ āĻāϰāĻŦā§āĨ¤ āĻāĻāĻŋ āĻĒā§āϰāϤāĻŋāϰā§āϧ āĻāϰāĻžāϰ āĻāύā§āϝ, OS āĻāĻāĻāĻŋ āĻĒā§āϰāϏā§āϏā§āϰ āĻāύā§āϝ āĻŽā§āĻŽāϰāĻŋ āϰāĻŋāĻāĻžāϰā§āĻ āĻāϰ⧠āϰāĻžāĻā§ āĻāĻŋāύā§āϤ⧠āĻŦāĻžāϏā§āϤāĻŦā§ āϤāĻž āĻŦāϰāĻžāĻĻā§āĻĻ āĻāϰ⧠āύāĻžāĨ¤ āĻŽā§āĻŽāϰāĻŋ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āϤāĻāύāĻ āĻŦāϰāĻžāĻĻā§āĻĻ āĻāϰāĻž āĻšāϝāĻŧ āϝāĻāύ āĻā§āύ⧠āĻĒā§āϰāϏā§āϏ āϏāϤā§āϝāĻŋāĻ āϤāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻāĻžāϝāĻŧāĨ¤ āĻāĻāύāĻ āĻāĻāύāĻ OS-āĻāϰ āĻāĻžāĻā§ āĻāĻžāϞāĻŋ āĻŽā§āĻŽāϰāĻŋ āĻĨāĻžāĻā§ āύāĻž, āĻāĻŋāύā§āϤ⧠āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻĒā§āϰāϏā§āϏāĻā§ āĻŽā§āĻŽāϰāĻŋ āĻŦāϰāĻžāĻĻā§āĻĻ āĻāϰā§, āĻāĻŦāĻ āϝāĻāύ āĻĒā§āϰāϏā§āϏāĻāĻŋāϰ āĻĒā§āϰāϝāĻŧā§āĻāύ āĻšāϝāĻŧ, āϤāĻāύ OS āϝāĻĻāĻŋ āĻĒāĻžāϰ⧠āϤāĻŦā§ āϤāĻž āĻŦāϰāĻžāĻĻā§āĻĻ āĻāϰā§āĨ¤ āĻāϰ āĻ āϏā§āĻŦāĻŋāϧāĻž āĻšāϞā§, āĻāĻāύāĻ āĻāĻāύāĻ OS āĻŽā§āĻŽāϰāĻŋ āϰāĻŋāĻāĻžāϰā§āĻ āĻāϰ⧠āϰāĻžāĻā§, āĻāĻŋāύā§āϤ⧠āĻĒā§āϰāϝāĻŧā§āĻāύā§āϰ āϏāĻŽāϝāĻŧ āĻā§āύ⧠āĻāĻžāϞāĻŋ āĻŽā§āĻŽāϰāĻŋ āĻĨāĻžāĻā§ āύāĻž, āϝāĻžāϰ āĻĢāϞ⧠āϏāĻŋāϏā§āĻā§āĻŽ āĻā§āϰā§āϝāĻžāĻļ āĻāϰā§āĨ¤ āĻāĻ āĻĒāϰāĻŋāϏā§āĻĨāĻŋāϤāĻŋāϤ⧠OOM āĻāĻāĻāĻŋ āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ āĻā§āĻŽāĻŋāĻāĻž āĻĒāĻžāϞāύ āĻāϰā§, āĻāĻžāϰā§āύā§āϞāĻā§ āĻĒā§āϝāĻžāύāĻŋāĻ āĻāϰāĻž āĻĨā§āĻā§ āĻŦāĻŋāϰāϤ āϰāĻžāĻāϤ⧠āĻĒā§āϰāϏā§āϏāĻā§āϞā§āĻā§ āĻāĻžāϰā§āĻŽāĻŋāύā§āĻ āĻāϰ⧠āĻĻā§āϝāĻŧāĨ¤ āϝāĻāύ PostgreSQL āĻĒā§āϰāϏā§āϏāĻāĻŋ āĻā§āϰāĻĒā§āϰā§āĻŦāĻ āĻāĻžāϰā§āĻŽāĻŋāύā§āĻ āĻāϰāĻž āĻšāϝāĻŧ, āϤāĻāύ āϞāĻā§ āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āĻŦāĻžāϰā§āϤāĻžāĻāĻŋ āĻĒā§āϰāĻĻāϰā§āĻļāĻŋāϤ āĻšāϝāĻŧ:
Out of Memory: Killed process 12345 (postgres).āϝāĻĻāĻŋ āϏāĻŋāϏā§āĻā§āĻŽā§āϰ āĻŽā§āĻŽāϰāĻŋ āĻāĻŽ āĻĨāĻžāĻā§ āĻāĻŦāĻ āĻāĻāĻŋ āĻŽā§āĻā§āϤ āĻāϰāĻž āϝāĻžāϝāĻŧ āύāĻž, āĻĢāĻžāĻāĻļāύ āĻŦāϞāĻž āĻšāϝāĻŧ out_of_memory. āĻāĻ āĻĒāϰā§āϝāĻžāϝāĻŧā§, āϤāĻžāϰ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻāĻāĻāĻŋ āĻāĻŋāύāĻŋāϏ āĻŦāĻžāĻāĻŋ āĻāĻā§ - āĻāĻ āĻŦāĻž āĻāĻāĻžāϧāĻŋāĻ āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻž āϏāĻŽā§āĻĒā§āϰā§āĻŖ āĻāϰā§āύāĨ¤ āĻāĻāĻāĻŽ-āĻāĻŋāϞāĻžāϰā§āϰ āĻāĻŋ āĻ
āĻŦāĻŋāϞāĻŽā§āĻŦā§ āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻžāĻāĻŋ āĻŦāύā§āϧ āĻāϰāĻž āĻāĻāĻŋāϤ āύāĻžāĻāĻŋ āĻāĻāĻŋ āĻ
āĻĒā§āĻā§āώāĻž āĻāϰāϤ⧠āĻĒāĻžāϰā§? āϏā§āĻĒāώā§āĻāϤāĻ, āϝāĻāύ out_of_memory āĻāϞ āĻāϰāĻž āĻšāϝāĻŧ, āĻāĻāĻŋ āĻāĻāĻāĻŋ I/O āĻ
āĻĒāĻžāϰā§āĻļāύ āĻŦāĻž āĻĄāĻŋāϏā§āĻā§ āĻĒā§āĻāĻŋāĻāϝāĻŧā§āϰ āĻāύā§āϝ āĻ
āĻĒā§āĻā§āώāĻž āĻāϰāĻžāϰ āĻāĻžāϰāĻŖā§ āĻšāϝāĻŧāĨ¤ āĻ
āϤāĻāĻŦ, OOM āĻšāϤā§āϝāĻžāĻāĻžāϰā§āĻā§ āĻĒā§āϰāĻĨāĻŽā§ āĻĒāϰā§āĻā§āώāĻž āĻāϰāϤ⧠āĻšāĻŦā§ āĻāĻŦāĻ āϤāĻžāĻĻā§āϰ āĻāĻĒāϰ āĻāĻŋāϤā§āϤāĻŋ āĻāϰ⧠āϏāĻŋāĻĻā§āϧāĻžāύā§āϤ āύāĻŋāϤ⧠āĻšāĻŦā§ āϝ⧠āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻžāĻāĻŋ āĻŦāύā§āϧ āĻāϰāĻž āĻĻāϰāĻāĻžāϰāĨ¤ āύā§āĻā§āϰ āϏāĻŽāϏā§āϤ āĻā§āĻ āĻāϤāĻŋāĻŦāĻžāĻāĻ āĻšāϞā§, OOM āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻžāĻāĻŋ āĻŦāύā§āϧ āĻāϰ⧠āĻĻā§āĻŦā§āĨ¤
āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻž āύāĻŋāϰā§āĻŦāĻžāĻāύ
āĻŽā§āĻŽāϰāĻŋ āĻĢā§āϰāĻŋāϝāĻŧā§ āĻā§āϞ⧠āĻĢāĻžāĻāĻļāύ āĻŦāϞāĻž āĻšāϝāĻŧ out_of_memory(). āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāύ āĻāĻā§ select_bad_process(), āϝāĻž āĻĢāĻžāĻāĻļāύ āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻŽā§āϞā§āϝāĻžāϝāĻŧāύ āĻĒāĻžāϝāĻŧ badness(). "āϏāĻŦāĻā§āϝāĻŧā§ āĻāĻžāϰāĻžāĻĒ" āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻž āĻāĻžāϰā§āĻā§āĻ āĻāϰāĻž āĻšāĻŦā§āĨ¤ āĻĢāĻžāĻāĻļāύ badness() āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āύāĻŋāϝāĻŧāĻŽ āĻ
āύā§āϝāĻžāϝāĻŧā§ āĻāĻāĻāĻŋ āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻž āύāĻŋāϰā§āĻŦāĻžāĻāύ āĻāϰā§āĨ¤
- āĻāĻžāϰā§āύā§āϞā§āϰ āύāĻŋāĻā§āϰ āĻāύā§āϝ āĻāĻŋāĻā§ āύā§āϝā§āύāϤāĻŽ āĻŽā§āĻŽāϰāĻŋ āĻĒā§āϰāϝāĻŧā§āĻāύāĨ¤
- āĻāĻĒāύāĻžāĻā§ āĻ āύā§āĻ āĻŽā§āĻŽāϰāĻŋ āĻāĻžāϞāĻŋ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤
- āĻ āϞā§āĻĒ āĻŽā§āĻŽāϰāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻā§ āĻāĻŽāύ āĻĒā§āϰāϏā§āϏāĻā§āϞā§āĻā§ āĻŦāύā§āϧ āĻāϰāĻžāϰ āĻĻāϰāĻāĻžāϰ āύā§āĻāĨ¤
- āύā§āϝā§āύāϤāĻŽ āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻž āϏāĻŽā§āĻĒāύā§āύ āĻāϰāĻž āĻĒā§āϰāϝāĻŧā§āĻāύ.
- āĻāĻāĻŋāϞ āĻ ā§āϝāĻžāϞāĻāϰāĻŋāĻĻāĻŽ āϝāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āύāĻŋāĻā§āĻ āϝ⧠āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻžāĻā§āϞāĻŋ āϏāĻŽā§āĻĒā§āϰā§āĻŖ āĻāϰāϤ⧠āĻāĻžāϝāĻŧ āϤāĻžāϰ āĻāύā§āϝ āϏāĻŽā§āĻĒā§āϰā§āĻŖ āĻšāĻāϝāĻŧāĻžāϰ āϏāĻŽā§āĻāĻžāĻŦāύāĻž āĻŦāĻžāĻĄāĻŧāĻžāϝāĻŧāĨ¤
āĻāĻ āϏāĻŽāϏā§āϤ āĻā§āĻ āϏāĻŽā§āĻĒāύā§āύ āĻāϰāĻžāϰ āĻĒāϰā§, OOM āϏā§āĻā§āϰ āĻĒāϰā§āĻā§āώāĻž āĻāϰ⧠(oom_score) āĻāĻāĻāĻŽ āύāĻŋāϝāĻŧā§āĻ āĻāϰ⧠oom_score āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻž, āĻāĻŦāĻ āϤāĻžāϰāĻĒāϰ āĻŽā§āĻŽāϰāĻŋ āĻĒāϰāĻŋāĻŽāĻžāĻŖ āĻĻā§āĻŦāĻžāϰāĻž āĻāĻ āĻŽāĻžāύ āĻā§āĻŖāĻŋāϤ. āĻŦā§āĻšāϤā§āϤāϰ āĻŽāĻžāύ āϏāĻš āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻžāĻā§āϞāĻŋ āĻāĻāĻāĻŽ āĻāĻŋāϞāĻžāϰā§āϰ āĻļāĻŋāĻāĻžāϰ āĻšāĻāϝāĻŧāĻžāϰ āϏāĻŽā§āĻāĻžāĻŦāύāĻž āĻŦā§āĻļāĻŋāĨ¤ āϰā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰā§āϰ āϏāĻžāĻĨā§ āϝā§āĻā§āϤ āĻĒā§āϰāϏā§āϏāĻā§āϞāĻŋāϰ āϏā§āĻā§āϰ āĻāĻŽ āĻĨāĻžāĻā§ āĻāĻŦāĻ āĻļā§āώ āĻāϰāϤ⧠āĻŦāĻžāϧā§āϝ āĻšāĻāϝāĻŧāĻžāϰ āϏāĻŽā§āĻāĻžāĻŦāύāĻž āĻāĻŽ āĻĨāĻžāĻā§āĨ¤
postgres=# SELECT pg_backend_pid();
pg_backend_pid
----------------
3813
(1 row)āĻĒā§āϏā§āĻāĻā§āϰā§āϏ āĻĒā§āϰāϏā§āϏ āĻāĻāĻĄāĻŋ āĻšāϞ 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() āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻžāĻāĻŋāϤ⧠āĻāĻāĻāĻŋ āϏāĻŋāĻāĻāĻŋāϞ āϏāĻāĻā§āϤ āĻĒāĻžāĻ āĻžāϤ⧠āĻāĻ āĻĢāĻžāĻāĻļāύāĻāĻŋāĻā§ āĻāϞ āĻāϰā§āĨ¤ āĻāĻžāϰā§āύā§āϞ āϞāĻā§ āĻāĻāĻāĻŋ āĻŦāĻžāϰā§āϤāĻž āϞā§āĻāĻž āĻšāϝāĻŧāĨ¤
Out of Memory: Killed process [pid] [name].āĻāĻŋāĻāĻžāĻŦā§ OOM-Killer āύāĻŋāϝāĻŧāύā§āϤā§āϰāĻŖ āĻāϰāĻŦā§āύ
Đ Linux āĻāĻĒāύāĻŋ OOM-Killer āϏāĻā§āϰāĻŋāϝāĻŧ āĻŦāĻž āύāĻŋāώā§āĻā§āϰāĻŋāϝāĻŧ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ (āϝāĻĻāĻŋāĻ āύāĻŋāώā§āĻā§āϰāĻŋāϝāĻŧ āĻāϰāĻžāϰ āĻĒāϰāĻžāĻŽāϰā§āĻļ āĻĻā§āĻāϝāĻŧāĻž āĻšāϝāĻŧ āύāĻž)āĨ¤ āĻāĻāĻŋ āϏāĻā§āϰāĻŋāϝāĻŧ āĻŦāĻž āύāĻŋāώā§āĻā§āϰāĻŋāϝāĻŧ āĻāϰāϤā§, āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύāĨ¤ vm.oom-kill. āϰāĻžāύāĻāĻžāĻāĻŽā§ OOM-āĻāĻŋāϞāĻžāϰ āϏāĻā§āώāĻŽ āĻāϰāϤā§, āĻāĻŽāĻžāύā§āĻĄāĻāĻŋ āĻāĻžāϞāĻžāύ sysctl.
sudo -s sysctl -w vm.oom-kill = 1OOM-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 āĻāĻžāϞ⧠āĻāĻŦāĻ āĻŦāύā§āϧ āĻāϰāĻž āϝāĻžāϝāĻŧāĨ¤ Linux āĻĒā§āϰāϏā§āϏāĻā§āϞā§āϰ āĻāύā§āϝ āĻāĻĒāϞāĻŦā§āϧ āĻŽā§āĻŽāϰāĻŋāϰ āĻā§āϝāĻŧā§ āĻŦā§āĻļāĻŋ āĻŽā§āĻŽāϰāĻŋ āϏāĻāϰāĻā§āώāĻŖ āĻāϰāϤ⧠āĻĒāĻžāϰā§, āĻāĻŋāύā§āϤ⧠āĻĒā§āϰāĻā§āϤāĻĒāĻā§āώ⧠āϤāĻž āĻŦāϰāĻžāĻĻā§āĻĻ āύāĻžāĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§, āĻāĻŦāĻ āĻāĻ āĻāĻāϰāĻŖāĻāĻŋ āĻāĻāĻāĻŋ āĻāĻžāϰā§āύā§āϞ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āĻĻā§āĻŦāĻžāϰāĻž āύāĻŋāϝāĻŧāύā§āϤā§āϰāĻŋāϤ āĻšāϝāĻŧāĨ¤ LinuxāĻāĻ āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞāĻāĻŋ āĻāϰ āĻāύā§āϝ āĻĻāĻžāϝāĻŧā§āĨ¤ vm.overcommit_memory.
āĻāĻĒāύāĻŋ āĻāĻāĻŋāϰ āĻāύā§āϝ āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āĻŽāĻžāύāĻā§āϞāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ:
0: āĻ
āϤāĻŋāϰāĻŋāĻā§āϤ āĻŽā§āĻŽāϰāĻŋ āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻž āĻšāĻŦā§ āĻāĻŋāύāĻž, āϏā§āĻ āϏāĻŋāĻĻā§āϧāĻžāύā§āϤ āĻāĻžāϰā§āύā§āϞ āύāĻŋāĻā§āĻ āύā§āϝāĻŧāĨ¤ āĻŦā§āĻļāĻŋāϰāĻāĻžāĻ āϏāĻāϏā§āĻāϰāĻŖā§ āĻāĻāĻŋāĻ āĻĄāĻŋāĻĢāϞā§āĻ āĻŽāĻžāύāĨ¤ Linux.
1: āĻāĻžāϰā§āύā§āϞ āϏāĻŦāϏāĻŽāϝāĻŧ āĻ
āϤāĻŋāϰāĻŋāĻā§āϤ āĻŽā§āĻŽāϰāĻŋ āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻŦā§āĨ¤ āĻāĻāĻŋ āĻā§āĻāĻāĻŋāĻĒā§āϰā§āĻŖ, āĻāĻžāϰāĻŖ āĻŽā§āĻŽāϰāĻŋ āĻĢā§āϰāĻŋāϝāĻŧā§ āϝā§āϤ⧠āĻĒāĻžāϰā§, āĻāĻžāϰāĻŖ, āϏāĻŽā§āĻāĻŦāϤ, āĻāĻāĻĻāĻŋāύ āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻžāĻā§āϞāĻŋāϰ āĻĒā§āϰāϝāĻŧā§āĻāύ āĻšāĻŦā§āĨ¤
2: āĻāĻžāϰā§āύā§āϞ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ⧠āĻāϞā§āϞāĻŋāĻāĻŋāϤ āĻŽā§āĻŽāϰāĻŋāϰ āĻā§āϝāĻŧā§ āĻŦā§āĻļāĻŋ āĻŽā§āĻŽāϰāĻŋ āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻŦā§ āύāĻž overcommit_ratio.
āĻāĻ āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ āĻĻāĻŋāϝāĻŧā§, āĻāĻĒāύāĻŋ āĻŽā§āĻŽāϰāĻŋāϰ āĻļāϤāĻžāĻāĻļ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāϰā§āύ āϝāĻž āĻ
āϤāĻŋāϰāĻŋāĻā§āϤ-āϏāĻāϰāĻā§āώāĻŋāϤ āĻāϰāĻžāϰ āĻ
āύā§āĻŽāϤāĻŋ āĻĻā§āĻāϝāĻŧāĻž āĻšāϝāĻŧāĨ¤ āϝāĻĻāĻŋ āĻāĻāĻŋāϰ āĻāύā§āϝ āĻā§āύ āϏā§āĻĨāĻžāύ āύāĻž āĻĨāĻžāĻā§, āĻā§āύ āĻŽā§āĻŽāϰāĻŋ āĻŦāϰāĻžāĻĻā§āĻĻ āĻāϰāĻž āĻšāϝāĻŧ āύāĻž, āĻāĻŦāĻ āϏāĻāϰāĻā§āώāĻŖ āĻ
āϏā§āĻŦā§āĻāĻžāϰ āĻāϰāĻž āĻšāĻŦā§āĨ¤ āĻāĻāĻŋ PostgreSQL āĻāϰ āĻāύā§āϝ āϏā§āĻĒāĻžāϰāĻŋāĻļāĻā§āϤ āϏāĻŦāĻā§āϝāĻŧā§ āύāĻŋāϰāĻžāĻĒāĻĻ āĻŦāĻŋāĻāϞā§āĻĒāĨ¤ OOM-āĻāĻŋāϞāĻžāϰ āĻ
āύā§āϝ āĻāĻāĻāĻŋ āĻāĻĒāĻžāĻĻāĻžāύ āĻĻā§āĻŦāĻžāϰāĻž āĻĒā§āϰāĻāĻžāĻŦāĻŋāϤ āĻšāϝāĻŧ - āĻ
āĻĻāϞāĻŦāĻĻāϞ āĻā§āώāĻŽāϤāĻž, āϝāĻž āĻĒāϰāĻŋāĻŦāϰā§āϤāύāĻļā§āϞ āĻĻā§āĻŦāĻžāϰāĻž āύāĻŋāϝāĻŧāύā§āϤā§āϰāĻŋāϤ āĻšāϝāĻŧ cat /proc/sys/vm/swappiness. āĻāĻ āĻŽāĻžāύāĻā§āϞāĻŋ āĻāĻžāϰā§āύā§āϞāĻā§ āĻā§āĻāĻžāĻŦā§ āĻĒā§āĻāĻŋāĻ āĻĒāϰāĻŋāĻāĻžāϞāύāĻž āĻāϰāϤ⧠āĻšāϝāĻŧ āϤāĻž āĻŦāϞā§āĨ¤ āĻŽāĻžāύ āϝāϤ āĻŦā§āĻļāĻŋ āĻšāĻŦā§, OOM āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻžāĻāĻŋ āĻŦāύā§āϧ āĻāϰāĻžāϰ āϏāĻŽā§āĻāĻžāĻŦāύāĻž āϤāϤ āĻāĻŽ, āĻāĻŋāύā§āϤ⧠I/O āĻ
āĻĒāĻžāϰā§āĻļāύā§āϰ āĻāĻžāϰāĻŖā§ āĻāĻāĻŋ āĻĄāĻžāĻāĻžāĻŦā§āϏā§āϰ āĻāĻĒāϰ āύā§āϤāĻŋāĻŦāĻžāĻāĻ āĻĒā§āϰāĻāĻžāĻŦ āĻĢā§āϞā§āĨ¤ āĻāĻŦāĻ āϤāĻĻā§āĻŦāĻŋāĻĒāϰā§āϤ - āĻŽāĻžāύ āϝāϤ āĻāĻŽ āĻšāĻŦā§, OOM-āĻāĻŋāϞāĻžāϰ āĻšāϏā§āϤāĻā§āώā§āĻĒā§āϰ āϏāĻŽā§āĻāĻžāĻŦāύāĻž āϤāϤ āĻŦā§āĻļāĻŋ, āϤāĻŦā§ āĻĄāĻžāĻāĻžāĻŦā§āϏā§āϰ āĻāĻžāϰā§āϝāĻāĻžāϰāĻŋāϤāĻžāĻ āĻŦā§āĻļāĻŋāĨ¤ āĻĄāĻŋāĻĢāϞā§āĻ āĻŽāĻžāύ 60, āĻāĻŋāύā§āϤ⧠āĻĒā§āϰ⧠āĻĄāĻžāĻāĻžāĻŦā§āϏ āĻŽā§āĻŽāϰāĻŋāϤ⧠āĻĢāĻŋāĻ āĻšāϞā§, āĻŽāĻžāύāĻāĻŋ 1 āĻ āϏā§āĻ āĻāϰāĻž āĻāĻžāϞāĨ¤
āĻĢāϞāĻžāĻĢāϞ
āĻāĻāĻāĻŽ-āĻāĻŋāϞāĻžāϰā§āϰ "āĻšāϤā§āϝāĻžāĻāĻžāϰā§" āĻāĻĒāύāĻžāĻā§ āĻāϝāĻŧ āĻĻā§āĻāĻžāϤ⧠āĻĻā§āĻŦā§āύ āύāĻžāĨ¤ āĻāĻ āĻā§āώā§āϤā§āϰā§, āĻšāϤā§āϝāĻžāĻāĻžāϰ⧠āĻāĻĒāύāĻžāϰ āϏāĻŋāϏā§āĻā§āĻŽā§āϰ āϤā§āϰāĻžāĻŖāĻāϰā§āϤāĻž āĻšāĻŦā§āĨ¤ āĻāĻāĻŋ āϏāĻŦāĻā§āϝāĻŧā§ āĻāĻžāϰāĻžāĻĒ āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻžāĻā§āϞāĻŋāĻā§ "āĻšāϤā§āϝāĻž" āĻāϰ⧠āĻāĻŦāĻ āϏāĻŋāϏā§āĻā§āĻŽāĻāĻŋāĻā§ āĻŦāĻŋāĻĒāϰā§āϝāϏā§āϤ āĻšāĻāϝāĻŧāĻž āĻĨā§āĻā§ āĻŦāĻžāĻāĻāĻžāϝāĻŧāĨ¤ PostgreSQL āĻŦāύā§āϧ āĻāϰāϤ⧠OOM-Killer āĻŦā§āϝāĻŦāĻšāĻžāϰ āύāĻž āĻāϰāϤā§, āϏā§āĻ āĻāϰā§āύ vm.overcommit_memory āĻŽāĻžāύ 2. āĻāĻāĻŋ āĻā§āϝāĻžāϰāĻžāύā§āĻāĻŋ āĻĻā§āϝāĻŧ āύāĻž āϝ⧠OOM-āĻāĻŋāϞāĻžāϰāĻā§ āĻšāϏā§āϤāĻā§āώā§āĻĒ āĻāϰāϤ⧠āĻšāĻŦā§ āύāĻž, āϤāĻŦā§ āĻāĻāĻŋ PostgreSQL āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻžāĻāĻŋāĻā§ āĻŦāύā§āϧ āĻāϰāϤ⧠āĻŦāĻžāϧā§āϝ āĻāϰāĻžāϰ āϏāĻŽā§āĻāĻžāĻŦāύāĻž āĻāĻŽāĻŋāϝāĻŧā§ āĻĻā§āĻŦā§āĨ¤
āĻāϤā§āϏ: www.habr.com
