Kubernetes рдорд╛ рдиреЗрдЯрд╡рд░реНрдХ рд╡рд┐рд▓рдореНрдмрддрд╛ рдбрд┐рдмрдЧ рдЧрд░реНрджреИ

Kubernetes рдорд╛ рдиреЗрдЯрд╡рд░реНрдХ рд╡рд┐рд▓рдореНрдмрддрд╛ рдбрд┐рдмрдЧ рдЧрд░реНрджреИ

рдХреЗрд╣реА рд╡рд░реНрд╖рдЕрдШрд┐ рдХреБрдмреЗрд░рдиреЗрдЯ рдкрд╣рд┐рд▓реЗ рдиреИ рдЫрд▓рдлрд▓ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ GitHub рдмреНрд▓рдЧрдорд╛ред рддреНрдпрд╕рдмреЗрд▓рд╛рджреЗрдЦрд┐, рдпреЛ рд╕реЗрд╡рд╛рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдорд╛рдирдХ рдкреНрд░рд╡рд┐рдзрд┐ рднрдПрдХреЛ рдЫред Kubernetes рд▓реЗ рдЕрдм рдЖрдиреНрддрд░рд┐рдХ рд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реЗрд╡рд╛рд╣рд░реВрдХреЛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рднрд╛рдЧ рдкреНрд░рдмрдиреНрдз рдЧрд░реНрджрдЫред рд╣рд╛рдореНрд░рд╛ рдХреНрд▓рд╕реНрдЯрд░рд╣рд░реВ рдмрдвреНрджреИ рдЬрд╛рдБрджрд╛ рд░ рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрди рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реВ рдердк рдХрдбрд╛ рд╣реБрдБрджреИ рдЧрдПрдкрдЫрд┐, рд╣рд╛рдореАрд▓реЗ рдХреБрдмреЗрд░рдиреЗрдЯрдХрд╛ рдХреЗрд╣реА рд╕реЗрд╡рд╛рд╣рд░реВрд▓реЗ рдЫрд┐рдЯрдкреБрдЯ рд░реВрдкрдорд╛ рд╡рд┐рд▓рдореНрдмрддрд╛рдХреЛ рдЕрдиреБрднрд╡ рдЧрд░рд┐рд░рд╣реЗрдХрд╛ рдерд┐рдП рдЬреБрди рдПрдкреНрд▓рд┐рдХреЗрд╕рдирдХреЛ рд▓реЛрдбрд▓реЗ рдиреИ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдЧрд░реНрди рд╕рдХрд┐рдБрджреИрдиред

рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдкрдорд╛, рдПрдкреНрд▓рд┐рдХреЗрд╕рдирд╣рд░реВрд▓реЗ 100ms рд╡рд╛ рдмрдвреАрд╕рдореНрдордХреЛ рдЕрдирд┐рдпрдорд┐рдд рдиреЗрдЯрд╡рд░реНрдХ рд╡рд┐рд▓рдореНрдмрддрд╛рдХреЛ рдЕрдиреБрднрд╡ рдЧрд░реНрджрдЫ, рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЯрд╛рдЗрдордЖрдЙрдЯ рд╡рд╛ рдкреБрди: рдкреНрд░рдпрд╛рд╕рд╣рд░реВ рд╣реБрдиреНрдЫрдиреНред рд╕реЗрд╡рд╛рд╣рд░реВрд▓реЗ 100ms рднрдиреНрджрд╛ рдзреЗрд░реИ рдЫрд┐рдЯреЛ рдЕрдиреБрд░реЛрдзрд╣рд░реВрдХреЛ рдЬрд╡рд╛рдл рджрд┐рди рд╕рдХреНрд╖рдо рд╣реБрдиреЗ рдЕрдкреЗрдХреНрд╖рд╛ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред рддрд░ рдпреЛ рдЕрд╕рдореНрднрд╡ рдЫ рдпрджрд┐ рдЬрдбрд╛рди рдЖрдлреИрд▓реЗ рдзреЗрд░реИ рд╕рдордп рд▓рд┐рдиреНрдЫред рдЕрд▓рдЧ рд░реВрдкрдорд╛, рд╣рд╛рдореАрд▓реЗ рдорд┐рд▓рд┐рд╕реЗрдХреЗрдиреНрдб рд▓рд┐рди рдкрд░реНрдиреЗ рдзреЗрд░реИ рдЫрд┐рдЯреЛ MySQL рдкреНрд░рд╢реНрдирд╣рд░реВ рдЕрд╡рд▓реЛрдХрди рдЧрд░реНтАНрдпреМрдВ, рд░ MySQL рд▓реЗ рдорд┐рд▓рд┐рд╕реЗрдХреЗрдиреНрдбрдорд╛ рдкреВрд░рд╛ рдЧрд░реНтАНрдпреЛ, рддрд░ рдЕрдиреБрд░реЛрдз рдЧрд░реНрдиреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧрдХреЛ рдкрд░рд┐рдкреНрд░реЗрдХреНрд╖реНрдпрдорд╛, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд▓реЗ 100 ms рд╡рд╛ рдмрдвреА рд▓рд┐рдпреЛред

рдпреЛ рддреБрд░реБрдиреНрддреИ рд╕реНрдкрд╖реНрдЯ рднрдпреЛ рдХрд┐ рд╕рдорд╕реНрдпрд╛ Kubernetes рдиреЛрдбрдорд╛ рдЬрдбрд╛рди рдЧрд░реНрджрд╛ рдорд╛рддреНрд░ рднрдПрдХреЛ рдерд┐рдпреЛ, рдХрд▓ Kubernetes рдмрд╛рд╣рд┐рд░рдмрд╛рдЯ рдЖрдП рдкрдирд┐ред рд╕рдорд╕реНрдпрд╛ рдкреБрди: рдЙрддреНрдкрд╛рджрди рдЧрд░реНрдиреЗ рд╕рдмреИрднрдиреНрджрд╛ рд╕рдЬрд┐рд▓реЛ рддрд░рд┐рдХрд╛ рдкрд░реАрдХреНрд╖рдгрдорд╛ рдЫ рддрд░рдХрд╛рд░реА, рдЬреБрди рдХреБрдиреИ рдкрдирд┐ рдЖрдиреНрддрд░рд┐рдХ рд╣реЛрд╕реНрдЯрдмрд╛рдЯ рдЪрд▓реНрдЫ, Kubernetes рд╕реЗрд╡рд╛рд▓рд╛рдИ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреЛрд░реНрдЯрдорд╛ рдкрд░реАрдХреНрд╖рдг рдЧрд░реНрдЫ, рд░ рдЫрд┐рдЯрдкреБрдЯ рд░реВрдкрдорд╛ рдЙрдЪреНрдЪ рд╡рд┐рд▓рдореНрдмрддрд╛ рджрд░реНрддрд╛ рдЧрд░реНрджрдЫред рдпрд╕ рд▓реЗрдЦрдорд╛, рд╣рд╛рдореА рдпреЛ рд╕рдорд╕реНрдпрд╛рдХреЛ рдХрд╛рд░рдгрд▓рд╛рдИ рдХрд╕рд░реА рдЯреНрд░реНрдпрд╛рдХ рдЧрд░реНрди рд╕рдХреНрд╖рдо рдерд┐рдпреМрдВ рднрдиреЗрд░ рд╣реЗрд░реНрдиреЗрдЫреМрдВред

рдЕрд╕рдлрд▓рддрд╛ рдирд┐рдореНрддреНрдпрд╛рдЙрдиреЗ рд╢реНрд░реГрдВрдЦрд▓рд╛рдорд╛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЬрдЯрд┐рд▓рддрд╛ рд╣рдЯрд╛рдЙрдиреЗ

рдЙрд╣реА рдЙрджрд╛рд╣рд░рдг рдкреБрди: рдкреНрд░рд╕реНрддреБрдд рдЧрд░реЗрд░, рд╣рд╛рдореА рд╕рдорд╕реНрдпрд╛рдХреЛ рдлреЛрдХрд╕рд▓рд╛рдИ рд╕рдВрдХреАрд░реНрдг рдЧрд░реНрди рд░ рдЬрдЯрд┐рд▓рддрд╛рдХрд╛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рддрд╣рд╣рд░реВ рд╣рдЯрд╛рдЙрди рдЪрд╛рд╣рдиреНрдЫреМрдВред рдкреНрд░рд╛рд░рдореНрднрдорд╛, рддрд░рдХрд╛рд░реА рд░ рдХреБрдмрд░реНрдиреЗрдЯ рдкреЛрдбрд╣рд░реВ рдмреАрдЪрдХреЛ рдкреНрд░рд╡рд╛рд╣рдорд╛ рдзреЗрд░реИ рддрддреНрд╡рд╣рд░реВ рдерд┐рдПред рдЧрд╣рд┐рд░реЛ рд╕рдЮреНрдЬрд╛рд▓ рд╕рдорд╕реНрдпрд╛ рдкрд╣рд┐рдЪрд╛рди рдЧрд░реНрди, рддрдкрд╛рдИрдВрд▓реЗ рддреА рдордзреНрдпреЗ рдХреЗрд╣реАрд▓рд╛рдИ рд╢рд╛рд╕рди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред

Kubernetes рдорд╛ рдиреЗрдЯрд╡рд░реНрдХ рд╡рд┐рд▓рдореНрдмрддрд╛ рдбрд┐рдмрдЧ рдЧрд░реНрджреИ

рдХреНрд▓рд╛рдЗрдиреНрдЯ (Vegeta) рд▓реЗ рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рдХреБрдиреИ рдкрдирд┐ рдиреЛрдбрд╕рдБрдЧ TCP рдЬрдбрд╛рди рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрдЫред Kubernetes рд▓реЗ рдУрднрд░рд▓реЗ рдиреЗрдЯрд╡рд░реНрдХрдХреЛ рд░реВрдкрдорд╛ рдХрд╛рдо рдЧрд░реНрджрдЫ (рдЕрд╡рд╕реНрдерд┐рдд рдбрд╛рдЯрд╛ рд╕реЗрдиреНрдЯрд░ рдиреЗрдЯрд╡рд░реНрдХрдХреЛ рд╢реАрд░реНрд╖рдорд╛) рдЬреБрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ IPIP, рддреНрдпреЛ рд╣реЛ, рдпрд╕рд▓реЗ рдбрд╛рдЯрд╛ рд╕реЗрдиреНрдЯрд░рдХреЛ рдЖрдИрдкреА рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВ рднрд┐рддреНрд░ рдУрднрд░рд▓реЗ рдиреЗрдЯрд╡рд░реНрдХрдХреЛ рдЖрдИрдкреА рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред рдкрд╣рд┐рд▓реЛ рдиреЛрдбрдорд╛ рдЬрдбрд╛рди рдЧрд░реНрджрд╛, рдиреЗрдЯрд╡рд░реНрдХ рдареЗрдЧрд╛рдирд╛ рдЕрдиреБрд╡рд╛рдж рдЧрд░рд┐рдиреНрдЫ рдиреЗрдЯрд╡рд░реНрдХ рдареЗрдЧрд╛рдирд╛ рдЕрдиреБрд╡рд╛рдж (NAT) IP рдареЗрдЧрд╛рдирд╛ рд░ Kubernetes рдиреЛрдбрдХреЛ рдкреЛрд░реНрдЯрд▓рд╛рдИ IP рдареЗрдЧрд╛рдирд╛ рд░ рдУрднрд░рд▓реЗ рдиреЗрдЯрд╡рд░реНрдХрдорд╛ рдкреЛрд░реНрдЯрдорд╛ рдЕрдиреБрд╡рд╛рдж рдЧрд░реНрди рд╕реНрдЯреЗрдЯрдлреБрд▓ (рд╡рд┐рд╢реЗрд╖ рдЧрд░реА, рдЕрдиреБрдкреНрд░рдпреЛрдЧрдХреЛ рд╕рд╛рде рдкреЛрдб)ред рдЖрдЧрдорди рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐, рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рдЙрд▓реНрдЯреЛ рдЕрдиреБрдХреНрд░рдо рдкреНрд░рджрд░реНрд╢рди рдЧрд░рд┐рдиреНрдЫред рдпреЛ рдзреЗрд░реИ рд░рд╛рдЬреНрдп рд░ рдзреЗрд░реИ рддрддреНрд╡рд╣рд░реВрдХреЛ рд╕рд╛рде рдПрдХ рдЬрдЯрд┐рд▓ рдкреНрд░рдгрд╛рд▓реА рд╣реЛ рдЬреБрди рд╕реЗрд╡рд╛рд╣рд░реВ рддреИрдирд╛рдд рд░ рд╕рд╛рд░рд┐рдпреЛ рд░реВрдкрдорд╛ рдирд┐рд░рдиреНрддрд░ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рд░ рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдиреНрдЫрдиреНред

рдЙрдкрдпреЛрдЧрд┐рддрд╛ tcpdump Vegeta рдкрд░реАрдХреНрд╖рдгрдорд╛ TCP рд╣реНрдпрд╛рдиреНрдбрд╢реЗрдХ (SYN рд░ SYN-ACK рдмреАрдЪ) рдХреЛ рд╕рдордпрдорд╛ рдврд┐рд▓рд╛рдЗ рд╣реБрдиреНрдЫред рдпреЛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЬрдЯрд┐рд▓рддрд╛ рд╣рдЯрд╛рдЙрди, рддрдкрд╛рдИрдВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ hping3 SYN рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВрд╕рдБрдЧ рд╕рд░рд▓ "рдкрд┐рдЩрд╣рд░реВ" рдХреЛ рд▓рд╛рдЧрд┐ред рд╣рд╛рдореА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрдпрд╛рдХреЗрдЯрдорд╛ рдврд┐рд▓рд╛рдЗ рднрдПрдХреЛ рдЬрд╛рдБрдЪ рдЧрд░реНрдЫреМрдВ, рд░ рддреНрдпрд╕рдкрдЫрд┐ рдЬрдбрд╛рди рд░рд┐рд╕реЗрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рд╣рд╛рдореА рдбрд╛рдЯрд╛ рдлрд┐рд▓реНрдЯрд░ рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ рдХреЗрд╡рд▓ 100ms рднрдиреНрджрд╛ рдареВрд▓рд╛ рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрди рд░ Vegeta рдХреЛ рдкреВрд░реНрдг рдиреЗрдЯрд╡рд░реНрдХ рддрд╣ 7 рдкрд░реАрдХреНрд╖рдг рднрдиреНрджрд╛ рд╕рдорд╕реНрдпрд╛ рдкреБрди: рдЙрддреНрдкрд╛рджрди рдЧрд░реНрди рд╕рдЬрд┐рд▓реЛ рддрд░рд┐рдХрд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиред рдпрд╣рд╛рдБ 30927ms рдЕрдиреНрддрд░рд╛рд▓рд╣рд░реВрдорд╛ рд╕реЗрд╡рд╛ "рдиреЛрдб рдкреЛрд░реНрдЯ" (10) рдорд╛ TCP SYN/SYN-ACK рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ Kubernetes рдиреЛрдб "рдкрд┐рдЩрд╣рд░реВ" рдЫрдиреН, рд╕рдмреИрднрдиреНрджрд╛ рдврд┐рд▓реЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╣рд░реВрджреНрд╡рд╛рд░рд╛ рдлрд┐рд▓реНрдЯрд░ рдЧрд░рд┐рдПрдХреЛ:

theojulienne@shell ~ $ sudo hping3 172.16.47.27 -S -p 30927 -i u10000 | egrep --line-buffered 'rtt=[0-9]{3}.'

len=46 ip=172.16.47.27 ttl=59 DF id=0 sport=30927 flags=SA seq=1485 win=29200 rtt=127.1 ms

len=46 ip=172.16.47.27 ttl=59 DF id=0 sport=30927 flags=SA seq=1486 win=29200 rtt=117.0 ms

len=46 ip=172.16.47.27 ttl=59 DF id=0 sport=30927 flags=SA seq=1487 win=29200 rtt=106.2 ms

len=46 ip=172.16.47.27 ttl=59 DF id=0 sport=30927 flags=SA seq=1488 win=29200 rtt=104.1 ms

len=46 ip=172.16.47.27 ttl=59 DF id=0 sport=30927 flags=SA seq=5024 win=29200 rtt=109.2 ms

len=46 ip=172.16.47.27 ttl=59 DF id=0 sport=30927 flags=SA seq=5231 win=29200 rtt=109.2 ms

рддреБрд░реБрдиреНрддреИ рдкрд╣рд┐рд▓реЛ рдЕрд╡рд▓реЛрдХрди рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдЕрдиреБрдХреНрд░рдо рд╕рдВрдЦреНрдпрд╛ рд░ рд╕рдордпрд╣рд░реВ рджреНрд╡рд╛рд░рд╛ рдиреНрдпрд╛рдп рдЧрд░реНрджреИ, рдпреЛ рд╕реНрдкрд╖реНрдЯ рдЫ рдХрд┐ рдпреА рдПрдХ рдкрдЯрдХрдХреЛ рднреАрдбрд╣рд░реВ рд╣реЛрдЗрдирдиреНред рдврд┐рд▓рд╛рдЗ рдкреНрд░рд╛рдпрдГ рдЬрдореНрдорд╛ рд╣реБрдиреНрдЫ рд░ рдЕрдиреНрддрддрдГ рдкреНрд░рд╢реЛрдзрди рдЧрд░рд┐рдиреНрдЫред

рдЕрд░реНрдХреЛ, рд╣рд╛рдореА рднреАрдбрдХреЛ рдШрдЯрдирд╛рдорд╛ рдХреБрди рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ рд╕рдВрд▓рдЧреНрди рд╣реБрди рд╕рдХреНрдЫ рднрдиреЗрд░ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрди рдЪрд╛рд╣рдиреНрдЫреМрдВред рд╣реБрдирд╕рдХреНрдЫ рдпреА NAT рдорд╛ рд╕рдпреМрдВ iptables рдирд┐рдпрдорд╣рд░реВ рд╣реБрдиреН? рд╡рд╛ рдиреЗрдЯрд╡рд░реНрдХрдорд╛ IPIP рдЯрдиреЗрд▓рд┐рдЩрдХреЛ рд╕рд╛рде рдХреБрдиреИ рд╕рдорд╕реНрдпрд╛ рдЫ? рдпрд╕рд▓рд╛рдИ рдЬрд╛рдБрдЪ рдЧрд░реНрдиреЗ рдПрдЙрдЯрд╛ рддрд░рд┐рдХрд╛ рднрдиреЗрдХреЛ рдкреНрд░рдгрд╛рд▓реАрдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдгрд▓рд╛рдИ рдореЗрдЯрд╛рдПрд░ рдкрд░реАрдХреНрд╖рдг рдЧрд░реНрдиреБ рд╣реЛред рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ NAT рд░ рдлрд╛рдпрд░рд╡рд╛рд▓ рддрд░реНрдХ рд╣рдЯрд╛рдЙрдиреБрднрдпреЛ рднрдиреЗ, IPIP рднрд╛рдЧ рдорд╛рддреНрд░ рдЫреЛрдбреЗрд░ рдХреЗ рд╣реБрдиреНрдЫ:

Kubernetes рдорд╛ рдиреЗрдЯрд╡рд░реНрдХ рд╡рд┐рд▓рдореНрдмрддрд╛ рдбрд┐рдмрдЧ рдЧрд░реНрджреИ

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

theojulienne@kube-node-client ~ $ sudo hping3 10.125.20.64 -S -i u10000 | egrep --line-buffered 'rtt=[0-9]{3}.'

len=40 ip=10.125.20.64 ttl=64 DF id=0 sport=0 flags=RA seq=7346 win=0 rtt=127.3 ms

len=40 ip=10.125.20.64 ttl=64 DF id=0 sport=0 flags=RA seq=7347 win=0 rtt=117.3 ms

len=40 ip=10.125.20.64 ttl=64 DF id=0 sport=0 flags=RA seq=7348 win=0 rtt=107.2 ms

рдирддрд┐рдЬрд╛ рд╣реЗрд░реНрджрд╛, рд╕рдорд╕реНрдпрд╛ рдЕрдЭреИ рдмрд╛рдБрдХреА рдЫ! рдпрд╕рд▓реЗ iptables рд░ NAT рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджреИрдиред рддреНрдпрд╕реЛрднрдП рд╕рдорд╕реНрдпрд╛ TCP рд╣реЛ? рдПрдХ рдирд┐рдпрдорд┐рдд ICMP рдкрд┐рдВрдЧ рдХрд╕рд░реА рдЬрд╛рдиреНрдЫ рд╣реЗрд░реМрдВ:

theojulienne@kube-node-client ~ $ sudo hping3 10.125.20.64 --icmp -i u10000 | egrep --line-buffered 'rtt=[0-9]{3}.'

len=28 ip=10.125.20.64 ttl=64 id=42594 icmp_seq=104 rtt=110.0 ms

len=28 ip=10.125.20.64 ttl=64 id=49448 icmp_seq=4022 rtt=141.3 ms

len=28 ip=10.125.20.64 ttl=64 id=49449 icmp_seq=4023 rtt=131.3 ms

len=28 ip=10.125.20.64 ttl=64 id=49450 icmp_seq=4024 rtt=121.2 ms

len=28 ip=10.125.20.64 ttl=64 id=49451 icmp_seq=4025 rtt=111.2 ms

len=28 ip=10.125.20.64 ttl=64 id=49452 icmp_seq=4026 rtt=101.1 ms

len=28 ip=10.125.20.64 ttl=64 id=50023 icmp_seq=4343 rtt=126.8 ms

len=28 ip=10.125.20.64 ttl=64 id=50024 icmp_seq=4344 rtt=116.8 ms

len=28 ip=10.125.20.64 ttl=64 id=50025 icmp_seq=4345 rtt=106.8 ms

len=28 ip=10.125.20.64 ttl=64 id=59727 icmp_seq=9836 rtt=106.1 ms

рдирддрд┐рдЬрд╛рд▓реЗ рджреЗрдЦрд╛рдЙрдБрдЫ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рд╣рдЯреЗрдХреЛ рдЫреИрдиред рд╕рд╛рдпрдж рдпреЛ IPIP рд╕реБрд░реБрдЩ рд╣реЛ? рдкрд░реАрдХреНрд╖рдгрд▓рд╛рдИ рдердк рд╕рд░рд▓ рдмрдирд╛рдЙрдиреБрд╣реЛрд╕реН:

Kubernetes рдорд╛ рдиреЗрдЯрд╡рд░реНрдХ рд╡рд┐рд▓рдореНрдмрддрд╛ рдбрд┐рдмрдЧ рдЧрд░реНрджреИ

рдХреЗ рдпреА рджреБрдИ рд╣реЛрд╕реНрдЯрд╣рд░реВ рдмреАрдЪ рд╕рдмреИ рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВ рдкрдард╛рдЗрдиреНрдЫ?

theojulienne@kube-node-client ~ $ sudo hping3 172.16.47.27 --icmp -i u10000 | egrep --line-buffered 'rtt=[0-9]{3}.'

len=46 ip=172.16.47.27 ttl=61 id=41127 icmp_seq=12564 rtt=140.9 ms

len=46 ip=172.16.47.27 ttl=61 id=41128 icmp_seq=12565 rtt=130.9 ms

len=46 ip=172.16.47.27 ttl=61 id=41129 icmp_seq=12566 rtt=120.8 ms

len=46 ip=172.16.47.27 ttl=61 id=41130 icmp_seq=12567 rtt=110.8 ms

len=46 ip=172.16.47.27 ttl=61 id=41131 icmp_seq=12568 rtt=100.7 ms

len=46 ip=172.16.47.27 ttl=61 id=9062 icmp_seq=31443 rtt=134.2 ms

len=46 ip=172.16.47.27 ttl=61 id=9063 icmp_seq=31444 rtt=124.2 ms

len=46 ip=172.16.47.27 ttl=61 id=9064 icmp_seq=31445 rtt=114.2 ms

len=46 ip=172.16.47.27 ttl=61 id=9065 icmp_seq=31446 rtt=104.2 ms

рд╣рд╛рдореАрд▓реЗ рдПрдХрдЕрд░реНрдХрд╛рд▓рд╛рдИ рдХреБрдиреИ рдкрдирд┐ рдкреНрдпрд╛рдХреЗрдЯ, ICMP рдкрд┐рдЩ рдкрдард╛рдЙрдиреЗ рджреБрдИ Kubernetes рдиреЛрдбрд╣рд░реВрдорд╛ рд╕реНрдерд┐рддрд┐рд▓рд╛рдИ рд╕рд░рд▓реАрдХреГрдд рдЧрд░реЗрдХрд╛ рдЫреМрдВред рдпрджрд┐ рд▓рдХреНрд╖рд┐рдд рд╣реЛрд╕реНрдЯ "рдЦрд░рд╛рдм" рдЫ рднрдиреЗ рддрд┐рдиреАрд╣рд░реВ рдЕрдЭреИ рдкрдирд┐ рд╡рд┐рд▓рдореНрдмрддрд╛ рджреЗрдЦреНрдЫрдиреН (рдХреЗрд╣реА рдЕрд░реВ рднрдиреНрджрд╛ рдЦрд░рд╛рдм)ред

рдЕрдм рдЕрдиреНрддрд┐рдо рдкреНрд░рд╢реНрди: рдХрд┐рди рдврд┐рд▓рд╛рдЗ рдХреНрдпреБрдмреЗ-рдиреЛрдб рд╕рд░реНрднрд░рд╣рд░реВрдорд╛ рдорд╛рддреНрд░ рд╣реБрдиреНрдЫ? рд░ рдХреЗ рдпреЛ рд╣реБрдиреНрдЫ рдЬрдм kube-node рдкреНрд░реЗрд╖рдХ рд╡рд╛ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рд╣реЛ? рд╕реМрднрд╛рдЧреНрдп рджреЗрдЦрд┐, Kubernetes рдмрд╛рд╣рд┐рд░ рдПрдХ рд╣реЛрд╕реНрдЯрдмрд╛рдЯ рдкреНрдпрд╛рдХреЗрдЯ рдкрдард╛рдПрд░ рдпреЛ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрди рдкрдирд┐ рдзреЗрд░реИ рд╕рдЬрд┐рд▓реЛ рдЫ, рддрд░ рдЙрд╣реА "рдЬреНрдЮрд╛рдд рдЦрд░рд╛рдм" рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛рд╕рдБрдЧред рддрдкрд╛рдИрд▓реЗ рджреЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рд╕рдорд╕реНрдпрд╛ рд╣рд░рд╛рдПрдХреЛ рдЫреИрди:

theojulienne@shell ~ $ sudo hping3 172.16.47.27 -p 9876 -S -i u10000 | egrep --line-buffered 'rtt=[0-9]{3}.'

len=46 ip=172.16.47.27 ttl=61 DF id=0 sport=9876 flags=RA seq=312 win=0 rtt=108.5 ms

len=46 ip=172.16.47.27 ttl=61 DF id=0 sport=9876 flags=RA seq=5903 win=0 rtt=119.4 ms

len=46 ip=172.16.47.27 ttl=61 DF id=0 sport=9876 flags=RA seq=6227 win=0 rtt=139.9 ms

len=46 ip=172.16.47.27 ttl=61 DF id=0 sport=9876 flags=RA seq=7929 win=0 rtt=131.2 ms

рд╣рд╛рдореА рддреНрдпрд╕рдкрдЫрд┐ рдЕрдШрд┐рд▓реНрд▓реЛ рд╕реНрд░реЛрдд рдХреНрдпреБрдм-рдиреЛрдбрдмрд╛рдЯ рдмрд╛рд╣реНрдп рд╣реЛрд╕реНрдЯрдорд╛ рдЙрд╣реА рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдЪрд▓рд╛рдЙрдиреЗрдЫреМрдВ (рдЬрд╕рд▓реЗ рд╕реНрд░реЛрдд рд╣реЛрд╕реНрдЯрд▓рд╛рдИ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджреИрди рдХрд┐рдирднрдиреЗ рдкрд┐рдЩрд▓реЗ RX рд░ TX рджреБрд╡реИ рдШрдЯрдХ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ):

theojulienne@kube-node-client ~ $ sudo hping3 172.16.33.44 -p 9876 -S -i u10000 | egrep --line-buffered 'rtt=[0-9]{3}.'
^C
--- 172.16.33.44 hping statistic ---
22352 packets transmitted, 22350 packets received, 1% packet loss
round-trip min/avg/max = 0.2/7.6/1010.6 ms

рд╡рд┐рд▓рдореНрдмрддрд╛ рдкреНрдпрд╛рдХреЗрдЯ рдХреНрдпрд╛рдкреНрдЪрд░рд╣рд░реВ рдЬрд╛рдБрдЪ рдЧрд░реЗрд░, рд╣рд╛рдореАрд▓реЗ рдХреЗрд╣реА рдердк рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдпреМрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдкрдорд╛, рдХрд┐ рдкреНрд░реЗрд╖рдХ (рддрд▓) рд▓реЗ рдпреЛ рдЯрд╛рдЗрдордЖрдЙрдЯ рджреЗрдЦреНрдЫ, рддрд░ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ (рд╢реАрд░реНрд╖) рд▓реЗ рдЧрд░реНрджреИрди - рдбреЗрд▓реНрдЯрд╛ рд╕реНрддрдореНрдн (рд╕реЗрдХреЗрдиреНрдбрдорд╛) рд╣реЗрд░реНрдиреБрд╣реЛрд╕реН:

Kubernetes рдорд╛ рдиреЗрдЯрд╡рд░реНрдХ рд╡рд┐рд▓рдореНрдмрддрд╛ рдбрд┐рдмрдЧ рдЧрд░реНрджреИ

рдердк рд░реВрдкрдорд╛, рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдкреНрд░рд╛рдкрдХ рдкрдХреНрд╖рдорд╛ TCP рд░ ICMP рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВ (рдЕрдиреБрдХреНрд░рдо рд╕рдВрдЦреНрдпрд╛рд╣рд░реВрджреНрд╡рд╛рд░рд╛) рдХреЛ рдХреНрд░рдордорд╛ рднрд┐рдиреНрдирддрд╛ рд╣реЗрд░реНрдиреБрднрдпреЛ рднрдиреЗ, ICMP рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВ рд╕рдзреИрдВ рдЙрд╣реА рдЕрдиреБрдХреНрд░рдордорд╛ рдЖрдЗрдкреБрдЧреНрдЫрдиреН рдЬрд╕рдорд╛ рддрд┐рдиреАрд╣рд░реВ рдкрдард╛рдЗрдПрдХрд╛ рдерд┐рдП, рддрд░ рдлрд░рдХ рд╕рдордпрдХрд╛ рд╕рд╛рдеред рдПрдХреИ рд╕рдордпрдорд╛, TCP рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВ рдХрд╣рд┐рд▓реЗрдХрд╛рд╣реАрдВ рдЕрдиреНрддрд░реНрдХреНрд░рд┐рдпрд╛ рдЧрд░реНрдЫрдиреН, рд░ рддрд┐рдиреАрд╣рд░реВрдордзреНрдпреЗ рдХреЗрд╣реА рдЕрдбреНрдХрд┐рдиреНрдЫрдиреНред рд╡рд┐рд╢реЗрд╖ рдЧрд░реА, рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ SYN рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВрдХреЛ рдкреЛрд░реНрдЯрд╣рд░реВ рдЬрд╛рдБрдЪреНрдиреБрднрдпреЛ рднрдиреЗ, рддрд┐рдиреАрд╣рд░реВ рдкреНрд░реЗрд╖рдХрдХреЛ рдкрдХреНрд╖рдорд╛ рдХреНрд░рдордмрджреНрдз рдЫрдиреН, рддрд░ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛рдХреЛ рдкрдХреНрд╖рдорд╛ рдЫреИрдирдиреНред

рдХрд╕рд░реА рдорд╛ рдПрдХ рд╕реВрдХреНрд╖реНрдо рднрд┐рдиреНрдирддрд╛ рдЫ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛рд░реНрдбрд╣рд░реВ рдЖрдзреБрдирд┐рдХ рд╕рд░реНрднрд░рд╣рд░реВ (рдЬрд╕реНрддреИ рд╣рд╛рдореНрд░реЛ рдбрд╛рдЯрд╛ рд╕реЗрдиреНрдЯрд░рдорд╛ рднрдПрдХрд╛) TCP рд╡рд╛ ICMP рднрдПрдХреЛ рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЧрд░реНрджрдЫред рдЬрдм рдкреНрдпрд╛рдХреЗрдЯ рдЖрдЗрдкреБрдЧреНрдЫ, рдиреЗрдЯрд╡рд░реНрдХ рдПрдбрд╛рдкреНрдЯрд░рд▓реЗ "рдкреНрд░рддрд┐ рдЬрдбрд╛рди рдпрд╕рд▓рд╛рдИ рд╣реНрдпрд╛рд╕ рдЧрд░реНрджрдЫ", рдЕрд░реНрдерд╛рддреН, рдпрд╕рд▓реЗ рдЬрдбрд╛рдирд╣рд░реВрд▓рд╛рдИ рд▓рд╛рдорд╣рд░реВрдорд╛ рддреЛрдбреНрди рд░ рдкреНрд░рддреНрдпреЗрдХ рд▓рд╛рдорд▓рд╛рдИ рдЫреБрдЯреНрдЯреИ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛрд░рдорд╛ рдкрдард╛рдЙрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдЫред TCP рдХреЛ рд▓рд╛рдЧрд┐, рдпреЛ рд╣реНрдпрд╛рд╕рд▓реЗ рд╕реНрд░реЛрдд рд░ рдЧрдиреНрддрд╡реНрдп IP рдареЗрдЧрд╛рдирд╛ рд░ рдкреЛрд░реНрдЯ рджреБрд╡реИ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред рдЕрдиреНрдп рд╢рдмреНрджрд╣рд░реВрдорд╛, рдкреНрд░рддреНрдпреЗрдХ рдЬрдбрд╛рди рд╣реНрдпрд╛рд╕ рдЧрд░рд┐рдПрдХреЛ рдЫ (рд╕рдореНрднрд╛рд╡рд┐рдд рд░реВрдкрдорд╛) рдлрд░рдХ рд░реВрдкрдорд╛ред ICMP рдХрд╛ рд▓рд╛рдЧрд┐, IP рдареЗрдЧрд╛рдирд╛рд╣рд░реВ рдорд╛рддреНрд░ рд╣реНрдпрд╛рд╕ рдЧрд░рд┐рдиреНрдЫ, рдХрд┐рдирдХрд┐ рддреНрдпрд╣рд╛рдБ рдХреБрдиреИ рдкреЛрд░реНрдЯрд╣рд░реВ рдЫреИрдирдиреНред

рдЕрд░реНрдХреЛ рдирдпрд╛рдБ рдЕрд╡рд▓реЛрдХрди: рдпрд╕ рдЕрд╡рдзрд┐рдорд╛ рд╣рд╛рдореА рджреБрдИ рд╣реЛрд╕реНрдЯрд╣рд░реВ рдмреАрдЪрдХреЛ рд╕рдмреИ рд╕рдЮреНрдЪрд╛рд░рд╣рд░реВрдорд╛ ICMP рдврд┐рд▓рд╛рдЗ рджреЗрдЦреНрдЫреМрдВ, рддрд░ TCP рд▓реЗ рдЧрд░реНрджреИрдиред рдпрд╕рд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ RX рд▓рд╛рдо рд╣реНрдпрд╛рд╕рд┐рдЩрд╕рдБрдЧ рд╕рдореНрднрд╛рд╡рд┐рдд рдХрд╛рд░рдг рд╕рдореНрдмрдиреНрдзрд┐рдд рдЫ рднрдиреА рдмрддрд╛рдЙрдБрдЫ: рднреАрдб рд▓рдЧрднрдЧ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдкрдорд╛ RX рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВрдХреЛ рдкреНрд░рд╢реЛрдзрдирдорд╛ рдЫ, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рдкрдард╛рдЙрдирдорд╛ рд╣реЛрдЗрдиред

рдпрд╕рд▓реЗ рд╕рдореНрднрд╛рд╡рд┐рдд рдХрд╛рд░рдгрд╣рд░реВрдХреЛ рд╕реВрдЪреАрдмрд╛рдЯ рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВ рдкрдард╛рдЙрди рд╣рдЯрд╛рдЙрдБрдЫред рд╣рд╛рдореАрд▓рд╛рдИ рдЕрдм рдерд╛рд╣рд╛ рдЫ рдХрд┐ рдкреНрдпрд╛рдХреЗрдЯ рдкреНрд░рд╢реЛрдзрди рд╕рдорд╕реНрдпрд╛ рдХреЗрд╣реА рдХреНрдпреБрдм-рдиреЛрдб рд╕рд░реНрднрд░рд╣рд░реВрдорд╛ рдкреНрд░рд╛рдкреНрдд рдкрдХреНрд╖рдорд╛ рдЫред

рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓рдорд╛ рдкреНрдпрд╛рдХреЗрдЯ рдкреНрд░рд╢реЛрдзрди рдмреБрдЭреНрджреИ

рдХреЗрд╣рд┐ рдХреНрдпреБрдм-рдиреЛрдб рд╕рд░реНрднрд░рд╣рд░реВрдорд╛ рд░рд┐рд╕реАрднрд░рдорд╛ рдХрд┐рди рд╕рдорд╕реНрдпрд╛ рд╣реБрдиреНрдЫ рднрдиреЗрд░ рдмреБрдЭреНрдирдХреЛ рд▓рд╛рдЧрд┐, рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓рд▓реЗ рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВ рдХрд╕рд░реА рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрдЫ рд╣реЗрд░реМрдВред

рд╕рд░рд▓ рдкрд░рдореНрдкрд░рд╛рдЧрдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдорд╛ рдлрд░реНрдХреЗрд░, рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛рд░реНрдбрд▓реЗ рдкреНрдпрд╛рдХреЗрдЯ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрджрдЫ рд░ рдкрдард╛рдЙрдБрдЫ рдмрд╛рдзрд╛ рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рддреНрдпрд╣рд╛рдБ рдПрдЙрдЯрд╛ рдкреНрдпрд╛рдХреЗрдЬ рдЫ рдЬреБрди рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдХрд░реНрдиреЗрд▓рд▓реЗ рдЕрдиреНрдп рдХрд╛рдо рд░реЛрдХреНрдЫ, рдЕрдиреНрддрд░реНрдирд┐рд╣рд┐рдд рд╣реНрдпрд╛рдиреНрдбрд▓рд░рдорд╛ рд╕рдиреНрджрд░реНрдн рд╕реНрд╡рд┐рдЪ рдЧрд░реНрдЫ, рдкреНрдпрд╛рдХреЗрдЯ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрдЫ, рд░ рд╣рд╛рд▓рдХреЛ рдХрд╛рд░реНрдпрд╣рд░реВрдорд╛ рдлрд░реНрдХрдиреНрдЫред

Kubernetes рдорд╛ рдиреЗрдЯрд╡рд░реНрдХ рд╡рд┐рд▓рдореНрдмрддрд╛ рдбрд┐рдмрдЧ рдЧрд░реНрджреИ

рдпреЛ рдХрдиреНрдЯреЗрдХреНрд╕реНрдЯ рд╕реНрд╡рд┐рдЪрд┐рдЩ рдврд┐рд▓реЛ рдЫ: 10 рдХреЛ рджрд╢рдХрдорд╛ 90Mbps рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛рд░реНрдбрд╣рд░реВрдорд╛ рд╡рд┐рд▓рдореНрдмрддрд╛ рджреЗрдЦреНрди рдирд╕рдХреНрдиреЗ рд╣реБрди рд╕рдХреНрдЫ, рддрд░ рдЖрдзреБрдирд┐рдХ 10G рдХрд╛рд░реНрдбрд╣рд░реВрдорд╛ рдЕрдзрд┐рдХрддрдо рдереНрд░реБрдкреБрдЯ 15 рдорд┐рд▓рд┐рдпрди рдкреНрдпрд╛рдХреЗрдЯ рдкреНрд░рддрд┐ рд╕реЗрдХреЗрдиреНрдбрдорд╛, рд╕рд╛рдиреЛ рдЖрда-рдХреЛрд░ рд╕рд░реНрднрд░рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдХреЛрд░ рд▓рд╛рдЦреМрдВ рдЕрд╡рд░реЛрдз рд╣реБрди рд╕рдХреНрдЫред рдкреНрд░рддрд┐ рд╕реЗрдХреЗрдиреНрдб рдкрдЯрдХред

рд▓рдЧрд╛рддрд╛рд░ рдЕрд╡рд░реЛрдзрд╣рд░реВ рд╣реНрдпрд╛рдиреНрдбрд▓ рдирдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рдзреЗрд░реИ рд╡рд░реНрд╖ рдкрд╣рд┐рд▓реЗ рд▓рд┐рдирдХреНрд╕ рдердкрд┐рдпреЛ NAPI: рдиреЗрдЯрд╡рд░реНрдХ API рдЬреБрди рд╕рдмреИ рдЖрдзреБрдирд┐рдХ рдбреНрд░рд╛рдЗрднрд░рд╣рд░реВрд▓реЗ рдЙрдЪреНрдЪ рдЧрддрд┐рдорд╛ рдкреНрд░рджрд░реНрд╢рди рд╕реБрдзрд╛рд░ рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫрдиреНред рдХрдо рдЧрддрд┐рдорд╛ рдХрд░реНрдиреЗрд▓рд▓реЗ рдЕрдЭреИ рдкрдирд┐ рдкреБрд░рд╛рдиреЛ рддрд░рд┐рдХрд╛рдорд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛рд░реНрдбрдмрд╛рдЯ рдЕрд╡рд░реЛрдзрд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрджрдЫред рдПрдХрдкрдЯрдХ рдкрд░реНрдпрд╛рдкреНрдд рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВ рдереНрд░реЗрд╕рд╣реЛрд▓реНрдб рднрдиреНрджрд╛ рдмрдврд┐ рдЖрдЗрдкреБрдЧреНрджрд╛, рдХрд░реНрдиреЗрд▓рд▓реЗ рдЕрд╡рд░реЛрдзрд╣рд░реВ рдЕрд╕рдХреНрд╖рдо рдкрд╛рд░реНрдЫ рд░ рдпрд╕рдХреЛ рд╕рдЯреНрдЯрд╛ рд╕рдЮреНрдЬрд╛рд▓ рдПрдбрд╛рдкреНрдЯрд░рдорд╛ рдорддрджрд╛рди рдЧрд░реНрди рд░ рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВ рдЯреБрдХреНрд░рд╛рдорд╛ рдЙрдард╛рдЙрди рдерд╛рд▓реНрдЫред рдкреНрд░рд╢реЛрдзрди softirq рдорд╛ рдкреНрд░рджрд░реНрд╢рди рдЧрд░рд┐рдиреНрдЫ, рдЕрд░реНрдерд╛рддреН, in рд╕рдлреНрдЯрд╡реЗрдпрд░ рдЕрд╡рд░реЛрдзрд╣рд░реВрдХреЛ рд╕рдиреНрджрд░реНрдн рдкреНрд░рдгрд╛рд▓реА рдХрд▓рд╣рд░реВ рд░ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдЕрд╡рд░реЛрдзрд╣рд░реВ рдкрдЫрд┐, рдЬрдм рдХрд░реНрдиреЗрд▓ (рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдард╛рдЙрдБрдХреЛ рд╡рд┐рдкрд░рд┐рдд) рдкрд╣рд┐рд▓реЗ рдиреИ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рд╣реБрдиреНрдЫред

Kubernetes рдорд╛ рдиреЗрдЯрд╡рд░реНрдХ рд╡рд┐рд▓рдореНрдмрддрд╛ рдбрд┐рдмрдЧ рдЧрд░реНрджреИ

рдпреЛ рдзреЗрд░реИ рдЫрд┐рдЯреЛ рдЫ, рддрд░ рдлрд░рдХ рд╕рдорд╕реНрдпрд╛ рдирд┐рдореНрддреНрдпрд╛рдЙрдБрдЫред рдпрджрд┐ рддреНрдпрд╣рд╛рдБ рдзреЗрд░реИ рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВ рдЫрдиреН рднрдиреЗ, рддреНрдпрд╕рдкрдЫрд┐ рд╕рдмреИ рд╕рдордп рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛рд░реНрдбрдмрд╛рдЯ рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрди рдЦрд░реНрдЪ рдЧрд░рд┐рдиреНрдЫ, рд░ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдкреЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрд╕рдБрдЧ рдпреА рд▓рд╛рдорд╣рд░реВ рдЦрд╛рд▓реА рдЧрд░реНрди рд╕рдордп рд╣реБрдБрджреИрди (TCP рдЬрдбрд╛рдирд╣рд░реВ, рдЖрджрд┐рдмрд╛рдЯ рдкрдвреНрджреИ)ред рдЕрдиреНрддрддрдГ рд▓рд╛рдорд╣рд░реВ рднрд░рд┐рдиреНрдЫ рд░ рд╣рд╛рдореА рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВ рдЫреЛрдбреНрди рдерд╛рд▓реНрдЫреМрдВред рд╕рдиреНрддреБрд▓рди рдЦреЛрдЬреНрдиреЗ рдкреНрд░рдпрд╛рд╕рдорд╛, рдХрд░реНрдиреЗрд▓рд▓реЗ softirq рд╕рдиреНрджрд░реНрднрдорд╛ рдкреНрд░рд╢реЛрдзрди рдЧрд░рд┐рдПрдХрд╛ рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВрдХреЛ рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛рдХреЛ рд▓рд╛рдЧрд┐ рдмрдЬреЗрдЯ рд╕реЗрдЯ рдЧрд░реНрджрдЫред рдпреЛ рдмрдЬреЗрдЯ рдирд╛рдШреЗрдкрдЫрд┐ рдЫреБрдЯреНрдЯреИ рдереНрд░реЗрдб рдЬрд╛рдЧреНрдЫ ksoftirqd (рддрдкрд╛рдИрд▓реЗ рддреА рдордзреНрдпреЗ рдПрдХ рджреЗрдЦреНрдиреБрд╣реБрдиреЗрдЫ ps рдкреНрд░рддрд┐ рдХреЛрд░) рдЬрд╕рд▓реЗ рдпреА softirqs рд▓рд╛рдИ рд╕рд╛рдорд╛рдиреНрдп syscall/inrupt path рдмрд╛рд╣рд┐рд░ рд╣реНрдпрд╛рдиреНрдбрд▓ рдЧрд░реНрджрдЫред рдпреЛ рдереНрд░реЗрдб рдорд╛рдирдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЕрдиреБрд╕реВрдЪрдХ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЕрдиреБрд╕реВрдЪрд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЬрд╕рд▓реЗ рд╕реНрд░реЛрддрд╣рд░реВ рдЙрдЪрд┐рдд рд░реВрдкрдорд╛ рдмрд╛рдБрдбрдлрд╛рдБрдб рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрджрдЫред

Kubernetes рдорд╛ рдиреЗрдЯрд╡рд░реНрдХ рд╡рд┐рд▓рдореНрдмрддрд╛ рдбрд┐рдмрдЧ рдЧрд░реНрджреИ

рдХрд░реНрдиреЗрд▓рд▓реЗ рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВ рдХрд╕рд░реА рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрдЫ рднрдиреНрдиреЗ рдЕрдзреНрдпрдпрди рдЧрд░рд┐рд╕рдХреЗрдкрдЫрд┐, рддрдкрд╛рдИрдВрд▓реЗ рджреЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдХрд┐ рддреНрдпрд╣рд╛рдБ рднреАрдб рд╣реБрдиреЗ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдореНрднрд╛рд╡рдирд╛ рдЫред рдпрджрд┐ softirq рдХрд▓рд╣рд░реВ рдХрдо рдмрд╛рд░рдореНрдмрд╛рд░ рдкреНрд░рд╛рдкреНрдд рд╣реБрдиреНрдЫрдиреН рднрдиреЗ, рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВрд▓реЗ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛рд░реНрдбрдорд╛ RX рд▓рд╛рдордорд╛ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрди рдХреЗрд╣реА рд╕рдордп рдкрд░реНрдЦрдиреБрдкрд░реНрдЫред рдпреЛ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛрд░ рдмреНрд▓рдХ рдЧрд░реНрдиреЗ рдХреЗрд╣рд┐ рдХрд╛рд░реНрдпрдХреЛ рдХрд╛рд░рдг рд╣реБрди рд╕рдХреНрдЫ, рд╡рд╛ рдЕрдиреНрдп рдХреЗрд╣рд┐ рдХреЛрд░ рд▓рд╛рдИ softirq рдЪрд▓реНрдирдмрд╛рдЯ рд░реЛрдХрд┐рд░рд╣реЗрдХреЛ рдЫред

рдкреНрд░рд╢реЛрдзрдирд▓рд╛рдИ рдХреЛрд░ рд╡рд╛ рд╡рд┐рдзрд┐рдорд╛ рд╕рдВрдХреБрдЪрд┐рдд рдЧрд░реНрджреИ

Softirq рдврд┐рд▓рд╛рдЗ рдЕрд╣рд┐рд▓реЗрдХреЛ рд▓рд╛рдЧрд┐ рдЕрдиреБрдорд╛рди рдорд╛рддреНрд░ рд╣реЛред рддрд░ рдпрд╕рд▓реЗ рдЕрд░реНрде рд░рд╛рдЦреНрдЫ, рд░ рд╣рд╛рдореАрд▓рд╛рдИ рдерд╛рд╣рд╛ рдЫ рдХрд┐ рд╣рд╛рдореА рдХреЗрд╣рд┐ рдзреЗрд░реИ рд╕рдорд╛рди рджреЗрдЦрд┐рд░рд╣реЗрдХрд╛ рдЫреМрдВред рддреНрдпрд╕реИрд▓реЗ рдЕрд░реНрдХреЛ рдЪрд░рдг рдпреЛ рд╕рд┐рджреНрдзрд╛рдиреНрдд рдкреБрд╖реНрдЯрд┐ рдЧрд░реНрди рд╣реЛред рд░ рдпрджрд┐ рдпреЛ рдкреБрд╖реНрдЯрд┐ рднрдпреЛ рднрдиреЗ, рдврд┐рд▓рд╛рдЗрдХреЛ рдХрд╛рд░рдг рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрдиреБрд╣реЛрд╕реНред

рд╣рд╛рдореНрд░реЛ рдврд┐рд▓реЛ рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВрдорд╛ рдлрд░реНрдХреМрдВ:

len=46 ip=172.16.53.32 ttl=61 id=29573 icmp_seq=1953 rtt=99.3 ms

len=46 ip=172.16.53.32 ttl=61 id=29574 icmp_seq=1954 rtt=89.3 ms

len=46 ip=172.16.53.32 ttl=61 id=29575 icmp_seq=1955 rtt=79.2 ms

len=46 ip=172.16.53.32 ttl=61 id=29576 icmp_seq=1956 rtt=69.1 ms

len=46 ip=172.16.53.32 ttl=61 id=29577 icmp_seq=1957 rtt=59.1 ms

len=46 ip=172.16.53.32 ttl=61 id=29790 icmp_seq=2070 rtt=75.7 ms

len=46 ip=172.16.53.32 ttl=61 id=29791 icmp_seq=2071 rtt=65.6 ms

len=46 ip=172.16.53.32 ttl=61 id=29792 icmp_seq=2072 rtt=55.5 ms

рдкрд╣рд┐рд▓реЗ рдЫрд▓рдлрд▓ рдЧрд░рд┐рдПрдЭреИрдВ, рдпреА ICMP рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВ рдПрдХрд▓ RX NIC рдХрддрд╛рд░рдорд╛ рд╣реНрдпрд╛рд╢ рдЧрд░рд┐рдПрдХрд╛ рдЫрдиреН рд░ рдПрдХрд▓ CPU рдХреЛрд░рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╢реЛрдзрди рдЧрд░рд┐рдиреНрдЫред рдпрджрд┐ рд╣рд╛рдореА рд▓рд┐рдирдХреНрд╕рд▓реЗ рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрдЫ рднрдиреЗрд░ рдмреБрдЭреНрди рдЪрд╛рд╣рдиреНрдЫреМрдВ рднрдиреЗ, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЯреНрд░реНрдпрд╛рдХ рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рдХрд╣рд╛рдБ (рдХреБрди CPU рдХреЛрд░рдорд╛) рд░ рдХрд╕рд░реА (softirq, ksoftirqd) рдпреА рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рдкреНрд░рд╢реЛрдзрди рдЧрд░рд┐рдиреНрдЫ рднрдиреЗрд░ рдЬрд╛рдиреНрди рдЙрдкрдпреЛрдЧреА рд╣реБрдиреНрдЫред

рдЕрдм рдпреЛ рдЙрдкрдХрд░рдгрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рд╕рдордп рд╣реЛ рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓рд▓рд╛рдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордпрдорд╛ рдирд┐рдЧрд░рд╛рдиреА рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рдпрд╣рд╛рдБ рд╣рд╛рдореАрд▓реЗ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдпреМрдВ рдЧреБрдкреНрдд рдмреЛрдзрд╛рд░реНрдеред рдЙрдкрдХрд░рдгрд╣рд░реВрдХреЛ рдпреЛ рд╕реЗрдЯрд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рд╕рд╛рдирд╛ C рдкреНрд░реЛрдЧреНрд░рд╛рдорд╣рд░реВ рд▓реЗрдЦреНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ рдЬрд╕рд▓реЗ рдХрд░реНрдиреЗрд▓рдорд╛ рд╕реНрд╡реЗрдЪреНрдЫрд╛рдЪрд╛рд░реА рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рд╣реБрдХ рдЧрд░реНрджрдЫ рд░ рдШрдЯрдирд╛рд╣рд░реВрд▓рд╛рдИ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛-рд╕реНрдкреЗрд╕ рдкрд╛рдЗрдерди рдкреНрд░реЛрдЧреНрд░рд╛рдордорд╛ рдмрдлрд░ рдЧрд░реНрджрдЫ рдЬрд╕рд▓реЗ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрди рд░ рдкрд░рд┐рдгрд╛рдо рддрдкрд╛рдИрдВрд▓рд╛рдИ рдлрд┐рд░реНрддрд╛ рдЧрд░реНрди рд╕рдХреНрдЫред рдХрд░реНрдиреЗрд▓рдорд╛ рд╕реНрд╡реИрдЪреНрдЫрд┐рдХ рдХрд╛рд░реНрдпрд╣рд░реВ рд╣реБрдХ рдЧрд░реНрдиреБ рдПрдХ рдЬрдЯрд┐рд▓ рд╡рд┐рд╖рдп рд╣реЛ, рддрд░ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдЕрдзрд┐рдХрддрдо рд╕реБрд░рдХреНрд╖рд╛рдХреЛ рд▓рд╛рдЧрд┐ рдбрд┐рдЬрд╛рдЗрди рдЧрд░рд┐рдПрдХреЛ рд╣реЛ рд░ рдкрд░реАрдХреНрд╖рдг рд╡рд╛ рд╡рд┐рдХрд╛рд╕ рд╡рд╛рддрд╛рд╡рд░рдгрдорд╛ рд╕рдЬрд┐рд▓реИрд╕рдБрдЧ рдкреБрди: рдЙрддреНрдкрд╛рджрди рдирд╣реБрдиреЗ рдЙрддреНрдкрд╛рджрди рд╕рдорд╕реНрдпрд╛рд╣рд░реВрдХреЛ рдареАрдХ рдкреНрд░рдХрд╛рд░рдХреЛ рдЯреНрд░реНрдпрд╛рдХ рдЧрд░реНрди рдбрд┐рдЬрд╛рдЗрди рдЧрд░рд┐рдПрдХреЛ рд╣реЛред

рдпрд╣рд╛рдБ рдпреЛрдЬрдирд╛ рд╕рд░рд▓ рдЫ: рд╣рд╛рдореАрд▓рд╛рдИ рдерд╛рд╣рд╛ рдЫ рдХрд┐ рдХрд░реНрдиреЗрд▓рд▓реЗ рдпреА ICMP рдкрд┐рдВрдЧрд╣рд░реВ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрджрдЫ, рддреНрдпрд╕реИрд▓реЗ рд╣рд╛рдореА рдХрд░реНрдиреЗрд▓ рдкреНрд░рдХрд╛рд░реНрдпрдорд╛ рд╣реБрдХ рд░рд╛рдЦреНрдиреЗрдЫреМрдВред icmp_echo, рдЬрд╕рд▓реЗ рдЖрдЧрдорди ICMP рдЗрдХреЛ рдЕрдиреБрд░реЛрдз рдкреНрдпрд╛рдХреЗрдЯ рд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрджрдЫ рд░ ICMP рдЗрдХреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкрдард╛рдЙрди рд╕реБрд░реБ рдЧрд░реНрджрдЫред рд╣рд╛рдореА icmp_seq рдирдореНрдмрд░ рдмрдврд╛рдПрд░ рдкреНрдпрд╛рдХреЗрдЯ рдкрд╣рд┐рдЪрд╛рди рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ, рдЬрд╕рд▓реЗ рджреЗрдЦрд╛рдЙрдБрдЫ hping3 рдЙрдЪреНрдЪред

рдХреЛрдб bcc рд▓рд┐рдкрд┐ рдЬрдЯрд┐рд▓ рджреЗрдЦрд┐рдиреНрдЫ, рддрд░ рдпреЛ рдЬрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ рдЬрд╕реНрддреЛ рдбрд░рд▓рд╛рдЧреНрджреЛ рдЫреИрдиред рд╕рдорд╛рд░реЛрд╣ icmp_echo рдмреБрдЭрд╛рдЙрдБрдЫ struct sk_buff *skb: рдпреЛ "рдЗрдХреЛ рдЕрдиреБрд░реЛрдз" рднрдПрдХреЛ рдкреНрдпрд╛рдХреЗрдЯ рд╣реЛред рд╣рд╛рдореА рдпрд╕рд▓рд╛рдИ рдЯреНрд░реНрдпрд╛рдХ рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ, рдХреНрд░рдо рдмрд╛рд╣рд┐рд░ рдирд┐рдХрд╛рд▓реНрди рд╕рдХреНрдЫреМрдВ echo.sequence (рдЬреБрдирд╕рдБрдЧ рддреБрд▓рдирд╛ рдЧрд░реНрджрдЫ icmp_seq hping3 рджреНрд╡рд╛рд░рд╛ ╨▓╤Л╤И╨╡), рд░ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдкреЗрд╕рдорд╛ рдкрдард╛рдЙрдиреБрд╣реЛрд╕реНред рд╣рд╛рд▓рдХреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд╛рдо/рдЖрдИрдбреА рдХреНрдпрд╛рдкреНрдЪрд░ рдЧрд░реНрди рдпреЛ рдкрдирд┐ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЫред рдХрд░реНрдиреЗрд▓рд▓реЗ рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрджрд╛ рд╣рд╛рдореАрд▓реЗ рдкреНрд░рддреНрдпрдХреНрд╖ рджреЗрдЦреНрдиреЗ рдирддрд┐рдЬрд╛рд╣рд░реВ рддрд▓ рдЫрдиреН:

TGID PID рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд╛рдо ICMP_SEQ 0 0 swapper/11 770 0 0 swapper/11 771 0 0 swapper/11 772 0 0 swapper/11 773 0 0 swapper/11 774 20041 20086 swapper/775 0 0me 11s рез ренренрем реж реж рд╕реНрд╡реИрдкрд░/рез 776 0 0 11 рд╕реНрд╡реИрдкрд░/777 0 0 11 рдкреНрд░рд╡рдХреНрддрд╛-рд░рд┐рдкреЛрд░реНрдЯ-рдПрд╕ 778

рд╕рдиреНрджрд░реНрднрдорд╛ рдпрд╣рд╛рдБ рдЙрд▓реНрд▓реЗрдЦ рдЧрд░реНрдиреБрдкрд░реНрдЫ softirq рдкреНрд░рдгрд╛рд▓реА рдХрд▓ рдЧрд░реНрдиреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ "рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ" рдХреЛ рд░реВрдкрдорд╛ рджреЗрдЦрд╛ рдкрд░реНрдиреЗрдЫ рдЬрдм рд╡рд╛рд╕реНрддрд╡рдорд╛ рдпреЛ рдХрд░реНрдиреЗрд▓ рд╣реЛ рдЬрд╕рд▓реЗ рдХрд░реНрдиреЗрд▓рдХреЛ рд╕рдиреНрджрд░реНрднрдорд╛ рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдкрдорд╛ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрджрдЫред

рдпрд╕ рдЙрдкрдХрд░рдгрдХреЛ рд╕рд╛рде рд╣рд╛рдореА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВрд╕рдБрдЧ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рд╕рдореНрдмрджреНрдз рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ рдЬрд╕рд▓реЗ рдврд┐рд▓рд╛рдЗ рджреЗрдЦрд╛рдЙрдБрджрдЫ hping3ред рдпрд╕рд▓рд╛рдИ рд╕рд░рд▓ рдмрдирд╛рдЙрдиреБрд╣реЛрд╕реН grep рдирд┐рд╢реНрдЪрд┐рдд рдорд╛рдирд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдпреЛ рдХреНрдпрд╛рдкреНрдЪрд░рдорд╛ icmp_seqред рдорд╛рдерд┐рдХреЛ icmp_seq рдорд╛рдирд╣рд░реВрд╕рдБрдЧ рдорд┐рд▓реНрдиреЗ рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВ рд╣рд╛рдореАрд▓реЗ рдорд╛рдерд┐ рдЕрд╡рд▓реЛрдХрди рдЧрд░реЗрдХрд╛ RTT рд╕рдБрдЧрд╕рдБрдЧреИ рдиреЛрдЯ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ (рдХреЛрд╖реНрдардХрд╣рд░реВрдорд╛ рд╣рд╛рдореАрд▓реЗ RTT рдорд╛рдирд╣рд░реВ 50 ms рднрдиреНрджрд╛ рдХрдордХреЛ рдХрд╛рд░рдгрд▓реЗ рдлрд┐рд▓реНрдЯрд░ рдЧрд░реЗрдХрд╛ рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рдЕрдкреЗрдХреНрд╖рд┐рдд RTT рдорд╛рдирд╣рд░реВ рд╣реБрдиреН):

TGID PID рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд╛рдо ICMP_SEQ ** RTT -- 10137 10436 cadvisor 1951 10137 10436 cadvisor 1952 76 76 ksoftirqd/11 1953 ** 99ms 76 76 d11 softq ** 1954ms 89 d76 soft ir qd/76 11 ** 1955ms 79 76 ksoftirqd/ 76 11 ** 1956ms 69 76 ksoftirqd/76 11 ** 1957ms 59 76 ksoftirqd/76 11 ** (1958ms) 49 76 ksoftirqd/76 11 ** (1959ms) 39 ksoftirqd/76 76 ** (11ms) 1960 ksoftirqd/29ms** (76ms) 76 ksoftirqd/11ms** 1961 ksoft irqd/ 19 76 ** (76ms) 11 1962 ksoftirqd/9 10137 ** (10436ms) -- 2068 10137 cadvisor 10436 2069 76 cadvisor 76 11 2070 ksoftirqd/75 76 softir** qd/76 11 ** 2071ms 65 76 ksoftirqd/ 76 11 ** 2072ms 55 76 ksoftirqd/76 11 ** (2073ms) 45 76 ksoftirqd/76 11 ** (2074ms) 35 76 ksoftirqd/76 11 ** (2075ms ** (25ms) ms ) ренрем ренрем ksoftirqd/76 76 ** (11ms)

рдкрд░рд┐рдгрд╛рдорд╣рд░реВрд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ рдзреЗрд░реИ рдХреБрд░рд╛рд╣рд░реВ рдмрддрд╛рдЙрдБрдЫрдиреНред рдкрд╣рд┐рд▓реЛ, рдпреА рд╕рдмреИ рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рд╕рдиреНрджрд░реНрднрджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╢реЛрдзрди рдЧрд░рд┐рдиреНрдЫ ksoftirqd/11ред рдпрд╕рдХреЛ рдорддрд▓рдм рдпреЛ рд╣реЛ рдХрд┐ рдореЗрд╕рд┐рдирд╣рд░реВрдХреЛ рдпреЛ рд╡рд┐рд╢реЗрд╖ рдЬреЛрдбреАрдХреЛ рд▓рд╛рдЧрд┐, ICMP рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗ рдЕрдиреНрддрдорд╛ рдХреЛрд░ 11 рдорд╛ рд╣реНрдпрд╛рд╕ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред рд╣рд╛рдореА рдпреЛ рдкрдирд┐ рджреЗрдЦреНрдЫреМрдВ рдХрд┐ рдЬрдм рддреНрдпрд╣рд╛рдБ рдЬрд╛рдо рд╣реБрдиреНрдЫ, рддреНрдпрд╣рд╛рдБ рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВ рдЫрдиреН рдЬреБрди рдкреНрд░рдгрд╛рд▓реА рдХрд▓рдХреЛ рд╕рдиреНрджрд░реНрднрдорд╛ рдкреНрд░рд╢реЛрдзрди рдЧрд░рд┐рдиреНрдЫред cadvisor... рддреНрдпрд╕реЛ рднрдП ksoftirqd рдХрд╛рд░реНрдп рд▓рд┐рдиреНрдЫ рд░ рд╕рдВрдЪрд┐рдд рдХрддрд╛рд░рд▓рд╛рдИ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрджрдЫ: рдареНрдпрд╛рдХреНрдХреИ рдкрдЫрд┐ рдЬрдореНрдорд╛ рднрдПрдХреЛ рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ cadvisor.

рдпреЛ рддреБрд░реБрдиреНрддреИ рдЕрдШрд┐ рд╕рдзреИрдВ рдХрд╛рдо рдЧрд░реНрджрдЫ рднрдиреНрдиреЗ рддрдереНрдп cadvisor, рд╕рдорд╕реНрдпрд╛рдорд╛ рдЙрдирдХреЛ рд╕рдВрд▓рдЧреНрдирддрд╛ рд╕рдВрдХреЗрдд рдЧрд░реНрджрдЫред рд╡рд┐рдбрдореНрдмрдирд╛, рдЙрджреНрджреЗрд╢реНрдп cadvisor - рдпреЛ рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрди рд╕рдорд╕реНрдпрд╛ рдирд┐рдореНрддреНрдпрд╛рдЙрдиреБрдХреЛ рд╕рдЯреНрдЯрд╛ "рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВрдХреЛ рд╕реНрд░реЛрдд рдЙрдкрдпреЛрдЧ рд░ рдкреНрд░рджрд░реНрд╢рди рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЧрд░реНрдиреБрд╣реЛрд╕реН"ред

рдХрдиреНрдЯреЗрдирд░рдХрд╛ рдЕрдиреНрдп рдкрдХреНрд╖рд╣рд░реВ рдЬрд╕реНрддреИ, рдпреА рд╕рдмреИ рдЙрдЪреНрдЪ рдЙрдиреНрдирдд рдЙрдкрдХрд░рдгрд╣рд░реВ рд╣реБрдиреН рд░ рдХреЗрд╣реА рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдкрд░рд┐рд╕реНрдерд┐рддрд┐рд╣рд░реВрдорд╛ рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрди рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рдЕрдиреБрднрд╡ рдЧрд░реНрдиреЗ рдЖрд╢рд╛ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред

рдХреНрдпрд╛рдбрднрд╛рдЗрдЬрд░рд▓реЗ рдХреЗ рдЧрд░реНрдЫ рдЬрд╕рд▓реЗ рдкреНрдпрд╛рдХреЗрдЯ рд▓рд╛рдорд▓рд╛рдИ рд╕реБрд╕реНрдд рдмрдирд╛рдЙрдБрдЫ?

рд╣рд╛рдореАрд╕рдБрдЧ рдЕрдм рдХрд╕рд░реА рдХреНрд░реНрдпрд╛рд╕ рд╣реБрдиреНрдЫ, рдХреБрди рдкреНрд░рдХреНрд░рд┐рдпрд╛рд▓реЗ рдпреЛ рдирд┐рдореНрддреНрдпрд╛рдЙрдБрдЫ, рд░ рдХреБрди CPU рдорд╛ рд░рд╛рдореНрд░реЛрд╕рдБрдЧ рдмреБрдЭреЗрдХреЛ рдЫред рд╣рд╛рдореА рджреЗрдЦреНрдЫреМрдВ рдХрд┐ рдХрдбрд╛ рдЕрд╡рд░реБрджреНрдзрдХреЛ рдХрд╛рд░рдгрд▓реЗ рдЧрд░реНрджрд╛, рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓рд╕рдБрдЧ рд╕рдордп рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдЙрди рдЫреИрди ksoftirqdред рд░ рд╣рд╛рдореА рджреЗрдЦреНрдЫреМрдВ рдХрд┐ рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВ рд╕рдиреНрджрд░реНрднрдорд╛ рдкреНрд░рд╢реЛрдзрди рдЧрд░рд┐рдиреНрдЫ cadvisorред рдпреЛ рдорд╛рдиреНрди рддрд╛рд░реНрдХрд┐рдХ рдЫ cadvisor рдПрдХ рдврд┐рд▓реЛ syscall рд╕реБрд░реБ рдЧрд░реНрджрдЫ, рдЬрд╕ рдкрдЫрд┐ рддреНрдпрд╕ рд╕рдордпрдорд╛ рд╕рдВрдЪрд┐рдд рд╕рдмреИ рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВ рдкреНрд░рд╢реЛрдзрди рдЧрд░рд┐рдиреНрдЫ:

Kubernetes рдорд╛ рдиреЗрдЯрд╡рд░реНрдХ рд╡рд┐рд▓рдореНрдмрддрд╛ рдбрд┐рдмрдЧ рдЧрд░реНрджреИ

рдпреЛ рдПрдХ рд╕рд┐рджреНрдзрд╛рдиреНрдд рд╣реЛ, рддрд░ рдпрд╕рд▓рд╛рдИ рдХрд╕рд░реА рдкрд░реАрдХреНрд╖рдг рдЧрд░реНрдиреЗ? рд╣рд╛рдореАрд▓реЗ рдХреЗ рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ рдпреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдорд╛ CPU рдХреЛрд░ рдЯреНрд░реЗрд╕ рдЧрд░реНрди, рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рдмрдЬреЗрдЯ рднрдиреНрджрд╛ рдмрдвреА рдЬрд╛рдиреНрдЫ рд░ ksoftirqd рднрдирд┐рдиреНрдЫ рднрдиреНрдиреЗ рдмрд┐рдиреНрджреБ рдлреЗрд▓рд╛ рдкрд╛рд░реНрдиреБрд╣реЛрд╕реН, рд░ рддреНрдпрд╕рдкрдЫрд┐ рддреНрдпреЛ рдмрд┐рдиреНрджреБ рднрдиреНрджрд╛ рдареАрдХ рдЕрдЧрд╛рдбрд┐ CPU рдХреЛрд░рдорд╛ рдХреЗ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдерд┐рдпреЛ рднрдиреЗрд░ рд╣реЗрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдЕрд▓рд┐ рдЕрдЧрд╛рдбрд┐ рд╣реЗрд░реНрдиреБрд╣реЛрд╕реНред ред рдпреЛ рд╣рд░реЗрдХ рдХреЗрд╣реА рдорд┐рд▓рд┐рд╕реЗрдХреЗрдиреНрдбрдорд╛ CPU рд▓рд╛рдИ рдПрдХреНрд╕-рд░реЗ рдЧрд░реНрдиреБ рдЬрд╕реНрддреИ рд╣реЛред рдпреЛ рдХреЗрд╣рд┐ рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреЗрдЫ:

Kubernetes рдорд╛ рдиреЗрдЯрд╡рд░реНрдХ рд╡рд┐рд▓рдореНрдмрддрд╛ рдбрд┐рдмрдЧ рдЧрд░реНрджреИ

рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд░реВрдкрдорд╛, рдпреЛ рд╕рдмреИ рдЕрд╡рд╕реНрдерд┐рдд рдЙрдкрдХрд░рдгрд╣рд░реВрд╕рдБрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, perf рд░реЗрдХрд░реНрдб рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдлреНрд░рд┐рдХреНрд╡реЗрдиреНрд╕реАрдорд╛ рджрд┐рдЗрдПрдХреЛ CPU рдХреЛрд░ рдЬрд╛рдБрдЪ рдЧрд░реНрджрдЫ рд░ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдкреЗрд╕ рд░ рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рджреБрд╡реИ рд╕рд╣рд┐рдд рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдкреНрд░рдгрд╛рд▓реАрдорд╛ рдХрд▓рд╣рд░реВрдХреЛ рддрд╛рд▓рд┐рдХрд╛ рдЙрддреНрдкрдиреНрди рдЧрд░реНрди рд╕рдХреНрдЫред рддрдкрд╛рдЗрдБ рдпреЛ рд░реЗрдХрд░реНрдб рд▓рд┐рди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд░ рдХрд╛рд░реНрдпрдХреНрд░рдордХреЛ рд╕рд╛рдиреЛ рдлреЛрд░реНрдХ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдпрд╕рд▓рд╛рдИ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдлреНрд▓реЗрдордЧреНрд░рд╛рдл рдмреНрд░реЗрдиреНрдбрди рдЧреНрд░реЗрдЧрдмрд╛рдЯ, рдЬрд╕рд▓реЗ рд╕реНрдЯреНрдпрд╛рдХ рдЯреНрд░реЗрд╕рдХреЛ рдХреНрд░рдо рд╕реБрд░рдХреНрд╖рд┐рдд рдЧрд░реНрджрдЫред рд╣рд╛рдореА рдкреНрд░рддреНрдпреЗрдХ 1 ms рдорд╛ рдПрдХрд▓-рд▓рд╛рдЗрди рд╕реНрдЯреНрдпрд╛рдХ рдЯреНрд░реЗрд╕рд╣рд░реВ рдмрдЪрдд рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ, рд░ рддреНрдпрд╕рдкрдЫрд┐ рдЯреНрд░реЗрд╕ рд╣рд┐рдЯ рд╣реБрдиреБ рдЕрдШрд┐ рдирдореВрдирд╛ 100 рдорд┐рд▓рд┐рд╕реЗрдХреЗрдиреНрдб рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рд░ рдмрдЪрдд рдЧрд░реНрди рд╕рдХреНрдЫреМрдВред ksoftirqd:

# record 999 times a second, or every 1ms with some offset so not to align exactly with timers
sudo perf record -C 11 -g -F 999
# take that recording and make a simpler stack trace.
sudo perf script 2>/dev/null | ./FlameGraph/stackcollapse-perf-ordered.pl | grep ksoftir -B 100

рдпрд╣рд╛рдБ рдкрд░рд┐рдгрд╛рдорд╣рд░реВ рдЫрдиреН:

(╤Б╨╛╤В╨╜╨╕ ╤Б╨╗╨╡╨┤╨╛╨▓, ╨║╨╛╤В╨╛╤А╤Л╨╡ ╨▓╤Л╨│╨╗╤П╨┤╤П╤В ╨┐╨╛╤Е╨╛╨╢╨╕╨╝╨╕)

cadvisor;[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];entry_SYSCALL_64_after_swapgs;do_syscall_64;sys_read;vfs_read;seq_read;memcg_stat_show;mem_cgroup_nr_lru_pages;mem_cgroup_node_nr_lru_pages cadvisor;[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];entry_SYSCALL_64_after_swapgs;do_syscall_64;sys_read;vfs_read;seq_read;memcg_stat_show;mem_cgroup_nr_lru_pages;mem_cgroup_node_nr_lru_pages cadvisor;[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];entry_SYSCALL_64_after_swapgs;do_syscall_64;sys_read;vfs_read;seq_read;memcg_stat_show;mem_cgroup_iter cadvisor;[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];entry_SYSCALL_64_after_swapgs;do_syscall_64;sys_read;vfs_read;seq_read;memcg_stat_show;mem_cgroup_nr_lru_pages;mem_cgroup_node_nr_lru_pages cadvisor;[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];[cadvisor];entry_SYSCALL_64_after_swapgs;do_syscall_64;sys_read;vfs_read;seq_read;memcg_stat_show;mem_cgroup_nr_lru_pages;mem_cgroup_node_nr_lru_pages ksoftirqd/11;ret_from_fork;kthread;kthread;smpboot_thread_fn;smpboot_thread_fn;run_ksoftirqd;__do_softirq;net_rx_action;ixgbe_poll;ixgbe_clean_rx_irq;napi_gro_receive;netif_receive_skb_internal;inet_gro_receive;bond_handle_frame;__netif_receive_skb_core;ip_rcv_finish;ip_rcv;ip_forward_finish;ip_forward;ip_finish_output;nf_iterate;ip_output;ip_finish_output2;__dev_queue_xmit;dev_hard_start_xmit;ipip_tunnel_xmit;ip_tunnel_xmit;iptunnel_xmit;ip_local_out;dst_output;__ip_local_out;nf_hook_slow;nf_iterate;nf_conntrack_in;generic_packet;ipt_do_table;set_match_v4;ip_set_test;hash_net4_kadt;ixgbe_xmit_frame_ring;swiotlb_dma_mapping_error;hash_net4_test ksoftirqd/11;ret_from_fork;kthread;kthread;smpboot_thread_fn;smpboot_thread_fn;run_ksoftirqd;__do_softirq;net_rx_action;gro_cell_poll;napi_gro_receive;netif_receive_skb_internal;inet_gro_receive;__netif_receive_skb_core;ip_rcv_finish;ip_rcv;ip_forward_finish;ip_forward;ip_finish_output;nf_iterate;ip_output;ip_finish_output2;__dev_queue_xmit;dev_hard_start_xmit;dev_queue_xmit_nit;packet_rcv;tpacket_rcv;sch_direct_xmit;validate_xmit_skb_list;validate_xmit_skb;netif_skb_features;ixgbe_xmit_frame_ring;swiotlb_dma_mapping_error;__dev_queue_xmit;dev_hard_start_xmit;__bpf_prog_run;__bpf_prog_run

рдпрд╣рд╛рдБ рдзреЗрд░реИ рдЪреАрдЬрд╣рд░реВ рдЫрдиреН, рддрд░ рдореБрдЦреНрдп рдХреБрд░рд╛ рдпреЛ рд╣реЛ рдХрд┐ рд╣рд╛рдореАрд▓реЗ "ksoftirqd рдЕрдШрд┐ cadvisor" рдврд╛рдБрдЪрд╛ рдлреЗрд▓рд╛ рдкрд╛рд░реНрдЫреМрдВ рдЬреБрди рд╣рд╛рдореАрд▓реЗ ICMP рдЯреНрд░реЗрд╕рд░рдорд╛ рдкрд╣рд┐рд▓реЗ рджреЗрдЦреНрдпреМрдВред рдпрд╕рдХреЛ рдорддрд▓рдм рдХреЗ рд╣реЛ?

рдкреНрд░рддреНрдпреЗрдХ рд░реЗрдЦрд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдмрд┐рдиреНрджреБрдорд╛ рдПрдХ CPU рдЯреНрд░реЗрд╕ рд╣реЛред рд░реЗрдЦрд╛рдорд╛ рд╕реНрдЯреНрдпрд╛рдХ рдбрд╛рдЙрди рдкреНрд░рддреНрдпреЗрдХ рдХрд▓ рдПрдХ рдЕрд░реНрдзрд╡рд┐рд░рд╛рдо рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рдЧрд░рд┐рдПрдХреЛ рдЫред рд░реЗрдЦрд╛рд╣рд░реВрдХреЛ рдмреАрдЪрдорд╛ рд╣рд╛рдореА рджреЗрдЦреНрдЫреМрдВ рдХрд┐ syscall рднрдирд┐рдиреНрдЫ: read(): .... ;do_syscall_64;sys_read; ...ред рддреНрдпрд╕реИрд▓реЗ рдХреНрдпрд╛рдбрднрд╛рдЗрдЬрд░рд▓реЗ рдкреНрд░рдгрд╛рд▓реА рдХрд▓рдорд╛ рдзреЗрд░реИ рд╕рдордп рдЦрд░реНрдЪ рдЧрд░реНрджрдЫ read()рдХрд╛рд░реНрдпрд╣рд░реБ рд╕рдВрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд mem_cgroup_* (рдХрд▓ рд╕реНрдЯреНрдпрд╛рдХрдХреЛ рд╢реАрд░реНрд╖/рд▓рд╛рдЗрдирдХреЛ рдЕрдиреНрддреНрдп)ред

рдХрд▓ рдЯреНрд░реЗрд╕рдорд╛ рд╡рд╛рд╕реНрддрд╡рдорд╛ рдХреЗ рдкрдврд┐рд░рд╣реЗрдХреЛ рдЫ рднрдиреЗрд░ рд╣реЗрд░реНрди рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЫ, рддреНрдпрд╕реИрд▓реЗ рджреМрдбреМрдВ strace рд░ рдХреЗрдбрднрд╛рдЗрдЬрд░рд▓реЗ рдХреЗ рдЧрд░реНрдЫ рд╣реЗрд░реМрдВ рд░ 100 ms рднрдиреНрджрд╛ рд▓рд╛рдореЛ рдкреНрд░рдгрд╛рд▓реА рдХрд▓рд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрдиреБрд╣реЛрд╕реН:

theojulienne@kube-node-bad ~ $ sudo strace -p 10137 -T -ff 2>&1 | egrep '<0.[1-9]'
[pid 10436] <... futex resumed> ) = 0 <0.156784>
[pid 10432] <... futex resumed> ) = 0 <0.258285>
[pid 10137] <... futex resumed> ) = 0 <0.678382>
[pid 10384] <... futex resumed> ) = 0 <0.762328>
[pid 10436] <... read resumed> "cache 154234880nrss 507904nrss_h"..., 4096) = 658 <0.179438>
[pid 10384] <... futex resumed> ) = 0 <0.104614>
[pid 10436] <... futex resumed> ) = 0 <0.175936>
[pid 10436] <... read resumed> "cache 0nrss 0nrss_huge 0nmapped_"..., 4096) = 577 <0.228091>
[pid 10427] <... read resumed> "cache 0nrss 0nrss_huge 0nmapped_"..., 4096) = 577 <0.207334>
[pid 10411] <... epoll_ctl resumed> ) = 0 <0.118113>
[pid 10382] <... pselect6 resumed> ) = 0 (Timeout) <0.117717>
[pid 10436] <... read resumed> "cache 154234880nrss 507904nrss_h"..., 4096) = 660 <0.159891>
[pid 10417] <... futex resumed> ) = 0 <0.917495>
[pid 10436] <... futex resumed> ) = 0 <0.208172>
[pid 10417] <... futex resumed> ) = 0 <0.190763>
[pid 10417] <... read resumed> "cache 0nrss 0nrss_huge 0nmapped_"..., 4096) = 576 <0.154442>

рддрдкрд╛рдИрд▓реЗ рдЕрдкреЗрдХреНрд╖рд╛ рдЧрд░реЗ рдЬрд╕реНрддреИ, рд╣рд╛рдореА рдпрд╣рд╛рдБ рдврд┐рд▓реЛ рдХрд▓рд╣рд░реВ рджреЗрдЦреНрдЫреМрдВ read()ред рдкрдвреНрдиреЗ рдХрд╛рд░реНрдпрд╣рд░реВ рд░ рд╕рдиреНрджрд░реНрднрдХреЛ рд╕рд╛рдордЧреНрд░реАрдмрд╛рдЯ mem_cgroup рдпреЛ рд╕реНрдкрд╖реНрдЯ рдЫ рдХрд┐ рдпреА рдЪреБрдиреМрддреАрд╣рд░реВ read() рдлрд╛рдЗрд▓ рд╕рдиреНрджрд░реНрдн рдЧрд░реНрдиреБрд╣реЛрд╕реН memory.stat, рдЬрд╕рд▓реЗ рдореЗрдореЛрд░реА рдкреНрд░рдпреЛрдЧ рд░ cgroup рд╕реАрдорд╛рд╣рд░реВ (рдбрдХрд░рдХреЛ рд╕реНрд░реЛрдд рдЕрд▓рдЧрд╛рд╡ рдкреНрд░рд╡рд┐рдзрд┐) рджреЗрдЦрд╛рдЙрдБрдЫред рдХреНрдпрд╛рдбрднрд╛рдЗрдЬрд░ рдЙрдкрдХрд░рдгрд▓реЗ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕реНрд░реЛрдд рдкреНрд░рдпреЛрдЧ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдпреЛ рдлрд╛рдЗрд▓рд▓рд╛рдИ рд╕реЛрдзреНрдЫред рдпреЛ рдХрд░реНрдиреЗрд▓ рд╡рд╛ рдХреНрдпрд╛рдбрднрд╛рдЗрдЬрд░рд▓реЗ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдХрд╛рдо рдЧрд░рд┐рд░рд╣реЗрдХреЛ рдЫ рдХрд┐ рдЫреИрди рдЬрд╛рдБрдЪ рдЧрд░реМрдВ:

theojulienne@kube-node-bad ~ $ time cat /sys/fs/cgroup/memory/memory.stat >/dev/null

real 0m0.153s
user 0m0.000s
sys 0m0.152s
theojulienne@kube-node-bad ~ $

рдЕрдм рд╣рд╛рдореА рдмрдЧ рдкреБрди: рдЙрддреНрдкрд╛рджрди рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ рд░ рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓рд▓реЗ рд░реЛрдЧрд╡рд┐рдЬреНрдЮрд╛рдирдХреЛ рд╕рд╛рдордирд╛ рдЧрд░рд┐рд░рд╣реЗрдХреЛ рдЫ рднрдиреЗрд░ рдмреБрдЭреНрди рд╕рдХреНрдЫреМрдВред

рдХрд┐рди рдкрдвреНрдиреЗ рдХрд╛рд░реНрдп рдпрддрд┐ рдврд┐рд▓реЛ рдЫ?

рдпрд╕ рдЪрд░рдгрдорд╛, рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛рд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдЕрдиреНрдп рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрдмрд╛рдЯ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рдзреЗрд░реИ рд╕рдЬрд┐рд▓реЛ рдЫред рдЬрд╕рд░реА рдпреЛ рдмрд╛рд╣рд┐рд░рд┐рдпреЛ, рдХреНрдпрд╛рдбрднрд╛рдЗрдЬрд░ рдЯреНрд░реНрдпрд╛рдХрд░рдорд╛ рдпреЛ рдмрдЧрдХреЛ рд░реВрдкрдорд╛ рд░рд┐рдкреЛрд░реНрдЯ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ рдЕрддреНрдпрдзрд┐рдХ CPU рдЙрдкрдпреЛрдЧ рдХреЛ рд╕рдорд╕реНрдпрд╛, рдпреЛ рдорд╛рддреНрд░ рд╣реЛ рдХрд┐ рдХрд╕реИрд▓реЗ рдкрдирд┐ рдпрд╛рдж рдЧрд░реЗрди рдХрд┐ рд╡рд┐рд▓рдореНрдмрддрд╛ рдкрдирд┐ рдиреЗрдЯрд╡рд░реНрдХ рд╕реНрдЯреНрдпрд╛рдХрдорд╛ рдЕрдирд┐рдпрдорд┐рдд рд░реВрдкрдорд╛ рдкреНрд░рддрд┐рдмрд┐рдореНрдмрд┐рдд рд╣реБрдиреНрдЫред рдпреЛ рд╡рд╛рд╕реНрддрд╡рдорд╛ рдпрд╛рдж рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ рдХрд┐ рдХреНрдпрд╛рдбрднрд╛рдЗрдЬрд░рд▓реЗ рдЕрдкреЗрдХреНрд╖рд╛ рдЧрд░реЗ рднрдиреНрджрд╛ рдмрдвреА CPU рд╕рдордп рдЦрдкрдд рдЧрд░рд┐рд░рд╣реЗрдХреЛ рдерд┐рдпреЛ, рддрд░ рдпрд╕рд▓рд╛рдИ рдзреЗрд░реИ рдорд╣рддреНрд╡ рджрд┐рдЗрдПрди, рд╣рд╛рдореНрд░реЛ рд╕рд░реНрднрд░рд╣рд░реВрдорд╛ рдзреЗрд░реИ CPU рд╕реНрд░реЛрддрд╣рд░реВ рдЫрдиреН, рддреНрдпрд╕реИрд▓реЗ рд╕рдорд╕реНрдпрд╛рд▓рд╛рдИ рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рдЕрдзреНрдпрдпрди рдЧрд░рд┐рдПрдХреЛ рдерд┐рдПрдиред

рд╕рдорд╕реНрдпрд╛ рдпреЛ рд╣реЛ рдХрд┐ cgroups рд▓реЗ рдиреЗрдорд╕реНрдкреЗрд╕ (рдХрдиреНрдЯреЗрдирд░) рднрд┐рддреНрд░ рдореЗрдореЛрд░реА рдЙрдкрдпреЛрдЧ рдЦрд╛рддрд╛рдорд╛ рд▓рд┐рдиреНрдЫред рдЬрдм рдпреЛ cgroup рдорд╛ рд╕рдмреИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реБ рдмрд╛рд╣рд┐рд░ рдирд┐рд╕реНрдХрдиреНрдЫ, Docker рд▓реЗ рдореЗрдореЛрд░реА cgroup рдЬрд╛рд░реА рдЧрд░реНрджрдЫред рдпрджреНрдпрдкрд┐, "рдореЗрдореЛрд░реА" рдХреЗрд╡рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдореЛрд░реА рд╣реЛрдЗрдиред рдпрджреНрдпрдкрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдореЛрд░реА рдЖрдлреИрдВрдорд╛ рдЕрдм рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ рдЫреИрди, рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ рдХрд┐ рдХрд░реНрдиреЗрд▓рд▓реЗ рдЕрдЭреИ рдкрдирд┐ рдХреНрдпрд╛рд╕ рдЧрд░рд┐рдПрдХрд╛ рд╕рд╛рдордЧреНрд░реАрд╣рд░реВ, рдЬрд╕реНрддреИ рдбреЗрдиреНрдЯреНрд░реАрд╣рд░реВ рд░ рдЗрдиреЛрдбрд╣рд░реВ (рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реА рд░ рдлрд╛рдЗрд▓ рдореЗрдЯрд╛рдбреЗрдЯрд╛), рдЬреБрди рдореЗрдореЛрд░реА cgroup рдорд╛ рдХреНрдпрд╛рд╕ рдЧрд░рд┐рдиреНрдЫред рд╕рдорд╕реНрдпрд╛ рд╡рд┐рд╡рд░рдгрдмрд╛рдЯ:

zombie cgroups: cgroups рдЬрд╕рдорд╛ рдХреБрдиреИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рдЫреИрдирдиреН рд░ рдореЗрдЯрд╛рдЗрдПрдХреЛ рдЫ, рддрд░ рдЕрдЭреИ рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫ (рдореЗрд░реЛ рдХреЗрд╕рдорд╛, рдбреЗрдиреНрдЯреНрд░реА рдХреНрдпрд╛рд╕рдмрд╛рдЯ, рддрд░ рдпреЛ рдкреГрд╖реНрда рдХреНрдпрд╛рд╕ рд╡рд╛ tmpfs рдмрд╛рдЯ рдкрдирд┐ рдЖрд╡рдВрдЯрд┐рдд рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ)ред

cgroup рдЦрд╛рд▓реА рдЧрд░реНрджрд╛ рдХреНрдпрд╛рд╕рдорд╛ рд╕рдмреИ рдкреГрд╖реНрдард╣рд░реВрдХреЛ рдХрд░реНрдиреЗрд▓ рдЬрд╛рдБрдЪ рдзреЗрд░реИ рдврд┐рд▓реЛ рд╣реБрди рд╕рдХреНрдЫ, рддреНрдпрд╕реИрд▓реЗ рдЕрд▓реНрдЫреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЫрдиреЛрдЯ рдЧрд░рд┐рдПрдХреЛ рдЫ: рдпреА рдкреГрд╖реНрдард╣рд░реВ рдкреБрди: рдЕрдиреБрд░реЛрдз рдирдЧрд░реЗрд╕рдореНрдо рдкрд░реНрдЦрдиреБрд╣реЛрд╕реН, рд░ рддреНрдпрд╕рдкрдЫрд┐ рдЕрдиреНрддрдорд╛ cgroup рдЦрд╛рд▓реА рдЧрд░реНрдиреБрд╣реЛрд╕реН рдЬрдм рдореЗрдореЛрд░реА рд╡рд╛рд╕реНрддрд╡рдорд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реБрдиреНрдЫред рдпрд╕ рдмрд┐рдиреНрджреБ рд╕рдореНрдо, рддрдереНрдпрд╛рдЩреНрдХ рд╕рдЩреНрдХрд▓рди рдЧрд░реНрджрд╛ cgroup рдЕрдЭреИ рдкрдирд┐ рдЦрд╛рддрд╛рдорд╛ рд▓рд┐рдЗрдиреНрдЫред

рдкреНрд░рджрд░реНрд╢рди рджреГрд╖реНрдЯрд┐рдХреЛрдгрдмрд╛рдЯ, рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдкреНрд░рджрд░реНрд╢рдирдХреЛ рд▓рд╛рдЧрд┐ рдореЗрдореЛрд░реА рдмрд▓рд┐рджрд╛рди рджрд┐рдП: рдХреЗрд╣реА рдХреНрдпрд╛рд╕ рдореЗрдореЛрд░реА рдкрдЫрд╛рдбрд┐ рдЫреЛрдбреЗрд░ рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рд╕рдлрд╛рдИрдХреЛ рдЧрддрд┐ рдмрдврд╛рдЙрдБрджреИред рдпреЛ рдареАрдХ рдЫред рдЬрдм рдХрд░реНрдиреЗрд▓рд▓реЗ рдХреНрдпрд╛рд╕ рдореЗрдореЛрд░реАрдХреЛ рдЕрдиреНрддрд┐рдо рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫ, cgroup рдЕрдиреНрддрддрдГ рдЦрд╛рд▓реА рд╣реБрдиреНрдЫ, рддреНрдпрд╕реИрд▓реЗ рдпрд╕рд▓рд╛рдИ "рд▓реАрдХ" рднрдиреНрди рд╕рдХрд┐рдБрджреИрдиред рджреБрд░реНрднрд╛рдЧреНрдпрд╡рд╢, рдЦреЛрдЬ рд╕рдВрдпрдиреНрддреНрд░рдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди memory.stat рдпреЛ рдХрд░реНрдиреЗрд▓ рд╕рдВрд╕реНрдХрд░рдгрдорд╛ (4.9), рд╣рд╛рдореНрд░реЛ рд╕рд░реНрднрд░рд╣рд░реВрдорд╛ рдореЗрдореЛрд░реАрдХреЛ рдареВрд▓реЛ рдорд╛рддреНрд░рд╛рд╕рдБрдЧ рдЬреЛрдбрд┐рдПрдХреЛ рдЫ, рдпрд╕рдХреЛ рдорддрд▓рдм рдкрдЫрд┐рд▓реНрд▓реЛ рдХреНрдпрд╛рд╕ рдбрд╛рдЯрд╛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рд░ cgroup zombies рдЦрд╛рд▓реА рдЧрд░реНрди рдзреЗрд░реИ рд╕рдордп рд▓рд╛рдЧреНрдЫред

рдпреЛ рдмрд╛рд╣рд┐рд░ рдЬрд╛рдиреНрдЫ рдХрд┐ рд╣рд╛рдореНрд░рд╛ рдХреЗрд╣реА рдиреЛрдбрд╣рд░реВрдорд╛ рдпрддрд┐ рдзреЗрд░реИ cgroup zombies рдерд┐рдП рдХрд┐ рдкрдвреНрдиреЗ рд░ рд╡рд┐рд▓рдореНрдмрддрд╛ рдПрдХ рд╕реЗрдХреЗрдиреНрдб рдирд╛рдШреНрдпреЛред

рдХреНрдпрд╛рдбрднрд╛рдЗрдЬрд░ рд╕рдорд╕реНрдпрд╛рдХреЛ рд╕рдорд╛рдзрд╛рди рднрдиреЗрдХреЛ рдкреНрд░рдгрд╛рд▓реАрднрд░рд┐ рддреБрд░реБрдиреНрддреИ рдбреЗрдиреНрдЯреНрд░реА/рдЗрдиреЛрдб рдХреНрдпрд╛рд╕рд╣рд░реВ рдореБрдХреНрдд рдЧрд░реНрдиреБ рд╣реЛ, рдЬрд╕рд▓реЗ рддреБрд░реБрдиреНрддреИ рд╣реЛрд╕реНрдЯрдорд╛ рдкрдвреНрдиреЗ рд▓реЗрдЯрдиреНрд╕реА рд░ рдиреЗрдЯрд╡рд░реНрдХ рд▓реЗрдЯрдиреНрд╕реА рд╣рдЯрд╛рдЙрдБрдЫ, рдХрд┐рдирдХрд┐ рдХреНрдпрд╛рд╕ рдЦрд╛рд▓реА рдЧрд░реНрджрд╛ рдХреНрдпрд╛рд╕ рдЧрд░рд┐рдПрдХреЛ zombie cgroup рдкреГрд╖реНрдард╣рд░реВ рд╕рдХреНрд░рд┐рдп рд╣реБрдиреНрдЫ рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдкрдирд┐ рдореБрдХреНрдд рдЧрд░реНрджрдЫред рдпреЛ рдПрдХ рд╕рдорд╛рдзрд╛рди рд╣реЛрдЗрди, рддрд░ рдпрд╕рд▓реЗ рд╕рдорд╕реНрдпрд╛рдХреЛ рдХрд╛рд░рдг рдкреБрд╖реНрдЯрд┐ рдЧрд░реНрджрдЫред

рдирдпрд╛рдБ рдХрд░реНрдиреЗрд▓ рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВрдорд╛ (4.19+) рдХрд▓ рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрди рд╕реБрдзрд╛рд░рд┐рдПрдХреЛ рдерд┐рдпреЛ memory.stat, рддреНрдпрд╕реИрд▓реЗ рдпреЛ рдХрд░реНрдиреЗрд▓рдорд╛ рд╕реНрд╡рд┐рдЪ рдЧрд░реНрджрд╛ рд╕рдорд╕реНрдпрд╛ рд╕рдорд╛рдзрд╛рди рднрдпреЛред рдПрдХреИ рд╕рдордпрдорд╛, рд╣рд╛рдореАрд╕рдБрдЧ Kubernetes рдХреНрд▓рд╕реНрдЯрд░рд╣рд░реВрдорд╛ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рдиреЛрдбрд╣рд░реВ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрди, рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рд░рд╛рдореНрд░реЛрд╕рдБрдЧ рдирд┐рдХрд╛рд▓реНрдиреЗ рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рд░рд┐рдмреБрдЯ рдЧрд░реНрдиреЗ рдЙрдкрдХрд░рдгрд╣рд░реВ рдерд┐рдПред рд╣рд╛рдореАрд▓реЗ рд╕рдмреИ рдХреНрд▓рд╕реНрдЯрд░рд╣рд░реВ рдХрдореНрдмреЗрдб рдЧрд░реНрдпреМрдВ, рдкрд░реНрдпрд╛рдкреНрдд рдЙрдЪреНрдЪ рд╡рд┐рд▓рдореНрдмрддрд╛ рднрдПрдХрд╛ рдиреЛрдбрд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрдпреМрдВ рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рд░рд┐рдмреБрдЯ рдЧрд░реНтАНрдпреМрдВред рдпрд╕рд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ рдмрд╛рдБрдХреА рд╕рд░реНрднрд░рд╣рд░реВрдорд╛ OS рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реНрди рд╕рдордп рджрд┐рдпреЛред

рд╕рдВрдХреНрд╖реЗрдк рдЧрд░реНрди

рдХрд┐рдирднрдиреЗ рдпреЛ рдмрдЧрд▓реЗ рд╕рдпреМрдВ рдорд┐рд▓рд┐рд╕реЗрдХреЗрдиреНрдбрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ RX NIC рдХрддрд╛рд░ рдкреНрд░рд╢реЛрдзрди рд░реЛрдХреЗрдХреЛ рдЫ, рдпрд╕рд▓реЗ рдПрдХреИрд╕рд╛рде рдЫреЛрдЯреЛ рдЬрдбрд╛рдирд╣рд░реВрдорд╛ рдЙрдЪреНрдЪ рд╡рд┐рд▓рдореНрдмрддрд╛ рд░ MySQL рдЕрдиреБрд░реЛрдзрд╣рд░реВ рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрдпрд╛рдХреЗрдЯрд╣рд░реВ рдмреАрдЪрдХреЛ рдордзреНрдп-рдЬрдбрд╛рди рд╡рд┐рд▓рдореНрдмрддрд╛рдХреЛ рдХрд╛рд░рдг рдмрдирд╛рдпреЛред

Kubernetes рдЬрд╕реНрддрд╛ рд╕рдмреИрднрдиреНрджрд╛ рдЖрдзрд╛рд░рднреВрдд рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдХреЛ рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрди рдмреБрдЭреНрди рд░ рдХрд╛рдпрдо рд░рд╛рдЦреНрдиреБ рддрд┐рдиреАрд╣рд░реВрдорд╛ рдЖрдзрд╛рд░рд┐рдд рд╕рдмреИ рд╕реЗрд╡рд╛рд╣рд░реВрдХреЛ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рд░ рдЧрддрд┐рдХреЛ рд▓рд╛рдЧрд┐ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЫред рддрдкрд╛рдИрдВрд▓реЗ рдЪрд▓рд╛рдЙрдиреБрднрдПрдХреЛ рд╣рд░реЗрдХ рдкреНрд░рдгрд╛рд▓реАрд▓реЗ Kubernetes рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрди рд╕реБрдзрд╛рд░рд╣рд░реВрдмрд╛рдЯ рдлрд╛рдЗрджрд╛ рд▓рд┐рдиреНрдЫред

рд╕реНрд░реЛрдд: www.habr.com

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