![рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдореЗрдВ 6 рдордиреЛрд░рдВрдЬрдХ рд╕рд┐рд╕реНрдЯрдо рдмрдЧ [рдФрд░ рдЙрдирдХрд╛ рд╕рдорд╛рдзрд╛рди]](/wp-content/uploads/2019/03/bed059552ed86580939aa18fbdf1553e.jpg)
рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ, рд╣рдордиреЗ рдХрдИ рджрд┐рд▓рдЪрд╕реНрдк рдХрд╣рд╛рдирд┐рдпрд╛рдВ рдЬрдорд╛ рдХреА рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ рд╡рд┐рднрд┐рдиреНрди рд╕рд┐рд╕реНрдЯрдо рдШрдЯрдХреЛрдВ рдореЗрдВ рдмрдЧ рдХреЗ рдХрд╛рд░рдг рдЕрдкреНрд░рд┐рдп рдФрд░/рдпрд╛ рд╕рдордЭ рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдкрд░рд┐рдгрд╛рдо рд╣реБрдП рдЬреЛ рдХрдВрдЯреЗрдирд░реЛрдВ рдФрд░ рдкреЙрдбреНрд╕ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдордиреЗ рдХреБрдЫ рд╕рдмрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдпрд╛ рджрд┐рд▓рдЪрд╕реНрдк рдЪреАрдЬрд╝реЛрдВ рдХрд╛ рд╕рдВрдХрд▓рди рдХрд┐рдпрд╛ рд╣реИред рднрд▓реЗ рд╣реА рдЖрдк рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрднреА рднреА рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рдирд╣реАрдВ рд╣реИрдВ, рдРрд╕реА рдЫреЛрдЯреА рдЬрд╛рд╕реВрд╕реА рдХрд╣рд╛рдирд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝рдирд╛ - рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ "рдкреНрд░рдердо-рд╣рд╛рде" - рд╣рдореЗрд╢рд╛ рдордиреЛрд░рдВрдЬрдХ рд╣реЛрддрд╛ рд╣реИ, рд╣реИ рдирд╛? ..
рдХрд╣рд╛рдиреА 1. рд╕реБрдкрд░рдХреНрд░реЙрдирд┐рдХ рдФрд░ рдПрдХ рдЕрдЯрдХрд╛ рд╣реБрдЖ рдбреЙрдХрд░
рдХреНрд▓рд╕реНрдЯрд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдкрд░, рд╣рдореЗрдВ рд╕рдордп-рд╕рдордп рдкрд░ рдПрдХ рдЬрдореЗ рд╣реБрдП рдбреЙрдХрд░ рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖ, рдЬрд┐рд╕рдиреЗ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рдордХрд╛рдЬ рдореЗрдВ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХрд┐рдпрд╛ред рдЙрд╕реА рд╕рдордп, рдбреЙрдХрд░ рд▓реЙрдЧ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджреЗрдЦрд╛ рдЧрдпрд╛
level=error msg="containerd: start init process" error="exit status 2: "runtime/cgo: pthread_create failed: No space left on device
SIGABRT: abort
PC=0x7f31b811a428 m=0
goroutine 0 [idle]:
goroutine 1 [running]:
runtime.systemstack_switch() /usr/local/go/src/runtime/asm_amd64.s:252 fp=0xc420026768 sp=0xc420026760
runtime.main() /usr/local/go/src/runtime/proc.go:127 +0x6c fp=0xc4200267c0 sp=0xc420026768
runtime.goexit() /usr/local/go/src/runtime/asm_amd64.s:2086 +0x1 fp=0xc4200267c8 sp=0xc4200267c0
goroutine 17 [syscall, locked to thread]:
runtime.goexit() /usr/local/go/src/runtime/asm_amd64.s:2086 +0x1
тАж рдЗрд╕ рддреНрд░реБрдЯрд┐ рдореЗрдВ, рд╣рдореЗрдВ рд╕рдВрджреЗрд╢ рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд░реБрдЪрд┐ рд╣реИ: pthread_create failed: No space left on device. рдПрдХ рд╕рд░рд╕рд░реА рдЕрдзреНрдпрдпрди рд╕рдордЭрд╛рдпрд╛ рдЧрдпрд╛ рдХрд┐ рдбреЙрдХрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдлреЛрд░реНрдХ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдпрд╣ рд╕рдордп-рд╕рдордп рдкрд░ "рд╣реИрдВрдЧ" рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдирд┐рдЧрд░рд╛рдиреА рдореЗрдВ, рдЬреЛ рд╣реЛ рд░рд╣рд╛ рд╣реИ рд╡рд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд┐рддреНрд░ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ:
![рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдореЗрдВ 6 рдордиреЛрд░рдВрдЬрдХ рд╕рд┐рд╕реНрдЯрдо рдмрдЧ [рдФрд░ рдЙрдирдХрд╛ рд╕рдорд╛рдзрд╛рди]](/wp-content/uploads/2019/03/bd778052c87b338493bae54b26830ef3.jpg)
рдЕрдиреНрдп рдиреЛрдбреНрд╕ рдкрд░ рднреА рдРрд╕реА рд╣реА рд╕реНрдерд┐рддрд┐ рджреЗрдЦреА рдЧрдИ рд╣реИ:
![рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдореЗрдВ 6 рдордиреЛрд░рдВрдЬрдХ рд╕рд┐рд╕реНрдЯрдо рдмрдЧ [рдФрд░ рдЙрдирдХрд╛ рд╕рдорд╛рдзрд╛рди]](/wp-content/uploads/2019/03/ef512532a95ca982e4342071115dbe9f.jpg)
![рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдореЗрдВ 6 рдордиреЛрд░рдВрдЬрдХ рд╕рд┐рд╕реНрдЯрдо рдмрдЧ [рдФрд░ рдЙрдирдХрд╛ рд╕рдорд╛рдзрд╛рди]](/wp-content/uploads/2019/03/43c32ebca78755dde348ed5e7ac75c79.jpg)
рдЙрдиреНрд╣реАрдВ рдиреЛрдбреНрд╕ рдкрд░ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ:
root@kube-node-1 ~ # ps auxfww | grep curl -c
19782
root@kube-node-1 ~ # ps auxfww | grep curl | head
root 16688 0.0 0.0 0 0 ? Z Feb06 0:00 | _ [curl] <defunct>
root 17398 0.0 0.0 0 0 ? Z Feb06 0:00 | _ [curl] <defunct>
root 16852 0.0 0.0 0 0 ? Z Feb06 0:00 | _ [curl] <defunct>
root 9473 0.0 0.0 0 0 ? Z Feb06 0:00 | _ [curl] <defunct>
root 4664 0.0 0.0 0 0 ? Z Feb06 0:00 | _ [curl] <defunct>
root 30571 0.0 0.0 0 0 ? Z Feb06 0:00 | _ [curl] <defunct>
root 24113 0.0 0.0 0 0 ? Z Feb06 0:00 | _ [curl] <defunct>
root 16475 0.0 0.0 0 0 ? Z Feb06 0:00 | _ [curl] <defunct>
root 7176 0.0 0.0 0 0 ? Z Feb06 0:00 | _ [curl] <defunct>
root 1090 0.0 0.0 0 0 ? Z Feb06 0:00 | _ [curl] <defunct>рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдкреЙрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИ (рдПрдХ рдЧреЛ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдо рдкреЙрдбреНрд╕ рдореЗрдВ рдХреНрд░реЙрди рдЬреЙрдм рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВ):
_ docker-containerd-shim 833b60bb9ff4c669bb413b898a5fd142a57a21695e5dc42684235df907825567 /var/run/docker/libcontainerd/833b60bb9ff4c669bb413b898a5fd142a57a21695e5dc42684235df907825567 docker-runc
| _ /usr/local/bin/supercronic -json /crontabs/cron
| _ /usr/bin/newrelic-daemon --agent --pidfile /var/run/newrelic-daemon.pid --logfile /dev/stderr --port /run/newrelic.sock --tls --define utilization.detect_aws=true --define utilization.detect_azure=true --define utilization.detect_gcp=true --define utilization.detect_pcf=true --define utilization.detect_docker=true
| | _ /usr/bin/newrelic-daemon --agent --pidfile /var/run/newrelic-daemon.pid --logfile /dev/stderr --port /run/newrelic.sock --tls --define utilization.detect_aws=true --define utilization.detect_azure=true --define utilization.detect_gcp=true --define utilization.detect_pcf=true --define utilization.detect_docker=true -no-pidfile
| _ [newrelic-daemon] <defunct>
| _ [curl] <defunct>
| _ [curl] <defunct>
| _ [curl] <defunct>
тАжрд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ: рдЬрдм рдХреЛрдИ рдХрд╛рд░реНрдп рд╕реБрдкрд░рдХреНрд░реЙрдирд┐рдХ рдореЗрдВ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рд╕реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИ рдареАрдХ рд╕реЗ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛, рдореЗрдВ рддрдмреНрджреАрд▓ .
рдиреЛрдЯ: рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдХреНрд░реЙрди рдХрд╛рд░реНрдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕реБрдкрд░рдХреНрд░реЙрдирд┐рдХ рдПрдХ рдЗрдирд┐рдЯ рд╕рд┐рд╕реНрдЯрдо рдирд╣реАрдВ рд╣реИ рдФрд░ рдЙрди рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ "рдЕрдкрдирд╛" рдирд╣реАрдВ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЗрд╕рдХреЗ рдмрдЪреНрдЪреЛрдВ рдиреЗ рдкреИрджрд╛ рдХреА рд╣реИрдВред рдЬрдм SIGHUP рдпрд╛ SIGTERM рд╕рд┐рдЧреНрдирд▓ рдЖрддреЗ рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдЪрд╛рдЗрд▓реНрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рддрдХ рдирд╣реАрдВ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЪрд╛рдЗрд▓реНрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВ, рдЬрд╝реЛрдВрдмреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд░рд╣рддреА рд╣реИрдВред рдЖрдк рдЗрд╕ рд╕рдм рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореЗрдВ .
рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рдХреБрдЫ рддрд░реАрдХреЗ рд╣реИрдВ:
- рдЕрд╕реНрдерд╛рдпреА рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ - рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдкреАрдЖрдИрдбреА тАЛтАЛрдХреА рд╕рдВрдЦреНрдпрд╛ рдмрдврд╝рд╛рдПрдБ:
/proc/sys/kernel/pid_max (since Linux 2.5.34) This file specifies the value at which PIDs wrap around (i.e., the value in this file is one greater than the maximum PID). PIDs greater than this value are not alloтАР cated; thus, the value in this file also acts as a system-wide limit on the total number of processes and threads. The default value for this file, 32768, results in the same range of PIDs as on earlier kernels - рдпрд╛ рд╕реБрдкрд░рдХреНрд░реЙрдирд┐рдХ рдореЗрдВ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╢реБрднрд╛рд░рдВрдн рд╕реАрдзреЗ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдЙрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд░реЗрдВ , рдЬреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ рдФрд░ рд▓рд╛рд╢ рдХреЛ рдкреИрджрд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдХрд╣рд╛рдиреА 2. рд╕реАрдЧреНрд░реБрдк рдХреЛ рд╣рдЯрд╛рддреЗ рд╕рдордп "рдЬрд╝реЙрдореНрдмреАрдЬрд╝"ред
рдХреНрдпреВрдмрд▓реЗрдЯ рдиреЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ CPU рдЙрдкрднреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛:
![рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдореЗрдВ 6 рдордиреЛрд░рдВрдЬрдХ рд╕рд┐рд╕реНрдЯрдо рдмрдЧ [рдФрд░ рдЙрдирдХрд╛ рд╕рдорд╛рдзрд╛рди]](/wp-content/uploads/2019/03/6140058330faaa3785b089dcba857056.jpg)
рдпрд╣ рдХрд┐рд╕реА рдХреЛ рдкрд╕рдВрдж рдирд╣реАрдВ рдЖрдПрдЧрд╛, рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдЦреБрдж рдХреЛ рд╣рдерд┐рдпрд╛рд░рдмрдВрдж рдХрд░ рд▓рд┐рдпрд╛ред' рдФрд░ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдирд┐рдкрдЯрдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред рдЬрд╛рдВрдЪ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдереЗ:
- рдХреНрдпреВрдмрд▓реЗрдЯ рдЕрдкрдиреЗ CPU рд╕рдордп рдХрд╛ рдПрдХ рддрд┐рд╣рд╛рдИ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд╕рднреА cgroups рд╕реЗ рдореЗрдореЛрд░реА рдбреЗрдЯрд╛ рдЦреАрдВрдЪрдиреЗ рдореЗрдВ рдЦрд░реНрдЪ рдХрд░рддрд╛ рд╣реИ:
![рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдореЗрдВ 6 рдордиреЛрд░рдВрдЬрдХ рд╕рд┐рд╕реНрдЯрдо рдмрдЧ [рдФрд░ рдЙрдирдХрд╛ рд╕рдорд╛рдзрд╛рди]](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20600%20241'%3E%3C/svg%3E)
- рдХрд░реНрдиреЗрд▓ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА рдореЗрдВ, рдЖрдк рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ . рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдмрд╛рдд рдпрд╣реА рд╣реИ рд╡рд┐рднрд┐рдиреНрди tmpfs рдлрд╝рд╛рдЗрд▓реЗрдВ рдФрд░ рдЕрдиреНрдп рд╕рдорд╛рди рдЪреАрдЬрд╝реЗрдВ рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ рд╣рдЯрд╛рдИ рдЬрд╛рддреА рд╣реИрдВ рдХрд┐рд╕реА рд╕реАрдЧреНрд░реБрдк рдХреЛ рд╣рдЯрд╛рддреЗ рд╕рдордп, рддрдерд╛рдХрдерд┐рдд рдЬрд╝реЛрдВрдмреА. рджреЗрд░-рд╕рдмреЗрд░ рдЙрдиреНрд╣реЗрдВ рдкреЗрдЬ рдХреИрд╢ рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рд╕рд░реНрд╡рд░ рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рд╣реИ рдФрд░ рдХрд░реНрдиреЗрд▓ рдХреЛ рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛рдиреЗ рдореЗрдВ рд╕рдордп рдмрд░реНрдмрд╛рдж рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рд╡реЗ рдвреЗрд░ рд▓рдЧрддреЗ рд░рд╣рддреЗ рд╣реИрдВред рдЖрдЦрд╝рд┐рд░ рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ? рдпрд╣ рдХреНрд░реЙрди рдЬреЙрдмреНрд╕ рд╡рд╛рд▓рд╛ рдПрдХ рд╕рд░реНрд╡рд░ рд╣реИ рдЬреЛ рд▓рдЧрд╛рддрд╛рд░ рдирдИ рдиреМрдХрд░рд┐рдпрд╛рдВ рдмрдирд╛рддрд╛ рд╣реИ, рдФрд░ рдЙрдирдХреЗ рд╕рд╛рде рдирдП рдкреЙрдб рднреА рдмрдирд╛рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЙрдирдореЗрдВ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд▓рд┐рдП рдирдП cgroups рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬреЛ рдЬрд▓реНрдж рд╣реА рд╣рдЯрд╛ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
- рдХреНрдпреВрдмрд▓реЗрдЯ рдореЗрдВ cAdvisor рдЗрддрдирд╛ рд╕рдордп рдХреНрдпреЛрдВ рдмрд░реНрдмрд╛рдж рдХрд░рддрд╛ рд╣реИ? рдЗрд╕реЗ рд╕рд░рд▓рддрдо рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд╕рд╛рде рджреЗрдЦрдирд╛ рдЖрд╕рд╛рди рд╣реИ
time cat /sys/fs/cgroup/memory/memory.stat. рдпрджрд┐ рдПрдХ рд╕реНрд╡рд╕реНрде рдорд╢реАрди рдкрд░ рдСрдкрд░реЗрд╢рди рдореЗрдВ 0,01 рд╕реЗрдХрдВрдб рд▓рдЧрддреЗ рд╣реИрдВ, рддреЛ рд╕рдорд╕реНрдпрд╛ cron02 рдкрд░ 1,2 рд╕реЗрдХрдВрдб рд▓рдЧрддреЗ рд╣реИрдВред рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ cAdvisor, рдЬреЛ sysfs рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рдмрд╣реБрдд рдзреАрдореА рдЧрддрд┐ рд╕реЗ рдкрдврд╝рддрд╛ рд╣реИ, рдЬрд╝реЛрдВрдмреА cgroups рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЧрдИ рдореЗрдореЛрд░реА рдХреЛ рднреА рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИред - рдЬрд╝реЛрдВрдмреА рдХреЛ рдмрд▓рдкреВрд░реНрд╡рдХ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдПрд▓рдХреЗрдПрдордПрд▓ рдореЗрдВ рдЕрдиреБрд╢рдВрд╕рд┐рдд рдХреИрд╢ рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛:
sync; echo 3 > /proc/sys/vm/drop_caches, - рд▓реЗрдХрд┐рди рдХрд░реНрдиреЗрд▓ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдирд┐рдХрд▓рд╛ рдФрд░ рдХрд╛рд░ рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЧрдИред
рдХреНрдпрд╛ рдХрд░реЗрдВ? рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдЗрд╕рдореЗрдВ рд╡рд┐рд╡рд░рдг рджреЗрдЦреЗрдВ рдХрд░реНрдиреЗрд▓ рдЕрдкрдбреЗрдЯ Linux рд╕рдВрд╕реНрдХрд░рдг 4.16 рддрдХ.
рдХрд╣рд╛рдиреА 3. рд╕рд┐рд╕реНрдЯрдордб рдФрд░ рдЙрд╕рдХрд╛ рдорд╛рдЙрдВрдЯ
рдлрд┐рд░, рдХреНрдпреВрдмрд▓реЗрдЯ рдХреБрдЫ рдиреЛрдбреНрд╕ рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдмрд╛рд░ рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ:
![рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдореЗрдВ 6 рдордиреЛрд░рдВрдЬрдХ рд╕рд┐рд╕реНрдЯрдо рдмрдЧ [рдФрд░ рдЙрдирдХрд╛ рд╕рдорд╛рдзрд╛рди]](/wp-content/uploads/2019/03/044c4e23a772c61a6206b9b20aa67c1d.jpg)
рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рд╕рд┐рд╕реНрдЯрдордбреА рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдереА рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рдерд╛ред Ubuntu 16.04, рдФрд░ рдпрд╣ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдмрдирд╛рдП рдЧрдП рдорд╛рдЙрдВрдЯреНрд╕ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред subPath рдХреЙрдиреНрдлрд╝рд┐рдЧрдореИрдк'рдУрд╡ рдпрд╛ рд╕реАрдХреНрд░реЗрдЯ'рдУрд╡ рд╕реЗред рдкреЙрдб рдмрдВрдж рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╕рд┐рд╕реНрдЯрдордбреА рд╕реЗрд╡рд╛ рдФрд░ рдЙрд╕рдХрд╛ рд╕рд░реНрд╡рд┐рд╕ рдорд╛рдЙрдВрдЯ рдмрдирд╛ рд░рд╣рддрд╛ рд╣реИ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ. рд╕рдордп рдХреЗ рд╕рд╛рде, рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдЬрдорд╛ рд╣реЛ рдЬрд╛рддреА рд╣реИред рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рднреА рдореБрджреНрджреЗ рд╣реИрдВ:
- ;
- .
... рдЬрд┐рдирдореЗрдВ рд╕реЗ рдЕрдВрддрд┐рдо рдореЗрдВ рд╡реЗ рд╕рд┐рд╕реНрдЯрдордбреА рдореЗрдВ рдкреАрдЖрд░ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддреЗ рд╣реИрдВ: (рд╕рд┐рд╕реНрдЯрдордбреА рдореЗрдВ рдореБрджреНрджрд╛ - ).
рдЕрдм рд╡рд╣ рд╕рдорд╕реНрдпрд╛ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ Ubuntu 18.04, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬрд╛рд░реА рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ Ubuntu 16.04, рдЖрдкрдХреЛ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рд╣рдорд╛рд░рд╛ рд╕рдорд╛рдзрд╛рди рдЙрдкрдпреЛрдЧреА рд▓рдЧ рд╕рдХрддрд╛ рд╣реИред
рддреЛ, рд╣рдордиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдбреЗрдордирд╕реЗрдЯ рдмрдирд╛рдпрд╛ рд╣реИ:
---
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
labels:
app: systemd-slices-cleaner
name: systemd-slices-cleaner
namespace: kube-system
spec:
updateStrategy:
type: RollingUpdate
selector:
matchLabels:
app: systemd-slices-cleaner
template:
metadata:
labels:
app: systemd-slices-cleaner
spec:
containers:
- command:
- /usr/local/bin/supercronic
- -json
- /app/crontab
Image: private-registry.org/systemd-slices-cleaner/systemd-slices-cleaner:v0.1.0
imagePullPolicy: Always
name: systemd-slices-cleaner
resources: {}
securityContext:
privileged: true
volumeMounts:
- name: systemd
mountPath: /run/systemd/private
- name: docker
mountPath: /run/docker.sock
- name: systemd-etc
mountPath: /etc/systemd
- name: systemd-run
mountPath: /run/systemd/system/
- name: lsb-release
mountPath: /etc/lsb-release-host
imagePullSecrets:
- name: antiopa-registry
priorityClassName: cluster-low
tolerations:
- operator: Exists
volumes:
- name: systemd
hostPath:
path: /run/systemd/private
- name: docker
hostPath:
path: /run/docker.sock
- name: systemd-etc
hostPath:
path: /etc/systemd
- name: systemd-run
hostPath:
path: /run/systemd/system/
- name: lsb-release
hostPath:
path: /etc/lsb-release... рдФрд░ рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ:
#!/bin/bash
# we will work only on xenial
hostrelease="/etc/lsb-release-host"
test -f ${hostrelease} && grep xenial ${hostrelease} > /dev/null || exit 0
# sleeping max 30 minutes to dispense load on kube-nodes
sleep $((RANDOM % 1800))
stoppedCount=0
# counting actual subpath units in systemd
countBefore=$(systemctl list-units | grep subpath | grep "run-" | wc -l)
# let's go check each unit
for unit in $(systemctl list-units | grep subpath | grep "run-" | awk '{print $1}'); do
# finding description file for unit (to find out docker container, who born this unit)
DropFile=$(systemctl status ${unit} | grep Drop | awk -F': ' '{print $2}')
# reading uuid for docker container from description file
DockerContainerId=$(cat ${DropFile}/50-Description.conf | awk '{print $5}' | cut -d/ -f6)
# checking container status (running or not)
checkFlag=$(docker ps | grep -c ${DockerContainerId})
# if container not running, we will stop unit
if [[ ${checkFlag} -eq 0 ]]; then
echo "Stopping unit ${unit}"
# stoping unit in action
systemctl stop $unit
# just counter for logs
((stoppedCount++))
# logging current progress
echo "Stopped ${stoppedCount} systemd units out of ${countBefore}"
fi
done...рдФрд░ рдпрд╣ рдкрд╣рд▓реЗ рдмрддрд╛рдП рдЧрдП рд╕реБрдкрд░рдХреНрд░реЙрдирд┐рдХ рдХреА рдорджрдж рд╕реЗ рд╣рд░ 5 рдорд┐рдирдЯ рдореЗрдВ рдЪрд▓рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ Dockerfile рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
FROM ubuntu:16.04
COPY rootfs /
WORKDIR /app
RUN apt-get update &&
apt-get upgrade -y &&
apt-get install -y gnupg curl apt-transport-https software-properties-common wget
RUN add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable" &&
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - &&
apt-get update &&
apt-get install -y docker-ce=17.03.0*
RUN wget https://github.com/aptible/supercronic/releases/download/v0.1.6/supercronic-linux-amd64 -O
/usr/local/bin/supercronic && chmod +x /usr/local/bin/supercronic
ENTRYPOINT ["/bin/bash", "-c", "/usr/local/bin/supercronic -json /app/crontab"]рдХрд╣рд╛рдиреА 4: рдкреЙрдб рдпреЛрдЬрдирд╛ рдореЗрдВ рд╕рдорд╡рд░реНрддреАрддрд╛
рдпрд╣ рджреЗрдЦрд╛ рдЧрдпрд╛ рдХрд┐: рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдиреЛрдб рдкрд░ рдПрдХ рдкреЙрдб рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреА рдЫрд╡рд┐ рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдкрдВрдк рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдПрдХ рдФрд░ рдкреЙрдб рдЬреЛ рдЙрд╕реА рдиреЛрдб рдкрд░ "рд╣рд┐рдЯ" рдХрд░рддрд╛ рд╣реИ рдирдИ рдкреЙрдб рдЫрд╡рд┐ рдЦреАрдВрдЪрдирд╛ рдкреНрд░рд╛рд░рдВрдн рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ. рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдпрд╣ рдкрд┐рдЫрд▓реЗ рдкреЙрдб рдХреА рдЫрд╡рд┐ рдЦреАрдВрдЪреЗ рдЬрд╛рдиреЗ рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдПрдХ рдкреЙрдб рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╢реЗрдбреНрдпреВрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдЬрд┐рд╕рдХреА рдЫрд╡рд┐ рдХреЗрд╡рд▓ рдПрдХ рдорд┐рдирдЯ рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЬрд╛ рд╕рдХрддреА рдереА, рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдЧреА containerCreating.
рдШрдЯрдирд╛рдПрдБ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдВрдЧреА:
Normal Pulling 8m kubelet, ip-10-241-44-128.ap-northeast-1.compute.internal pulling image "registry.example.com/infra/openvpn/openvpn:master"рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдзреАрдореА рд░рдЬрд┐рд╕реНрдЯреНрд░реА рд╕реЗ рдПрдХ рднреА рдЫрд╡рд┐ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░ рд╕рдХрддреА рд╣реИ рдиреЛрдб рдХреЗ рд▓рд┐рдП.
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЗрд╕ рд╕реНрдерд┐рддрд┐ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреЗ рдХрдИ рд░рд╛рд╕реНрддреЗ рдирд╣реАрдВ рд╣реИрдВ:
- рдЕрдкрдиреА рдбреЙрдХрд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдХреЛ рд╕реАрдзреЗ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдпрд╛ рд╕реАрдзреЗ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЧрд┐рдЯрд▓реИрдм рд░рдЬрд┐рд╕реНрдЯреНрд░реА, рдиреЗрдХреНрд╕рд╕, рдЖрджрд┐);
- рдЬреИрд╕реА рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдПрдВ .
рдХрд╣рд╛рдиреА 5. рдореЗрдореЛрд░реА рдХреА рдХрдореА рдХреЗ рдХрд╛рд░рдг рдиреЛрдбреНрд╕ рдХрд╛ рд▓рдЯрдХрдирд╛
рд╡рд┐рднрд┐рдиреНрди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рджреМрд░рд╛рди, рд╣рдореЗрдВ рдПрдХ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рднреА рдорд┐рд▓реА рдЬрдм рдиреЛрдб рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реЛрдирд╛ рдмрдВрдж рд╣реЛ рдЧрдпрд╛: рдПрд╕рдПрд╕рдПрдЪ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рд╕рднреА рдирд┐рдЧрд░рд╛рдиреА рдбреЗрдореЙрди рдмрдВрдж рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рд▓реЙрдЧ рдореЗрдВ рдХреБрдЫ рднреА рдЕрд╕рд╛рдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ (рдпрд╛ рд▓рдЧрднрдЧ рдХреБрдЫ рднреА рдирд╣реАрдВ)ред
рдореИрдВ рдЖрдкрдХреЛ рдПрдХ рдиреЛрдб рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЪрд┐рддреНрд░реЛрдВ рдореЗрдВ рдмрддрд╛рдКрдВрдЧрд╛ рдЬрд╣рд╛рдВ MongoDB рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред
рдпрд╣ рдКрдкрд░ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ рд╕реЗ рджреБрд░реНрдШрдЯрдирд╛рдПрдБ:
![рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдореЗрдВ 6 рдордиреЛрд░рдВрдЬрдХ рд╕рд┐рд╕реНрдЯрдо рдмрдЧ [рдФрд░ рдЙрдирдХрд╛ рд╕рдорд╛рдзрд╛рди]](/wp-content/uploads/2019/03/5de916d270a862cbcbb5ed23c31f698e.jpg)
рдФрд░ рдЗрд╕ рддрд░рд╣ - рдХреЗ рдмрд╛рдж рджреБрд░реНрдШрдЯрдирд╛рдПрдБ:
![рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдореЗрдВ 6 рдордиреЛрд░рдВрдЬрдХ рд╕рд┐рд╕реНрдЯрдо рдмрдЧ [рдФрд░ рдЙрдирдХрд╛ рд╕рдорд╛рдзрд╛рди]](/wp-content/uploads/2019/03/0f32bf1113204cf19f4639a297e40348.jpg)
рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рдореЗрдВ рднреА рддреЗрдЬ рдЙрдЫрд╛рд▓ рдЖрддрд╛ рд╣реИ, рдЬрд┐рд╕ рдкрд░ рдиреЛрдб рдЙрдкрд▓рдмреНрдз рд╣реЛрдирд╛ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ:
![рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдореЗрдВ 6 рдордиреЛрд░рдВрдЬрдХ рд╕рд┐рд╕реНрдЯрдо рдмрдЧ [рдФрд░ рдЙрдирдХрд╛ рд╕рдорд╛рдзрд╛рди]](/wp-content/uploads/2019/03/31e770cac5be32bb7f95cfbbc6b9f1ae.jpg)
рддреЛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд╕реЗ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐:
- рдорд╢реАрди рдкрд░ рд░реИрдо рд╕рдорд╛рдкреНрддрд┐ рдХреЗ рдХрд░реАрдм рд╣реИ;
- рд░реИрдо рдХреА рдЦрдкрдд рдореЗрдВ рддреЗрдЬ рдЙрдЫрд╛рд▓ рдЖрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдкреВрд░реА рдорд╢реАрди рддрдХ рдкрд╣реБрдВрдЪ рдЕрдЪрд╛рдирдХ рдмрдВрдж рд╣реЛ рдЧрдИ рд╣реИ;
- рдореЛрдВрдЧреЛ рдкрд░ рдПрдХ рдмрдбрд╝рд╛ рдХрд╛рд░реНрдп рдЖрддрд╛ рд╣реИ, рдЬреЛ рдбреАрдмреАрдПрдордПрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдФрд░ рдбрд┐рд╕реНрдХ рд╕реЗ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реИред
рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ Linux рдЬрдм рдЦрд╛рд▓реА рдореЗрдореЛрд░реА рдЦрддреНрдо рд╣реЛ рдЬрд╛рддреА рд╣реИ (рдореЗрдореЛрд░реА рдкрд░ рджрдмрд╛рд╡ рдкрдбрд╝рддрд╛ рд╣реИ) рдФрд░ рд╕реНрд╡реИрдк рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрддрд╛, рддрдм рд╕реЗ рдЬрдм OOM рдХрд┐рд▓рд░ рдЖрддрд╛ рд╣реИ, рддреЛ рдкреГрд╖реНрдареЛрдВ рдХреЛ рдкреЗрдЬ рдХреИрд╢ рдореЗрдВ рдлреЗрдВрдХрдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдбрд┐рд╕реНрдХ рдкрд░ рд╡рд╛рдкрд╕ рд▓рд┐рдЦрдиреЗ рдХреЗ рдмреАрдЪ рдПрдХ рд╕рдВрддреБрд▓рди рдХрд╛рд░реНрдп рдЙрддреНрдкрдиреНрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕реЗ kswapd рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдмрд╛рдж рдореЗрдВ рдЖрд╡рдВрдЯрди рдХреЗ рд▓рд┐рдП рдпрдерд╛рд╕рдВрднрд╡ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рдкреЗрдЬреЛрдВ рдХреЛ рдореБрдХреНрдд рдХрд░ рджреЗрддрд╛ рд╣реИред
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рднрд╛рд░реА I/O рд▓реЛрдб рдХреЗ рд╕рд╛рде рдереЛрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдореБрдлреНрдд рдореЗрдореЛрд░реА, kswapd рдкреВрд░реЗ рд╕рд┐рд╕реНрдЯрдо рдХреА рдмрд╛рдзрд╛ рдмрди рдЬрд╛рддрд╛ рд╣реИрдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЗрд╕рд╕реЗ рдмрдВрдзреЗ рд╣реБрдП рд╣реИрдВ рд╕рдм рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдореЗрдореЛрд░реА рдкреЗрдЬреЛрдВ рдХрд╛ рдЖрд╡рдВрдЯрди (рдкреЗрдЬ рджреЛрд╖)ред рдпрд╣ рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЪрд▓ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдЕрдм рдореЗрдореЛрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдУрдУрдПрдо рдХрд┐рд▓рд░ рдПрдмрд┐рд╕ рдХреЗ рдмрд┐рд▓реНрдХреБрд▓ рдХрд┐рдирд╛рд░реЗ рдкрд░ рд╕реНрдерд┐рд░ рд╣реЛ рдЬрд╛рддреА рд╣реИрдВред
рдкреНрд░рд╢реНрди рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд╣реИ: OOM рдХрд┐рд▓рд░ рдЗрддрдиреА рджреЗрд░ рд╕реЗ рдХреНрдпреЛрдВ рдЖрддрд╛ рд╣реИ? рдЕрдкрдиреЗ рд╡рд░реНрддрдорд╛рди рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдореЗрдВ, OOM рдХрд┐рд▓рд░ рдмреЗрд╣рдж рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рд╣реИ: рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХреЗрд╡рд▓ рддрднреА рд╕рдорд╛рдкреНрдд рдХрд░реЗрдЧрд╛ рдЬрдм рдореЗрдореЛрд░реА рдкреЗрдЬ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддред рдпрджрд┐ рдкреГрд╖реНрда рджреЛрд╖ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдЧреБрдЬрд░рддрд╛ рд╣реИред рдпрд╣ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ kswapd рдмрд╣рд╛рджреБрд░реА рд╕реЗ рдкреЗрдЬ рдХреИрд╢ (рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд╕рднреА рдбрд┐рд╕реНрдХ I/O, рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ) рдХреЛ рдбрд┐рд╕реНрдХ рдкрд░ рд╡рд╛рдкрд╕ рдлреНрд▓рд╢ рдХрд░рдХреЗ рдореЗрдореЛрд░реА рдХреЗ рдкреЗрдЬреЛрдВ рдХреЛ рдореБрдХреНрдд рдХрд░рддрд╛ рд╣реИред рдЖрдк рдХрд░реНрдиреЗрд▓ рдореЗрдВ рдРрд╕реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдЦрддреНрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЪрд░рдгреЛрдВ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ .
рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛрд░ рдХреЗ рд╕рд╛рде Linux 4.6 +ред
рдХрд╣рд╛рдиреА 6. рдкреЙрдбреНрд╕ рд▓рдВрдмрд┐рдд рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдлрдВрд╕ рдЬрд╛рддреЗ рд╣реИрдВ
рдХреБрдЫ рд╕рдореВрд╣реЛрдВ рдореЗрдВ, рдЬрд┐рдирдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрдИ рдкреЙрдбреНрд╕ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╣рдордиреЗ рдпрд╣ рджреЗрдЦрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рд░рд╛рдЬреНрдп рдореЗрдВ рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рддрдХ "рд▓рдЯрдХреЗ" рд░рд╣реЗред Pending, рд╣рд╛рд▓рд╛рдБрдХрд┐ рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░ рд╕реНрд╡рдпрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдиреЛрдбреНрд╕ рдкрд░ рдЪрд▓ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЖрдк рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЙрдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕рдХреЗ рд╕рд╛рде рдореЗрдВ describe рдЗрд╕рдореЗрдВ рдХреБрдЫ рднреА рдЧрд▓рдд рдирд╣реАрдВ рд╣реИ:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 1m default-scheduler Successfully assigned sphinx-0 to ss-dev-kub07
Normal SuccessfulAttachVolume 1m attachdetach-controller AttachVolume.Attach succeeded for volume "pvc-6aaad34f-ad10-11e8-a44c-52540035a73b"
Normal SuccessfulMountVolume 1m kubelet, ss-dev-kub07 MountVolume.SetUp succeeded for volume "sphinx-config"
Normal SuccessfulMountVolume 1m kubelet, ss-dev-kub07 MountVolume.SetUp succeeded for volume "default-token-fzcsf"
Normal SuccessfulMountVolume 49s (x2 over 51s) kubelet, ss-dev-kub07 MountVolume.SetUp succeeded for volume "pvc-6aaad34f-ad10-11e8-a44c-52540035a73b"
Normal Pulled 43s kubelet, ss-dev-kub07 Container image "registry.example.com/infra/sphinx-exporter/sphinx-indexer:v1" already present on machine
Normal Created 43s kubelet, ss-dev-kub07 Created container
Normal Started 43s kubelet, ss-dev-kub07 Started container
Normal Pulled 43s kubelet, ss-dev-kub07 Container image "registry.example.com/infra/sphinx/sphinx:v1" already present on machine
Normal Created 42s kubelet, ss-dev-kub07 Created container
Normal Started 42s kubelet, ss-dev-kub07 Started containerрдЗрдзрд░-рдЙрдзрд░ рдЦреЛрдЬрдмреАрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдордиреЗ рдпрд╣ рдзрд╛рд░рдгрд╛ рдмрдирд╛рдИ рдХрд┐ рдХреНрдпреВрдмрд▓реЗрдЯ рдХреЗ рдкрд╛рд╕ рдкреЙрдбреНрд╕ рдХреА рд╕реНрдерд┐рддрд┐, рдЬреАрд╡рдВрддрддрд╛/рддрддреНрдкрд░рддрд╛ рдирдореВрдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╛рд░реА рдЬрд╛рдирдХрд╛рд░реА рдПрдкреАрдЖрдИ рд╕рд░реНрд╡рд░ рдкрд░ рднреЗрдЬрдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рд╣реИред
рдФрд░ рд╕рд╣рд╛рдпрддрд╛ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ рдорд┐рд▓реЗ:
--kube-api-qps - QPS to use while talking with kubernetes apiserver (default 5)
--kube-api-burst - Burst to use while talking with kubernetes apiserver (default 10)
--event-qps - If > 0, limit event creations per second to this value. If 0, unlimited. (default 5)
--event-burst - Maximum size of a bursty event records, temporarily allows event records to burst to this number, while still not exceeding event-qps. Only used if --event-qps > 0 (default 10)
--registry-qps - If > 0, limit registry pull QPS to this value.
--registry-burst - Maximum size of bursty pulls, temporarily allows pulls to burst to this number, while still not exceeding registry-qps. Only used if --registry-qps > 0 (default 10)рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдХрд╛рдлреА рдЫреЛрдЯреЗ рд╣реИрдВ, рдФрд░ 90% рдореЗрдВ рд╡реЗ рд╕рднреА рдЬрд░реВрд░рддреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддреЗ рд╣реИрдВ... рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рдерд╛ред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рди рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
--event-qps=30 --event-burst=40 --kube-api-burst=40 --kube-api-qps=30 --registry-qps=30 --registry-burst=40... рдФрд░ рдХреНрдпреВрдмрд▓реЗрдЯреНрд╕ рдХреЛ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд┐рдпрд╛, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╣рдордиреЗ рдПрдкреАрдЖрдИ рд╕рд░реНрд╡рд░ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЧреНрд░рд╛рдлрд╝ рдкрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд┐рддреНрд░ рджреЗрдЦрд╛:
![рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдореЗрдВ 6 рдордиреЛрд░рдВрдЬрдХ рд╕рд┐рд╕реНрдЯрдо рдмрдЧ [рдФрд░ рдЙрдирдХрд╛ рд╕рдорд╛рдзрд╛рди]](/wp-content/uploads/2019/03/b2ae099729e55a686f6bec3012b96195.jpg)
...рдФрд░ рд╣рд╛рдБ, рд╕рдм рдХреБрдЫ рдЙрдбрд╝рдиреЗ рд▓рдЧрд╛!
рдкреБрдирд╢реНрдЪ
рдмрдЧ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдФрд░ рдЗрд╕ рд▓реЗрдЦ рдХреЛ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдореЗрдВ рдЙрдирдХреА рдорджрдж рдХреЗ рд▓рд┐рдП, рдореИрдВ рд╣рдорд╛рд░реА рдХрдВрдкрдиреА рдХреЗ рдХрдИ рдЗрдВрдЬреАрдирд┐рдпрд░реЛрдВ рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╣рдорд╛рд░реА рдЖрд░ рдПрдВрдб рдбреА рдЯреАрдо рдХреЗ рдореЗрд░реЗ рд╕рд╣рдпреЛрдЧреА рдПрдВрдбреНрд░реА рдХреНрд▓рд┐рдореЗрдВрдЯрдпреЗрд╡ ().
рдкреАрдкреАрдПрд╕
рд╣рдорд╛рд░реЗ рдмреНрд▓реЙрдЧ рдкрд░ рднреА рдкрдврд╝реЗрдВ:
- ┬л'.
- рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдЯрд┐рдкреНрд╕ рдФрд░ рдЯреНрд░рд┐рдХреНрд╕ рд▓реВрдк:
- ┬л";
- ┬л";
- ┬л";
- ┬л'.
рд╕реНрд░реЛрдд: www.habr.com

![рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдореЗрдВ 6 рдордиреЛрд░рдВрдЬрдХ рд╕рд┐рд╕реНрдЯрдо рдмрдЧ [рдФрд░ рдЙрдирдХрд╛ рд╕рдорд╛рдзрд╛рди]](/wp-content/uploads/2019/03/0d15d1de17cd6838fc1cad19615af218.jpg)