рдЖрдЙрдЯ-рдЕрдл-рдореЗрдореЛрд░реА рд╣реНрдпрд╛рдиреНрдбрд▓рд░ рд░рд┐рд▓реАрдЬ рдЕрд░реНрд▓реАрдУрдо рез.рек

рдЖрда рдорд╣рд┐рдирд╛рдХреЛ рд╡рд┐рдХрд╛рд╕ рдкрдЫрд┐ рдкреНрд░рдХрд╛рд╢рд┐рдд рдкреГрд╖реНрдарднреВрдорд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд░рд┐рд▓реАрдЬ рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рдХреЛрдард╛ 1.4, рдЬрд╕рд▓реЗ рдЖрд╡рдзрд┐рдХ рд░реВрдкрдорд╛ рдЙрдкрд▓рдмреНрдз рдореЗрдореЛрд░реАрдХреЛ рдорд╛рддреНрд░рд╛ рдЬрд╛рдБрдЪ рдЧрд░реНрджрдЫ (MemAvailable, SwapFree) рд░ рдХрдо рдореЗрдореЛрд░реАрдХреЛ рдШрдЯрдирд╛рдорд╛ рдЪрд╛рдБрдбреИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджрд┐рди рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрджрдЫред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛрдб C рд░ рдорд╛ рд▓реЗрдЦрд┐рдПрдХреЛ рдЫ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рддрд░рд┐рдд MIT рд▓рд╛рдЗрд╕реЗрдиреНрд╕ рдЕрдиреНрддрд░реНрдЧрддред

рдпрджрд┐ рдЙрдкрд▓рдмреНрдз рдореЗрдореЛрд░реАрдХреЛ рдорд╛рддреНрд░рд╛ рддреЛрдХрд┐рдПрдХреЛ рдорд╛рдирднрдиреНрджрд╛ рдХрдо рдЫ рднрдиреЗ, рдЕрд░реНрд▓реАрдУрдорд▓реЗ рдЬрдмрд░рдЬрд╕реНрддреА (SIGTERM рд╡рд╛ SIGKILL рдкрдард╛рдПрд░) рдкреНрд░рдгрд╛рд▓реАрдХреЛ рдЕрд╡рд╕реНрдерд╛ рдирд▓реНрдпрд╛рдЗрдХрди рд╕рдмреИрднрдиреНрджрд╛ рд╕рдХреНрд░рд┐рдп рд░реВрдкрдорд╛ рдореЗрдореЛрд░реА рдЦрдкрдд рдЧрд░реНрдиреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд▓рд╛рдИ рд╕рдорд╛рдкреНрдд рдЧрд░реНрдиреЗрдЫ (рдЙрдЪреНрдЪрддрдо /proc/*/oom_score рдорд╛рди рднрдПрдХреЛ) рдкреНрд░рдгрд╛рд▓реА рдмрдлрд░рд╣рд░реВ рдЦрд╛рд▓реА рдЧрд░реНрди рд░ рдХрд╛рд░реНрдп рд╕реНрд╡реИрдкрд┐рдЩрдорд╛ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдЧрд░реНрди (рдУрдУрдПрдо (рдореЗрдореЛрд░реА рдмрд╛рд╣рд┐рд░) рд╣реНрдпрд╛рдиреНрдбрд▓рд░ рдХрд░реНрдиреЗрд▓рдорд╛ рдЯреНрд░рд┐рдЧрд░ рд╣реБрдиреНрдЫ рдЬрдм рдЖрдЙрдЯ-рдЕрдл-рдореЗрдореЛрд░реА рдЕрд╡рд╕реНрдерд╛ рдкрд╣рд┐рд▓реЗ рдиреИ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдорд╛рдирд╣рд░реВрдорд╛ рдкреБрдЧрд┐рд╕рдХреЗрдХреЛ рд╣реБрдиреНрдЫ рд░ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдпрд╕ рдХреНрд╖рдгрдорд╛ рдкреНрд░рдгрд╛рд▓реАрд▓реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЧрд░реНрджреИрдиред рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛рд░реНрдпрд╣рд░реВ)ред

Earlyoom рд▓реЗ рдбреЗрд╕реНрдХрдЯрдкрдорд╛ рдЬрдмрд░рдЬрд╕реНрддреА рд╕рдорд╛рдкреНрдд рдЧрд░рд┐рдПрдХрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдХреЛ рд╕реВрдЪрдирд╛рд╣рд░реВ рдкрдард╛рдЙрди рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫ (рд╕реВрдЪрдирд╛-рдкрдард╛рдЙрдиреЗ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░), рд░ рдирд┐рдпрдорд╣рд░реВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ рдкрдирд┐ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ рдЬрд╕рдорд╛, рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░, рддрдкрд╛рдИрдВрд▓реЗ рд╕рдорд╛рдкреНрдд рдЧрд░реНрди рд░реБрдЪрд╛рдЗрдПрдХрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдХреЛ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ (рд╡рд┐рдХрд▓реНрдк "- -рдкреНрд░рд╛рдердорд┐рдХрддрд╛") рд╡рд╛ рд░реЛрдХрд┐рдиреБ рдкрд░реНрдЫ (рд╡рд┐рдХрд▓реНрдк "тАФрдмреЗрд╡рд╛рд╕реНрддрд╛")ред

рдореБрдЦреНрдп рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреБрд╣реЛрд╕реН рдирдпрд╛рдБ рд░рд┐рд▓реАрдЬ рдорд╛:

  • рдЦрд░реНрдЪ рдорд╛ рдЕрд▓реНрдЫреА рд▓реЛрдбрд┐рдЩ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВ, рдкреВрд░рд╛ рдЧрд░реНрди рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рдЪрдпрди рдЧрд░реНрдиреЗ рддрд░реНрдХ 50% рджреНрд╡рд╛рд░рд╛ рджреНрд░реБрдд рдЧрд░рд┐рдПрдХреЛ рдЫ;
  • PID рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рдирд╛рдордХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рдЧрдорд╛ рд╕рдорд╛рдкреНрдд рд╣реБрдиреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдХреЛ UID рдкреНрд░рддрд┐рдмрд┐рдореНрдмрд┐рдд рднрдПрдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░рд┐рдпреЛ;
  • рд╣рд▓реНрдХрд╛ рдЦреИрд░реЛрдорд╛ рдбрд┐рдмрдЧ рд▓рдЧрдХреЛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдЩ рдердкрд┐рдпреЛ;
  • рдХреЛрдб рд╕рдлрд╛ рдЧрд░рд┐рдпреЛ;
  • рд╕рдореНрднрд╡ рднрдПрд╕рдореНрдо, рдмреНрд▓рдХ-рд╕реНрдерд╛рдиреАрдп рдЪрд░рд╣рд░реВ рдШреЛрд╖рдгрд╛ рдЧрд░рд┐рдпреЛ;
  • рдХреЛрдбрдорд╛ рдирд┐рд░реНрдорд┐рдд рдмрдлрд░ рд╕рд╛рдЗрдЬ рдорд╛рди рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЧрд░реНрди PATH_LEN рд╕реЗрдЯрд┐рдЩ рдердкрд┐рдпреЛ;
  • рдЙрдкрд▓рдмреНрдз рд╣реБрдБрджрд╛ cppcheck рд╕реБрд░реБ рд╣реБрдиреНрдЫ рднрдиреНрдиреЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрджрдЫ;
  • "рдмреЗрдиреНрдЪ рдмрдирд╛рдЙрдиреБрд╣реЛрд╕реН" рдкреНрд░рджрд░реНрд╢рди рдкрд░реАрдХреНрд╖рдг рдердкрд┐рдпреЛ;
  • рдкрд░реАрдХреНрд╖рдгрдХреЛ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╕реЗрдЯ (рдкрд░реАрдХреНрд╖рдг рдЧрд░реНрдиреБрд╣реЛрд╕реН);
  • systemd earlyoom.service рдПрдХрд╛рдЗ рдлрд╛рдЗрд▓рдорд╛ рд░реВрдЯ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░рд╣рд░реВрдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд░рд┐рд╕реЗрдЯред рдпреЛ рдкрд░рд┐рд╡рд░реНрддрди рдмреНрд░реЗрдХ GUI рд╕реВрдЪрдирд╛рд╣рд░реВрдХреЛ рд╕рдореНрднрд╛рд╡рдирд╛ред GUI рдЕрдзрд┐рд╕реВрдЪрдирд╛рд╣рд░реВ рд╕рдХреНрд╖рдо рдЧрд░реНрди, "DynamicUser=true" рд▓рд╛рдИ рдЕрдирдХрдореЗрдиреНрдЯ рдЧрд░реЗрд░ рд░реВрдЯ рдЕрдзрд┐рдХрд╛рд░рд╣рд░реВ рдлрд┐рд░реНрддрд╛ рдЧрд░реНрдиреЗ рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░рд┐рдПрдХреЛ рдЫред рд░реВрдЯ рдкрдирд┐ рдЕрд╕рдХреНрд╖рдо рдЧрд░реНрджреИ ╨┐╤А╨╕╨▓╨╛╨┤╨╕╤В hidepid=1 рд╡рд╛ hidepid=2 рдореЛрдбрдорд╛ /proc рдорд╛рдЙрдиреНрдЯ рдЧрд░реНрджрд╛ рдореЗрдореЛрд░реА рдЦрдкрдд рдмрд╛рд░реЗ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдЕрд╕рдХреНрд╖рдорддрд╛ред

рд╕реНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди