
рдЬрдм рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рд░реНрд╡рд░ рд▓рд┐рдирдХреНрд╕ рдкрд░ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд░реВрдк рд╕реЗ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдХрд╛рд░рдг рдЦреЛрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдХрдИ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, SIGSEGV - рдмреИрдХрдПрдВрдб рд╕рд░реНрд╡рд░ рдореЗрдВ рдмрдЧ рдХреЗ рдХрд╛рд░рдг рдХреНрд░реИрд╢ред рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рджреБрд░реНрд▓рдн рд╡рд╕реНрддреБ рд╣реИред рдЕрдзрд┐рдХ рдмрд╛рд░ рдирд╣реАрдВ, рдбрд┐рд╕реНрдХ рд╕реНрдерд╛рди рдпрд╛ рдореЗрдореЛрд░реА рдмрд╕ рдмрд╛рд╣рд░ рдЪрд▓рд╛рддрд╛ рд╣реИред рдпрджрд┐ рдбрд┐рд╕реНрдХ рд╕реНрдерд╛рди рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддрд╛ рд╣реИ, рддреЛ рдПрдХ рд░рд╛рд╕реНрддрд╛ рдмрд╛рд╣рд░ рдЕрдВрддрд░рд┐рдХреНрд╖ рдЦрд╛рд▓реА рдХрд░рдиреЗ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред
рд╕реНрдореГрддрд┐ рд╣рддреНрдпрд╛рд░реЗ рдХреЗ рдмрд╛рд╣рд░
рдЬрдм рд╕рд░реНрд╡рд░ рдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдореЛрд░реА рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛ рдЬрд╛рддреА рд╣реИ, рддреЛ рд▓рд┐рдирдХреНрд╕ 2 рд╕рдорд╛рдзрд╛рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ: рд╕рдВрдкреВрд░реНрдг рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдХреНрд░реИрд╢ рдХрд░рдиреЗ рдпрд╛ рдореЗрдореЛрд░реА рдХреЛ рдЦрд╛рдиреЗ рд╡рд╛рд▓реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ (рдПрдкреНрд▓рд┐рдХреЗрд╢рди) рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдмреЗрд╢рдХ, рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдФрд░ рдУрдПрд╕ рдХреЛ рдЕрд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╛рдкреНрддрд┐ рд╕реЗ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╣реИред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдЖрдЙрдЯ-рдСрдл-рдореЗрдореЛрд░реА рдХрд┐рд▓рд░ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ рдЬреЛ рдХрд░реНрдиреЗрд▓ рдХреЛ рдХреНрд░реИрд╢ рд╕реЗ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рд╡рд╣ рдУрдПрд╕ рдХреЛ рдЪрд╛рд▓реВ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдмрд▓рд┐рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЖрдЗрдП рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЪрд░реНрдЪрд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдУрдУрдПрдо рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХреИрд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП, рдФрд░ рдлрд┐рд░ рджреЗрдЦреЗрдВ рдХрд┐ рдУрдУрдПрдо рдХрд┐рд▓рд░ рдХрд┐рд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддрд╛ рд╣реИред
рд▓рд┐рдирдХреНрд╕ рдХреЗ рдореБрдЦреНрдп рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╕реНрдореГрддрд┐ рдХреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдирд╛ рд╣реИ рдЬрдм рд╡реЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреВрдЫрддреЗ рд╣реИрдВред рдЖрдорддреМрд░ рдкрд░ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдпрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдУрдПрд╕ рд╕реЗ рдореЗрдореЛрд░реА рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡реЗ рд╕реНрд╡рдпрдВ рдЗрд╕рдХрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдУрдПрд╕ рдЙрди рд╕рднреА рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдЬрд╛рд░реА рдХрд░реЗрдЧрд╛ рдЬреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреВрдЫрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рдмрд╣реБрдд рдЬрд▓реНрдж рдореЗрдореЛрд░реА рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдЧреА, рдФрд░ рд╕рд┐рд╕реНрдЯрдо рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдУрдПрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рд╕реБрд░рдХреНрд╖рд┐рдд рд░рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рдЬрд╛рд░реА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдореЗрдореЛрд░реА рдХреЗрд╡рд▓ рддрднреА рдЖрд╡рдВрдЯрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ рдЬрдм рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реА рд╣реЛред рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдУрдПрд╕ рдореЗрдВ рдореБрдлреНрдд рдореЗрдореЛрд░реА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдореЗрдореЛрд░реА рдЕрд╕рд╛рдЗрди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЬрдм рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдУрдПрд╕ рдЗрд╕реЗ рдЖрд╡рдВрдЯрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдирдХрд╛рд░рд╛рддреНрдордХ рдкрдХреНрд╖ рдпрд╣ рд╣реИ рдХрд┐ рдХрднреА-рдХрднреА рдУрдПрд╕ рдореЗрдореЛрд░реА рдХреЛ рдЖрд░рдХреНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд╣реА рд╕рдордп рдкрд░ рдХреЛрдИ рдореБрдлреНрдд рдореЗрдореЛрд░реА рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред OOM рдЗрд╕ рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рддрд╛ рд╣реИ рдФрд░ рдХрд░реНрдиреЗрд▓ рдХреЛ рдШрдмрд░рд╛рд╣рдЯ рд╕реЗ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдЬрдм PostgreSQL рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЬрдмрд░рди рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд▓реЙрдЧ рдореЗрдВ рдПрдХ рд╕рдВрджреЗрд╢ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ:
Out of Memory: Killed process 12345 (postgres).
рдпрджрд┐ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдереЛрдбрд╝реА рдореЗрдореЛрд░реА рд╣реИ рдФрд░ рдЗрд╕реЗ рдореБрдХреНрдд рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ, рддреЛ out_of_memory
рдлрд╝рдВрдХреНрд╢рди out_of_memory
ред рдЗрд╕ рд╕реНрддрд░ рдкрд░, рдЙрд╕рдХреЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдмрдЪреА рд╣реИ - рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдХреНрдпрд╛ OOM- рдХрд┐рд▓рд░ рдХреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рддреБрд░рдВрдд рд╕рдорд╛рдкреНрдд рдХрд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдореИрдВ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ? рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЬрдм out_of_memory рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ I / O рдСрдкрд░реЗрд╢рди рдпрд╛ рдбрд┐рд╕реНрдХ рдкрд░ рд╕реНрд╡реИрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреГрд╖реНрда рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░рдг рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдУрдУрдПрдо-рдХрд┐рд▓рд░ рдХреЛ рдкрд╣рд▓реЗ рдЬрд╛рдВрдЪ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдФрд░ рдЙрдирдХреЗ рдЖрдзрд╛рд░ рдкрд░ рддрдп рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреВрд░реА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд╕рднреА рдЪреЗрдХ рдПрдХ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдкрд░рд┐рдгрд╛рдо рджреЗрддреЗ рд╣реИрдВ, рддреЛ OOM рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░ рджреЗрдЧрд╛ред
рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЪрдпрди
рдЬрдм рдореЗрдореЛрд░реА рдЪрд▓рддреА рд╣реИ, рддреЛ out_of_memory()
рдлрд╝рдВрдХреНрд╢рди out_of_memory()
ред рдЗрд╕рдореЗрдВ рдПрдХ рдлрд╝рдВрдХреНрд╢рди select_bad_process()
, рдЬреЛ select_bad_process()
рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдПрдХ рдЕрдиреБрдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рд╕рдмрд╕реЗ "рдЦрд░рд╛рдм" рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд┐рддрд░рдгред badness()
рдлрд╝рдВрдХреНрд╢рди рдХреБрдЫ рдирд┐рдпрдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИред
- рдХрд░реНрдиреЗрд▓ рдХреЛ рдЕрдкрдиреЗ рд▓рд┐рдП рдХреБрдЫ рдиреНрдпреВрдирддрдо рдореЗрдореЛрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
- рдЖрдкрдХреЛ рдмрд╣реБрдд рд╕рд╛рд░реА рдореЗрдореЛрд░реА рдХреЛ рдЦрд╛рд▓реА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
- рдЫреЛрдЯреА рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
- рдЖрдкрдХреЛ рдиреНрдпреВрдирддрдо рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
- рдЬрдЯрд┐рд▓ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдЬреЛ рдЙрди рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреЛ рдмрдврд╝рд╛рддреЗ рд╣реИрдВ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрд╡рдпрдВ рдкреВрд░рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рдЗрди рд╕рднреА рдЬрд╛рдБрдЪреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, OOM рдЧреНрд░реЗрдб ( oom_score
) рдХреА рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИред OOM рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ oom_score
рдЕрд╕рд╛рдЗрди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЗрд╕ рдорд╛рди рдХреЛ рдореЗрдореЛрд░реА рдХреА рдорд╛рддреНрд░рд╛ рд╕реЗ рдЧреБрдгрд╛ рдХрд░рддрд╛ рд╣реИред рдЙрдЪреНрдЪ рдореВрд▓реНрдпреЛрдВ рд╡рд╛рд▓реА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ OOM рдХрд┐рд▓рд░ рдХрд╛ рд╢рд┐рдХрд╛рд░ рдмрдирдиреЗ рдХреА рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред рдПрдХ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ рдЬреБрдбрд╝реА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рд░реЗрдЯрд┐рдВрдЧ рдХрдо рд╣реИ рдФрд░ рд╕рдорд╛рдкреНрддрд┐ рдХреЛ рдордЬрдмреВрд░ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХрдо рд╣реИред
postgres=# SELECT pg_backend_pid(); pg_backend_pid ---------------- 3813 (1 row)
рдкреЛрд╕реНрдЯрдЧреНрд░реЗрдЬ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ 3813 рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХрд┐рд╕реА рдЕрдиреНрдп рд╢реЗрд▓ рдореЗрдВ рдЖрдк рдЗрд╕ oom_score
рдХрд░реНрдиреЗрд▓ oom_score
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЕрдиреБрдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
vagrant@vagrant:~$ sudo cat /proc/3813/oom_score 2
рдпрджрд┐ рдЖрдк oom_score_adj
рдХрд┐рд▓рд░ рдХреЛ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рдФрд░ рдХрд░реНрдиреЗрд▓ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИ: oom_score_adj
ред рдЖрдк рдЬрд┐рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдкреНрдпрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рдЙрд╕реЗ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдбрд╝рд╛ рдирдХрд╛рд░рд╛рддреНрдордХ рдореВрд▓реНрдп рдЬреЛрдбрд╝реЗрдВред
sudo echo -100 > /proc/3813/oom_score_adj
рдорд╛рди oom_score_adj
рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, OOMScoreAdjust рдХреЛ рд╕рд░реНрд╡рд┐рд╕ рдмреНрд▓реЙрдХ рдореЗрдВ рд╕реЗрдЯ рдХрд░реЗрдВ:
[Service] OOMScoreAdjust=-1000
рдпрд╛ rcctl
рдореЗрдВ oomprotect
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
rcctl set <i>servicename</i> oomprotect -1000
рдЬрдмрд░рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдорд╛рдкреНрддрд┐
рдЬрдм рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдБ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЪрдпрдирд┐рдд рд╣реИрдВ, рддреЛ OOM-Killer oom_kill_task()
рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рдорд╛рдкреНрддрд┐ рд╕рдВрдХреЗрдд рднреЗрдЬрддрд╛ рд╣реИред рдпрджрд┐ рдкрд░реНрдпрд╛рдкреНрдд рдореЗрдореЛрд░реА рдирд╣реАрдВ рд╣реИ, рддреЛ oom_kill()
рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ SIGKILL рд╕рд┐рдЧреНрдирд▓ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реИред рдПрдХ рд╕рдВрджреЗрд╢ рдХрд░реНрдиреЗрд▓ рд▓реЙрдЧ рдХреЛ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред
Out of Memory: Killed process [pid] [name].
OOM- рдХрд┐рд▓рд░ рдХреЛ рдХреИрд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░реЗрдВ
рд▓рд┐рдирдХреНрд╕ рдкрд░, рдЖрдк 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
рдлрд╝рд╛рдЗрд▓ рдореЗрдВ /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
рдУрдУрдПрдо-рдХрд┐рд▓рд░ рдХреЛ рди рдХреЗрд╡рд▓ рдЪрд╛рд▓реВ рдФрд░ рдмрдВрдж рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рдХрд╣рд╛ рд╣реИ рдХрд┐ рд▓рд┐рдирдХреНрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рдЖрд░рдХреНрд╖рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рдЖрд╡рдВрдЯрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рдкреИрд░рд╛рдореАрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП vm.overcommit_memory
рд╡реИрд░рд┐рдПрдмрд▓ рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред
рдЖрдк рдЗрд╕рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рдорд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
0: рдХрд░реНрдиреЗрд▓ рдЦреБрдж рддрдп рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рдЖрд░рдХреНрд╖рд┐рдд рдХрд░рдиреА рд╣реИ рдпрд╛ рдирд╣реАрдВред рдпрд╣ рд▓рд┐рдирдХреНрд╕ рдХреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдкрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╣реИред
1: рдХрд░реНрдиреЗрд▓ рд╣рдореЗрд╢рд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рдореЗрдореЛрд░реА рдЖрд░рдХреНрд╖рд┐рдд рдХрд░реЗрдЧрд╛ред рдпрд╣ рдЬреЛрдЦрд┐рдо рднрд░рд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдореГрддрд┐ рд╕рдорд╛рдкреНрдд рд╣реЛ рд╕рдХрддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐, рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдПрдХ рджрд┐рди рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдорд╛рдВрдЧреЗрдВрдЧреА рдХрд┐ рдХреНрдпрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
2: рдХрд░реНрдиреЗрд▓ overcommit_ratio
рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реЗ рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рдЖрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдЖрдк рд╕реНрдореГрддрд┐ рдХрд╛ рдкреНрд░рддрд┐рд╢рдд рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░реЗрдХ рдЕрдиреБрдореЗрдп рд╣реИред рдпрджрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕реНрдерд╛рди рдирд╣реАрдВ рд╣реИ, рддреЛ рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИ, рдЖрд░рдХреНрд╖рдг рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ PostgreSQL рдХреЗ рд▓рд┐рдП рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╕рдмрд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд╡рд┐рдХрд▓реНрдк рд╣реИред OOM-Killer рдПрдХ рдЕрдиреНрдп рддрддреНрд╡ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрддрд╛ рд╣реИ - рд╕реНрд╡реИрдк рдлреАрдЪрд░, рдЬрд┐рд╕реЗ рдЪрд░ cat /proc/sys/vm/swappiness
рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ cat /proc/sys/vm/swappiness
ред рдпреЗ рдорд╛рди рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдкреЗрдЬрд┐рдВрдЧ рдХреЛ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓рдирд╛ рд╣реИред рдореВрд▓реНрдп рдЬрд┐рддрдирд╛ рдмрдбрд╝рд╛ рд╣реЛрдЧрд╛, рдЙрддрдиреА рд╣реА рдХрдо рд╕рдВрднрд╛рд╡рдирд╛ рд╣реЛрдЧреА рдХрд┐ OOM рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░ рджреЗрдЧрд╛, рд▓реЗрдХрд┐рди I / O рдХреЗ рдХрд╛рд░рдг, рдпрд╣ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдирдХрд╛рд░рд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд - рдореВрд▓реНрдп рдЬрд┐рддрдирд╛ рдЫреЛрдЯрд╛ рд╣реЛрддрд╛ рд╣реИ, рдУрдУрдПрдо-рдХрд┐рд▓рд░ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдЙрддрдиреА рд╣реА рдЕрдзрд┐рдХ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рднреА рдЕрдзрд┐рдХ рд╣реЛрддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди 60 рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдкреВрд░рд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдореЛрд░реА рдореЗрдВ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИ, рддреЛ рдорд╛рди рдХреЛ 1 рдкрд░ рд╕реЗрдЯ рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИред
рдкрд░рд┐рдгрд╛рдо
OOM- рдХрд┐рд▓рд░ рдореЗрдВ рд╣рддреНрдпрд╛рд░реЗ рд╕реЗ рдбрд░реЛ рдорддред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рддреНрдпрд╛рд░рд╛ рдЖрдкрдХреЗ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рд░рдХреНрд╖рдХ рд╣реЛрдЧрд╛ред рдпрд╣ рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ "рдорд╛рд░рддрд╛ рд╣реИ" рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЕрд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╛рдкреНрддрд┐ рд╕реЗ рдмрдЪрд╛рддрд╛ рд╣реИред PostgreSQL рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП vm.overcommit_memory
рдХрд┐рд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, vm.overcommit_memory
рдХреЛ 2 рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВред рдпрд╣ рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ рдХрд┐ OOM-Killer рдХреЛ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдордЬрдмреВрд░ PostgreSQL рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХрдо рд╣реЛ рдЬрд╛рдПрдЧреАред