Docker рдореЗрдВ OOMkiller рдЬрд┐рддрдирд╛ рдЖрдк рд╕реЛрдЪрддреЗ рд╣реИрдВ рдЙрд╕рд╕реЗ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реИ

рдлрд┐рд░ рд╕реЗ рд╣реИрд▓реЛред рдкрд╛рдареНрдпрдХреНрд░рдо рдХреА рд╢реБрд░реБрдЖрдд рдХреА рдкреНрд░рддреНрдпрд╛рд╢рд╛ рдореЗрдВ "рдЬрд╛рд╡рд╛ рдбреЗрд╡рд▓рдкрд░" рдиреЗ рдПрдХ рдФрд░ рдЫреЛрдЯреА рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЕрдиреБрд╡рд╛рдж рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ред




рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдкреНрд▓рдореНрдмреНрд░ рдПрдкреАрдПрдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдХреЛрдб 137 рдХреЗ рд╕рд╛рде рдбреЙрдХрдЯрд░-рдХрдВрдЯреЗрдирд░ рдХреЗ рдЖрдкрд╛рддрдХрд╛рд▓реАрди рд╕реНрдЯреЙрдк рдХреЗ рд╕рд╛рде рдПрдХ рдЕрдЬреАрдм рд╕рдорд╕реНрдпрд╛ рдереАред рдПрдХ рдиреЗрд╕реНрдЯреЗрдб рдЧреБрдбрд╝рд┐рдпрд╛ рдХреЗ рд╕рдорд╛рди рдХрдИ рдиреЗрд╕реНрдЯреЗрдб рдХрдВрдЯреЗрдирд░ рдФрд░ рдЖрднрд╛рд╕реА рдорд╢реАрдиреЛрдВ рдХреЗ рд╕рд╛рде рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕рд░рд▓ рдерд╛:

  • рдЙрдмрдВрдЯреВ рдХреЗ рд╕рд╛рде рдЦреБрдж рдХрд╛ рд▓реЛрд╣рд╛ рд╕рд░реНрд╡рд░;
  • рдЙрдмрдВрдЯреВ рдХреЗ рд╕рд╛рде рдХрдИ рдбреЙрдХрдЯрд░ рдХрдВрдЯреЗрдирд░ рдЕрдВрджрд░;
  • рдбреЙрдХ рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рдЬрд╛рд╡рд╛ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрдиред

рд╕рдорд╕реНрдпрд╛ рдХреА рдЬрд╛рдВрдЪ рдХреЗ рджреМрд░рд╛рди, рд╣рдордиреЗ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдбреЙрдХрд░ рдкреНрд░рд▓реЗрдЦрди рдкрд╛рдпрд╛ ред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдпрд╛ рддреЛ рдХрдВрдЯреЗрдирд░ рдХрд╛ рдореИрдиреБрдЕрд▓ рд╕реНрдЯреЙрдк рдерд╛, рдпрд╛ рдореЗрдореЛрд░реА рдХреА рдХрдореА рдФрд░ рдУрдореНрдХреЛрдХрд┐рд▓рд░ (рдЖрдЙрдЯ-рдСрдл-рдореЗрдореЛрд░реА рдХрд┐рд▓рд░) рдХрд╛ рд╣рд╕реНрддрдХреНрд╖реЗрдкред

рд╣рдо syslog рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдУрдХреЛрдХрд┐рд▓рд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рдерд╛ :

[138805.608851] java invoked oom-killer: gfp_mask=0xd0, order=0, oom_score_adj=0
[138805.608887] [<ffffffff8116d20e>] oom_kill_process+0x24e/0x3b0
[138805.608916] Task in /docker/264b771811d88f4dbd3249a54261f224a69ebffed6c7f76c7aa3bc83b3aaaf71 killed as a result of limit of /docker/264b771811d88f4dbd3249a54261f224a69ebffed6c7f76c7aa3bc83b3aaaf71
[138805.608902] [<ffffffff8116da84>] pagefault_out_of_memory+0x14/0x90
[138805.608918] memory: usage 3140120kB, limit 3145728kB, failcnt 616038
[138805.608940] memory+swap: usage 6291456kB, limit 6291456kB, failcnt 2837
[138805.609043] Memory cgroup out of memory: Kill process 20611 (java) score 1068 or sacrifice child

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд╛рд╡рд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ 3145728 KB (рдпрд╣ рд▓рдЧрднрдЧ 3 рдЬреАрдмреА рд╣реИ) рдХреА рд╕реАрдорд╛ рддрдХ рдкрд╣реБрдВрдЪ рдЧрдИ, рдЬрд┐рд╕рд╕реЗ рдХрдВрдЯреЗрдирд░ рдмрдВрдж рд╣реЛ рдЧрдпрд╛ред рдпрд╣ рдмрд▓реНрдХрд┐ рдЕрдЬреАрдм рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ docker рдЦреБрдж рдХреЛ 4 GB (рдлрд╝рд╛рдЗрд▓ рдореЗрдВ docker-compose) рдХреА рд╕реАрдорд╛ рдХреЗ рд╕рд╛рде рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ ред

рдЖрдк рд╢рд╛рдпрдж рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЬреЗрд╡реАрдПрдо рдореЗрдореЛрд░реА рдЙрдкрдпреЛрдЧ рдкрд░ рдЕрдкрдиреА рд╕реАрдорд╛рдПрдВ рднреА рд▓рдЧрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐ docker рдореЗрдВ 4 GB рдХреА рд╕реАрдорд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдереА, JVM рдХреЛ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ Xmx=3GBред рдпрд╣ рдФрд░ рднреА рдЕрдзрд┐рдХ рднреНрд░рд╛рдордХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдЬреЗрд╡реАрдПрдо рдЬреЛ -Xmx рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЙрд╕рд╕реЗ рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ ( рдЬреЗрд╡реАрдПрдо рдореЗрдВ рдореЗрдореЛрд░реА рдЙрдкрдпреЛрдЧ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдкрд░ рд▓реЗрдЦ рджреЗрдЦреЗрдВ )ред

рдЬрдм рддрдХ рд╣рдо рд╕рдордЭрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдбреЙрдХрд░ рдХреЛ 4 рдЬреАрдмреА рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреА рдЪрд╛рд╣рд┐рдПред рддреЛ OOMkiller рдиреЗ 3 GB рдкрд░ рдХрд╛рдо рдХреНрдпреЛрдВ рдХрд┐рдпрд╛? рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдЦреЛрдЬ рдиреЗ рд╣рдореЗрдВ рдЗрд╕ рддрдереНрдп рддрдХ рдкрд╣реБрдВрдЪрд╛рдпрд╛ рдХрд┐ рдУрдПрд╕ рдореЗрдВ рдореЗрдореЛрд░реА рдХреА рдПрдХ рдФрд░ рд╕реАрдорд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкрд░ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

Cgroups (рдирд┐рдпрдВрддреНрд░рдг рд╕рдореВрд╣реЛрдВ) рдХреЛ рдзрдиреНрдпрд╡рд╛рдж рдХрд╣реЗрдВред cgroups рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдореВрд╣реЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрди рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд, рдирд┐рдпрдВрддреНрд░рд┐рдд рдФрд░ рд▓реЗрдЦрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рдЗрдВрдЬрди рд╣реИред рдЕрдиреНрдп рд╕рдорд╛рдзрд╛рдиреЛрдВ (рдЯреАрдо niceрдпрд╛ /etc/security/limits.conf) рдХреА рддреБрд▓рдирд╛ рдореЗрдВ , cgroups рдЕрдзрд┐рдХ рд▓рдЪреАрд▓реЗрдкрди рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╣рдорд╛рд░реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, cgroups рд╕реАрдорд┐рдд рдореЗрдореЛрд░реА рдЙрдкрдпреЛрдЧ рдХреЛ 3 GB (рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ memory.limit_in_bytes) рдХрд░рддрд╛ рд╣реИред рд╣рдорд╛рд░реА рдХреБрдЫ рдкреНрд░рдЧрддрд┐ рд╣реИ!

рдЬреАрд╕реАрдПрдо рдореЗрдореЛрд░реА рдФрд░ рдкреНрд▓рдореНрдмреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдШрдЯрдирд╛рдУрдВ рдХреЗ рдПрдХ рдЕрдзреНрдпрдпрди рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдордп рдЬреЗрд╡реАрдПрдо рд▓рдЧрднрдЧ 700 рдПрдордмреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рдерд╛ред рдЕрдкрд╡рд╛рдж рдХреЗрд╡рд▓ рд╕реНрдЯреЙрдк рд╕реЗ тАЛтАЛрдкрд╣рд▓реЗ рдерд╛, рдЬрдм рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрди рдореЗрдВ рдЙрдЫрд╛рд▓ рдерд╛ред рдЙрд╕рдХреЗ рдмрд╛рдж рдЬреАрд╕реА рдХрд╛ рдПрдХ рд▓рдВрдмрд╛ рд╡рд┐рд░рд╛рдо рдерд╛ред рддреЛ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реБрдЖ:

  • JVM рдХреЗ рдЕрдВрджрд░ рдЪрд▓ рд░рд╣реЗ Java рдХреЛрдб рдмрд╣реБрдд рд╕рд╛рд░реА рдореЗрдореЛрд░реА рдкрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИред
  • рдЬреЗрд╡реАрдПрдо рдиреЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдХрд┐ 3 рдЬреАрдмреА рдХреА рдПрдХреНрд╕рдПрдордПрдХреНрд╕ рд╕реАрдорд╛ рдЕрднреА рднреА рджреВрд░ рд╣реИ, рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реИред
  • Docker рдпрд╣ рднреА рдЬрд╛рдБрдЪрддрд╛ рд╣реИ рдФрд░ рджреЗрдЦрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреА 4 GB рд╕реАрдорд╛ рднреА рдирд╣реАрдВ рдкрд╣реБрдБрдЪреА рд╣реИред
  • рдУрдПрд╕ рдХрд░реНрдиреЗрд▓ 3 рдЬреАрдмреА рдХреА cgroup рд╕реАрдорд╛ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХрдВрдЯреЗрдирд░ рдХреЛ рдорд╛рд░рддрд╛ рд╣реИред
  • рдЬреЗрд╡реАрдПрдо рдХрдВрдЯреЗрдирд░ рдХреЗ рд╕рд╛рде рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╡рд╣ рдЕрдкрдиреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░ рд╕рдХреЗ OutOfMemoryErrorред

рдЗрд╕реЗ рд╕рдордЭрддреЗ рд╣реБрдП, рд╣рдордиреЗ рдбреЙрдХрдЯрд░ рдХреЗ рд▓рд┐рдП 2.5 рдЬреАрдмреА рдФрд░ рдЬрд╛рд╡рд╛ рдХреЗ рд▓рд┐рдП 1.5 рдХреА рд╕рднреА рд╕реАрдорд╛рдУрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж, JVM OutOfMemoryErrorрдПрдХ OutOfMemoryError рдЕрдкрд╡рд╛рдж рдХреЛ рд╕рдВрднрд╛рд▓ рдФрд░ рдлреЗрдВрдХ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдиреЗ рдкреНрд▓рдордмреНрд░ рдХреЛ рдЕрдкрдирд╛ рдЬрд╛рджреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА - рд╕реНрдЯреИрдХ рдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рдбрдВрдк рдХреЗ рд╕рд╛рде рдПрдХ рдореЗрдореЛрд░реА рд╕реНрдиреИрдкрд╢реЙрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдпрд╣ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдПрдХ рдХреНрд╡реЗрд░реА рдереА, рдЬрд┐рд╕рдиреЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд▓рдЧрднрдЧ рдкреВрд░реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред

рдЬрд╛рдБрдЪ - рдкрд░рд┐рдгрд╛рдо


рдРрд╕реА рд╕рд░рд▓ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рднреА, рддреАрди рдореЗрдореЛрд░реА рд╕реАрдорд╛рдПрдБ рдереАрдВ:

  • рдЬреЗрд╡реАрдПрдо рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ -Xmx
  • рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЙрдХрд░ docker-compose
  • рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо memory.limit_in_bytes cgroups

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЬрдм рдЖрдк рдПрдХ OOM рд╣рддреНрдпрд╛рд░реЗ рд╕реЗ рдореБрдарднреЗрдбрд╝ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд╢рд╛рдорд┐рд▓ рд╕рднреА рдореЗрдореЛрд░реА рд╕реАрдорд╛рдУрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдбреЙрдХ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдирд┐рд╖реНрдХрд░реНрд╖ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреА "рдиреЗрд╕реНрдЯреЗрдб рдЧреБрдбрд╝рд┐рдпрд╛" рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕рдВрд▓рдЧреНрди рдХрдВрдЯреЗрдирд░ рдХреА рдореЗрдореЛрд░реА рд╕реАрдорд╛ cgroups рд╕реАрдорд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред рдЙрдЪрд┐рдд рдЪреЗрддрд╛рд╡рдиреА рдХреЗ рд╕рд╛рде рдХрдВрдЯреЗрдирд░ рдХреЛ рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп рдЗрд╕рдХреА рдПрдХ рд╕рд░рд▓ рдЬрд╛рдВрдЪ рдЖрдкрдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕реИрдХрдбрд╝реЛрдВ рдШрдВрдЯреЛрдВ рдХреА рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЛ рдмрдЪрд╛ рд╕рдХрддреА рд╣реИред

рдмрд╕ рдЗрддрдирд╛ рд╣реАред рд╣рдо рдкрд╛рдареНрдпрдХреНрд░рдо рдкрд░ рдЖрдкрдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ ред

All Articles