CPU рдорд░реНрдпрд╛рджрд╛ рдЖрдгрд┐ Kubernetes рдордзреНрдпреЗ рдЖрдХреНрд░рдордХ рдереНрд░реЙрдЯрд▓рд┐рдВрдЧ

рдиреЛрдВрдж. рдЕрдиреБрд╡рд╛рдж: рдУрдорд┐рдУрдЪрд╛ рд╣рд╛ рдбреЛрд│рд╛ рдЙрдШрдбрдгрд╛рд░рд╛ рдЗрддрд┐рд╣рд╛рд╕тАФрдПрдХ рдпреБрд░реЛрдкрд┐рдпрди рдЯреНрд░реЕрд╡реНрд╣рд▓ рдПрдЧреНрд░реАрдЧреЗрдЯрд░тАФрд╡рд╛рдЪрдХрд╛рдВрдирд╛ рдореВрд▓рднреВрдд рд╕рд┐рджреНрдзрд╛рдВрддрд╛рдкрд╛рд╕реВрди рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирдЪреНрдпрд╛ рдЖрдХрд░реНрд╖рдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЧреБрдВрддрд╛рдЧреБрдВрддреАрдВрдкрд░реНрдпрдВрдд рдШреЗрдКрди рдЬрд╛рддреЛ. рдЕрд╢рд╛ рдкреНрд░рдХрд░рдгрд╛рдВрдЪреА рдУрд│рдЦ рдХреЗрд╡рд│ рддреБрдордЪреА рдХреНрд╖рд┐рддрд┐рдЬреЗрдЪ рд╡рд┐рд╕реНрддреГрдд рдХрд░рдд рдирд╛рд╣реА рддрд░ рдХреНрд╖реБрд▓реНрд▓рдХ рд╕рдорд╕реНрдпрд╛ рдЯрд╛рд│рдгреНрдпрд╛рд╕ рджреЗрдЦреАрд▓ рдорджрдд рдХрд░рддреЗ.

CPU рдорд░реНрдпрд╛рджрд╛ рдЖрдгрд┐ Kubernetes рдордзреНрдпреЗ рдЖрдХреНрд░рдордХ рдереНрд░реЙрдЯрд▓рд┐рдВрдЧ

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

TL; рдбреЙ:
рдЖрдкрдг CFS рдХреЛрдЯрд╛ рдмрдЧрд╕рд╣ рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдирд▓рдЪреА рдЖрд╡реГрддреНрддреА рд╡рд╛рдкрд░рдд рдЕрд╕рд▓реНрдпрд╛рд╕ Kubernetes (рдХрд┐рдВрд╡рд╛ Kubelet рдордзреНрдпреЗ CFS рдХреЛрдЯрд╛ рдЕрдХреНрд╖рдо рдХрд░рдгреЗ) рдордзреНрдпреЗ CPU рдорд░реНрдпрд╛рджрд╛ рдЕрдХреНрд╖рдо рдХрд░рдгреНрдпрд╛рдЪреА рдЖрдореНрд╣реА рдЬреЛрд░рджрд╛рд░ рд╢рд┐рдлрд╛рд░рд╕ рдХрд░рддреЛ. рдЧрд╛рднреНрдпрд╛рдордзреНрдпреЗ рдЙрдкрд▓рдмреНрдз рдЖрд╣реЗ рдЧрдВрднреАрд░ рдЖрдгрд┐ рд╕реБрдкреНрд░рд╕рд┐рджреНрдз рдПрдХ рдмрдЧ рдЬреНрдпрд╛рдореБрд│реЗ рдЬрд╛рд╕реНрдд рдереНрд░реЙрдЯрд▓рд┐рдВрдЧ рдЖрдгрд┐ рд╡рд┐рд▓рдВрдм рд╣реЛрддреЛ
.

Omio рдордзреНрдпреЗ рд╕рдВрдкреВрд░реНрдг рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛ Kubernetes рджреНрд╡рд╛рд░реЗ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд. рдЖрдордЪреЗ рд╕рд░реНрд╡ рд╕реНрдЯреЗрдЯрдлреБрд▓ рдЖрдгрд┐ рд╕реНрдЯреЗрдЯрд▓реЗрд╕ рд╡рд░реНрдХрд▓реЛрдб рдХреЗрд╡рд│ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рд╡рд░ рдЪрд╛рд▓рддрд╛рдд (рдЖрдореНрд╣реА Google Kubernetes рдЗрдВрдЬрд┐рди рд╡рд╛рдкрд░рддреЛ). рдЧреЗрд▓реНрдпрд╛ рд╕рд╣рд╛ рдорд╣рд┐рдиреНрдпрд╛рдВрдд, рдЖрдореНрд╣реА рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдордВрджреАрдЪреЗ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░реВ рд▓рд╛рдЧрд▓реЛ. рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЧреЛрдард╡рддрд╛рдд рдХрд┐рдВрд╡рд╛ рдЖрд░реЛрдЧреНрдп рддрдкрд╛рд╕рдгреАрд╕ рдкреНрд░рддрд┐рд╕рд╛рдж рджреЗрдгреЗ рдерд╛рдВрдмрд╡рддрд╛рдд, рдиреЗрдЯрд╡рд░реНрдХрд╢реА рдХрдиреЗрдХреНрд╢рди рдЧрдорд╛рд╡рддрд╛рдд рдЗ. рдпрд╛ рд╡рд░реНрддрдирд╛рдиреЗ рдЖрдореНрд╣рд╛рд▓рд╛ рдмрд░рд╛рдЪ рдХрд╛рд│ рдЧреЛрдВрдзрд│рд╛рдд рдЯрд╛рдХрд▓реЗ рдЖрдгрд┐ рд╢реЗрд╡рдЯреА рдЖрдореНрд╣реА рд╕рдорд╕реНрдпрд╛ рдЧрдВрднреАрд░рдкрдгреЗ рдШреЗрдгреНрдпрд╛рдЪреЗ рдард░рд╡рд▓реЗ.

рд▓реЗрдЦрд╛рдЪрд╛ рд╕рд╛рд░рд╛рдВрд╢:

  • рдХрдВрдЯреЗрдирд░ рдЖрдгрд┐ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдмрджреНрджрд▓ рдХрд╛рд╣реА рд╢рдмреНрдж;
  • CPU рд╡рд┐рдирдВрддреНрдпрд╛ рдЖрдгрд┐ рдорд░реНрдпрд╛рджрд╛ рдХрд╢рд╛ рд▓рд╛рдЧреВ рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд;
  • рдорд▓реНрдЯреА-рдХреЛрд░ рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд CPU рдорд░реНрдпрд╛рджрд╛ рдХрд╢реА рдХрд╛рд░реНрдп рдХрд░рддреЗ;
  • CPU рдереНрд░реЙрдЯрд▓рд┐рдВрдЧрдЪрд╛ рдорд╛рдЧреЛрд╡рд╛ рдХрд╕рд╛ рдШреНрдпрд╛рд╡рд╛;
  • рд╕рдорд╕реНрдпреЗрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдЖрдгрд┐ рдмрд╛рд░рдХрд╛рд╡реЗ.

рдХрдВрдЯреЗрдирд░ рдЖрдгрд┐ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдмрджреНрджрд▓ рдХрд╛рд╣реА рд╢рдмреНрдж

рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рд╣реЗ рдореВрд▓рднреВрддрдкрдгреЗ рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛рдВрдЪреНрдпрд╛ рдЬрдЧрд╛рдд рдЖрдзреБрдирд┐рдХ рдорд╛рдирдХ рдЖрд╣реЗ. рдХрдВрдЯреЗрдирд░ рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрд╢рди рд╣реЗ рддреНрдпрд╛рдЪреЗ рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдЖрд╣реЗ.

рдХрдВрдЯреЗрдирд░

рдкреВрд░реНрд╡реА, рдЖрдореНрд╣рд╛рд▓рд╛ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдЪрд╛рд▓рдгреНрдпрд╛рд╕рд╛рдареА Java JARs/WARs, Python Eggs рдХрд┐рдВрд╡рд╛ executables рд╕рд╛рд░рдЦреНрдпрд╛ рдХрд▓рд╛рдХреГрддреА рддрдпрд╛рд░ рдХрд░рд╛рд╡реНрдпрд╛ рд▓рд╛рдЧрд▓реНрдпрд╛. рддрдерд╛рдкрд┐, рддреНрдпрд╛рдВрдирд╛ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рдо рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧреЗрд▓: рд░рдирдЯрд╛рдЗрдо рд╡рд╛рддрд╛рд╡рд░рдг (рдЬрд╛рд╡рд╛/рдкрд╛рдпрдерди) рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреЗ, рдЖрд╡рд╢реНрдпрдХ рдлрд╛рдЗрд▓реНрд╕ рдпреЛрдЧреНрдп рдард┐рдХрд╛рдгреА рдареЗрд╡рдгреЗ, рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдордЪреНрдпрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЖрд╡реГрддреНрддреАрд╕рд╣ рд╕реБрд╕рдВрдЧрддрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдгреЗ рдЗ. рджреБрд╕рд▒реНрдпрд╛ рд╢рдмреНрджрд╛рдВрдд, рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдирд╛рдХрдбреЗ (рдЬреЗ рдЕрдиреЗрдХрджрд╛ рд╡рд┐рдХрд╛рд╕рдХ рдЖрдгрд┐ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рд╢рд╛рд╕рдХ рдпрд╛рдВрдЪреНрдпрд╛рддреАрд▓ рд╡рд╛рджрд╛рдЪреЗ рдХрд╛рд░рдг рд╣реЛрддреЗ) рдХрд╛рд│рдЬреАрдкреВрд░реНрд╡рдХ рд▓рдХреНрд╖ рджреЗрдгреЗ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддреЗ.

рдХрдВрдЯреЗрдирд░рдиреЗ рд╕рд░реНрд╡рдХрд╛рд╣реА рдмрджрд▓рд▓реЗ. рдЖрддрд╛ рдХрд▓рд╛рдХреГрддреА рдПрдХ рдХрдВрдЯреЗрдирд░ рдкреНрд░рддрд┐рдорд╛ рдЖрд╣реЗ. рд╣реЗ рдПрдХ рдкреНрд░рдХрд╛рд░рдЪреА рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рдлрд╛рдЗрд▓ рдореНрд╣рдгреВрди рдкреНрд░рд╕реНрддреБрдд рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ рдЬреНрдпрд╛рдордзреНрдпреЗ рдХреЗрд╡рд│ рдкреНрд░реЛрдЧреНрд░рд╛рдордЪ рдирд╛рд╣реА рддрд░ рдкреВрд░реНрдг рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рд╡рд╛рддрд╛рд╡рд░рдг (рдЬрд╛рд╡рд╛/рдкрд╛рдпрдерди/...), рддрд╕реЗрдЪ рдЖрд╡рд╢реНрдпрдХ рдлрд╛рдЗрд▓реНрд╕/рдкреЕрдХреЗрдЬ, рдкреВрд░реНрд╡-рд╕реНрдерд╛рдкрд┐рдд рдЖрдгрд┐ рддрдпрд╛рд░ рдЖрд╣реЗрдд. рдзрд╛рд╡рдгреЗ рдХрдВрдЯреЗрдирд░ рддреИрдирд╛рдд рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд рдЖрдгрд┐ рдХреЛрдгрддреНрдпрд╛рд╣реА рдЕрддрд┐рд░рд┐рдХреНрдд рдЪрд░рдгрд╛рдВрд╢рд┐рд╡рд╛рдп рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдЪрд╛рд▓рд╡рд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд.

рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдХрдВрдЯреЗрдирд░ рддреНрдпрд╛рдВрдЪреНрдпрд╛ рд╕реНрд╡рдд: рдЪреНрдпрд╛ рд╕рдБрдбрдмреЙрдХреНрд╕ рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд рдХрд╛рд░реНрдп рдХрд░рддрд╛рдд. рддреНрдпрд╛рдВрдЪреНрдпрд╛рдХрдбреЗ рд╕реНрд╡рддрдГрдЪреЗ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдиреЗрдЯрд╡рд░реНрдХ ре▓рдбреЙрдкреНрдЯрд░, рдорд░реНрдпрд╛рджрд┐рдд рдкреНрд░рд╡реЗрд╢ рдЕрд╕рд▓реЗрд▓реА рддреНрдпрд╛рдВрдЪреА рд╕реНрд╡рддрдГрдЪреА рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо, рдкреНрд░рдХреНрд░рд┐рдпрд╛рдВрдЪреА рд╕реНрд╡рддрдГрдЪреА рдкрджрд╛рдиреБрдХреНрд░рдо, CPU рдЖрдгрд┐ рдореЗрдорд░реАрд╡рд░реАрд▓ рддреНрдпрд╛рдВрдЪреНрдпрд╛ рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рдорд░реНрдпрд╛рджрд╛, рдЗ. рд╣реЗ рд╕рд░реНрд╡ Linux рдХрд░реНрдирд▓рдЪреНрдпрд╛ рд╡рд┐рд╢реЗрд╖ рдЙрдкрдкреНрд░рдгрд╛рд▓реАрдореБрд│реЗ рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЬрд╛рддреЗ - рдиреЗрдорд╕реНрдкреЗрд╕реЗрд╕.

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕

рдЖрдзреА рд╕рд╛рдВрдЧрд┐рддрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ, рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рд╣рд╛ рдХрдВрдЯреЗрдирд░ рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░ рдЖрд╣реЗ. рд╣реЗ рдЕрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ: рддреБрдореНрд╣реА рдпрд╛рд▓рд╛ рдорд╢рд┐рдиреНрд╕рдЪрд╛ рдПрдХ рдкреВрд▓ рджреНрдпрд╛ рдЖрдгрд┐ рдирдВрддрд░ рдореНрд╣рдгрд╛: тАЬрдЕрд░реЗ, рдХреБрдмрд░реНрдиреЗрдЯреНрд╕, рдЪрд▓рд╛ рдорд╛рдЭреНрдпрд╛ рдХрдВрдЯреЗрдирд░рдЪреА рджрд╣рд╛ рдЙрджрд╛рд╣рд░рдгреЗ 2 рдкреНрд░реЛрд╕реЗрд╕рд░ рдЖрдгрд┐ рдкреНрд░рддреНрдпреЗрдХреА 3 GB рдореЗрдорд░реАрд╕рд╣ рд▓рд╛рдБрдЪ рдХрд░реВ рдЖрдгрд┐ рддреНрдпрд╛рдВрдирд╛ рдЪрд╛рд▓реВ рдареЗрд╡реВ!тАЭ рдмрд╛рдХреАрдЪреА рдХрд╛рд│рдЬреА рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдШреЗрддреАрд▓. рд╣реЗ рд╡рд┐рдирд╛рдореВрд▓реНрдп рдХреНрд╖рдорддрд╛ рд╢реЛрдзреЗрд▓, рдХрдВрдЯреЗрдирд░ рд▓рд╛рдБрдЪ рдХрд░реЗрд▓ рдЖрдгрд┐ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реНрдпрд╛рд╕ рддреЗ рд░реАрд╕реНрдЯрд╛рд░реНрдЯ рдХрд░реЗрд▓, рдЖрд╡реГрддреНрддреА рдмрджрд▓рддрд╛рдирд╛ рдЕрдкрдбреЗрдЯ рд░реЛрд▓ рдЖрдЙрдЯ рдХрд░реЗрд▓ рдЗ. рдореВрд▓рдд:, Kubernetes рддреБрдореНрд╣рд╛рд▓рд╛ рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░ рдШрдЯрдХ рдХрд╛рдвреВрди рдЯрд╛рдХрдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЛ рдЖрдгрд┐ рдЙрдкрдпреЛрдЬрд┐рдд рдЖрдгрд┐ рдЪрд╛рд▓рд╡рд┐рдгреНрдпрд╛рдХрд░рд┐рддрд╛ рд╡рд┐рд╡рд┐рдз рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рдкреНрд░рдгрд╛рд▓реА рдпреЛрдЧреНрдп рдмрдирд╡рддреЛ.

CPU рдорд░реНрдпрд╛рджрд╛ рдЖрдгрд┐ Kubernetes рдордзреНрдпреЗ рдЖрдХреНрд░рдордХ рдереНрд░реЙрдЯрд▓рд┐рдВрдЧ
рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдгрд╕рд╛рдЪреНрдпрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдирд╛рддреВрди рдХреБрдмрд░реНрдиреЗрдЯреНрд╕

Kubernetes рдордзреНрдпреЗ рд╡рд┐рдирдВрддреНрдпрд╛ рдЖрдгрд┐ рдорд░реНрдпрд╛рджрд╛ рдХрд╛рдп рдЖрд╣реЗрдд

рдареАрдХ рдЖрд╣реЗ, рдЖрдореНрд╣реА рдХрдВрдЯреЗрдирд░ рдЖрдгрд┐ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдХрд╡реНрд╣рд░ рдХреЗрд▓реЗ рдЖрд╣реЗрдд. рдЖрдореНрд╣рд╛рд▓рд╛ рд╣реЗ рджреЗрдЦреАрд▓ рдорд╛рд╣рд┐рдд рдЖрд╣реЗ рдХреА рдПрдХрд╛рдЪ рдорд╢реАрдирд╡рд░ рдЕрдиреЗрдХ рдХрдВрдЯреЗрдирд░ рд░рд╛рд╣реВ рд╢рдХрддрд╛рдд.

рд╕рд╛рдВрдкреНрд░рджрд╛рдпрд┐рдХ рдЕрдкрд╛рд░реНрдЯрдореЗрдВрдЯрд╕рд╣ рдПрдХ рд╕рдорд╛рдирддрд╛ рдХрд╛рдврд▓реА рдЬрд╛рдК рд╢рдХрддреЗ. рдПрдХ рдкреНрд░рд╢рд╕реНрдд рдкрд░рд┐рд╕рд░ (рдорд╢реАрди/рдпреБрдирд┐рдЯреНрд╕) рдШреЗрддрд▓рд╛ рдЬрд╛рддреЛ рдЖрдгрд┐ рдЕрдиреЗрдХ рднрд╛рдбреЗрдХрд░реВрдВрдирд╛ (рдХрдВрдЯреЗрдирд░) рднрд╛рдбреНрдпрд╛рдиреЗ рджрд┐рд▓рд╛ рдЬрд╛рддреЛ. рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рд░рд┐рдЕрд▓реНрдЯрд░ рдореНрд╣рдгреВрди рдХрд╛рдо рдХрд░рддрд╛рдд. рдкреНрд░рд╢реНрди рдЙрджреНрднрд╡рддреЛ, рднрд╛рдбреЗрдХрд░реВрдВрдирд╛ рдПрдХрдореЗрдХрд╛рдВрд╢реА рднрд╛рдВрдбрдгрд╛рдВрдкрд╛рд╕реВрди рдХрд╕реЗ рдареЗрд╡рд╛рдпрдЪреЗ? рдЬрд░ рддреНрдпрд╛рдВрдЪреНрдпрд╛рдкреИрдХреА рдПрдХрд╛рдиреЗ рдЕрд░реНрдзреНрдпрд╛ рджрд┐рд╡рд╕рд╛рд╕рд╛рдареА рд╕реНрдирд╛рдирдЧреГрд╣ рдЙрдзрд╛рд░ рдШреЗрдгреНрдпрд╛рдЪреЗ рдард░рд╡рд▓реЗ рддрд░?

рдЗрдереЗрдЪ рд╡рд┐рдирдВрддреНрдпрд╛ рдЖрдгрд┐ рдорд░реНрдпрд╛рджрд╛ рдпреЗрддрд╛рдд. рд╕реАрдкреАрдпреВ рд╡рд┐рдирдВрддреА рдХреЗрд╡рд│ рдирд┐рдпреЛрдЬрди рд╣реЗрддреВрдВрд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рд╣реЗ рдХрдВрдЯреЗрдирд░рдЪреНрдпрд╛ "рдЗрдЪреНрдЫрд╛ рд╕реВрдЪреА" рд╕рд╛рд░рдЦреЗ рдЖрд╣реЗ рдЖрдгрд┐ рддреЗ рд╕рд░реНрд╡рд╛рдд рдпреЛрдЧреНрдп рдиреЛрдб рдирд┐рд╡рдбрдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ. рддреНрдпрд╛рдЪ рд╡реЗрд│реА CPU рдорд░реНрдпрд╛рджрд╛ рднрд╛рдбреЗ рдХрд░рд╛рд░рд╛рд╢реА рддреБрд▓рдирд╛ рдХреЗрд▓реА рдЬрд╛рдК рд╢рдХрддреЗ - рдЖрдореНрд╣реА рдХрдВрдЯреЗрдирд░рд╕рд╛рдареА рдПрдХ рдпреБрдирд┐рдЯ рдирд┐рд╡рдбрддрд╛рдЪ, рдж рдХрд░реВ рд╢рдХрдд рдирд╛рд╣реА рд╕реНрдерд╛рдкрд┐рдд рдорд░реНрдпрд╛рджреЗрдкрд▓реАрдХрдбреЗ рдЬрд╛. рдЖрдгрд┐ рдЗрдереЗрдЪ рд╕рдорд╕реНрдпрд╛ рдирд┐рд░реНрдорд╛рдг рд╣реЛрддреЗ...

Kubernetes рдордзреНрдпреЗ рд╡рд┐рдирдВрддреНрдпрд╛ рдЖрдгрд┐ рдорд░реНрдпрд╛рджрд╛ рдХрд╢рд╛ рд▓рд╛рдЧреВ рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд

CPU рдорд░реНрдпрд╛рджрд╛ рд▓рд╛рдЧреВ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА Kubernetes рдХрд░реНрдирд▓рдордзреНрдпреЗ рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реА рдереНрд░реЙрдЯрд▓рд┐рдВрдЧ рдпрдВрддреНрд░рдгрд╛ (рдШрдбреНрдпрд╛рд│рд╛рдЪреА рдЪрдХреНрд░реЗ рд╡рдЧрд│рдгреЗ) рд╡рд╛рдкрд░рддреЗ. рдЬрд░ рдПрдЦрд╛рджреНрдпрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдиреЗ рдорд░реНрдпрд╛рджрд╛ рдУрд▓рд╛рдВрдбрд▓реА рддрд░, рдереНрд░реЙрдЯрд▓рд┐рдВрдЧ рд╕рдХреНрд╖рдо рдХреЗрд▓реЗ рдЬрд╛рддреЗ (рдореНрд╣рдгрдЬреЗ рддреНрдпрд╛рд▓рд╛ рдХрдореА CPU рдЪрдХреНрд░ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛рдд). рд╕реНрдорд░рдгрд╢рдХреНрддреАрд╕рд╛рдареА рд╡рд┐рдирдВрддреНрдпрд╛ рдЖрдгрд┐ рдорд░реНрдпрд╛рджрд╛ рд╡реЗрдЧрд│реНрдпрд╛ рдкрджреНрдзрддреАрдиреЗ рдЖрдпреЛрдЬрд┐рдд рдХреЗрд▓реНрдпрд╛ рдЖрд╣реЗрдд, рддреНрдпрд╛рдореБрд│реЗ рддреЗ рд╢реЛрдзрдгреЗ рд╕реЛрдкреЗ рдЖрд╣реЗ. рд╣реЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдкреЙрдбрдЪреА рд╢реЗрд╡рдЯрдЪреА рд░реАрд╕реНрдЯрд╛рд░реНрдЯ рд╕реНрдерд┐рддреА рддрдкрд╛рд╕рд╛: рддреА тАЬOOMKilledтАЭ рдЖрд╣реЗ рдХреА рдирд╛рд╣реА. CPU рдереНрд░реЙрдЯрд▓рд┐рдВрдЧ рдЗрддрдХреЗ рд╕реЛрдкреЗ рдирд╛рд╣реА, рдХрд╛рд░рдг K8s рдлрдХреНрдд рд╡рд╛рдкрд░рд╛рдиреБрд╕рд╛рд░ рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдЙрдкрд▓рдмреНрдз рдХрд░рддреЗ, cgroups рджреНрд╡рд╛рд░реЗ рдирд╛рд╣реА.

CPU рд╡рд┐рдирдВрддреА

CPU рдорд░реНрдпрд╛рджрд╛ рдЖрдгрд┐ Kubernetes рдордзреНрдпреЗ рдЖрдХреНрд░рдордХ рдереНрд░реЙрдЯрд▓рд┐рдВрдЧ
CPU рд╡рд┐рдирдВрддреА рдХрд╢реА рд▓рд╛рдЧреВ рдХреЗрд▓реА рдЬрд╛рддреЗ

рд╕рд╛рдзреЗрдкрдгрд╛рд╕рд╛рдареА, рдЙрджрд╛рд╣рд░рдг рдореНрд╣рдгреВрди 4-рдХреЛрд░ CPU рд╕рд╣ рдорд╢реАрди рд╡рд╛рдкрд░реВрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд╛рд╣реВ.

рд╕рдВрд╕рд╛рдзрдирд╛рдВрдЪреЗ (рдореЗрдорд░реА рдЖрдгрд┐ рдкреНрд░реЛрд╕реЗрд╕рд░) рд╡рд╛рдЯрдк рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА K8s рдирд┐рдпрдВрддреНрд░рдг рдЧрдЯ рдпрдВрддреНрд░рдгрд╛ (cgroups) рд╡рд╛рдкрд░рддреЗ. рддреНрдпрд╛рд╕рд╛рдареА рдПрдХ рд╢реНрд░реЗрдгреАрдмрджреНрдз рдореЙрдбреЗрд▓ рдЙрдкрд▓рдмреНрдз рдЖрд╣реЗ: рдореБрд▓рд╛рд▓рд╛ рдкрд╛рд▓рдХ рдЧрдЯрд╛рдЪреНрдпрд╛ рдорд░реНрдпрд╛рджрд╛ рд╡рд╛рд░рд╢рд╛рдиреЗ рдорд┐рд│рддрд╛рдд. рд╡рд┐рддрд░рдг рддрдкрд╢реАрд▓ рдЖрднрд╛рд╕реА рдлрд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реАрдордзреНрдпреЗ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд (/sys/fs/cgroup). рдкреНрд░реЛрд╕реЗрд╕рд░рдЪреНрдпрд╛ рдмрд╛рдмрддреАрдд рд╣реЗ рдЖрд╣реЗ /sys/fs/cgroup/cpu,cpuacct/*.

K8s рдлрд╛рдЗрд▓ рд╡рд╛рдкрд░рддреЗ cpu.share рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕рдВрд╕рд╛рдзрдиреЗ рд╡рд╛рдЯрдк рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА. рдЖрдордЪреНрдпрд╛ рдмрд╛рдмрддреАрдд, рд░реВрдЯ cgroup рд▓рд╛ CPU рд╕рдВрд╕рд╛рдзрдирд╛рдВрдЪреЗ 4096 рд╢реЗрдЕрд░реНрд╕ рдорд┐рд│рддрд╛рдд - рдЙрдкрд▓рдмреНрдз рдкреНрд░реЛрд╕реЗрд╕рд░ рдкреЙрд╡рд░рдЪреНрдпрд╛ 100% (1 рдХреЛрд░ = 1024; рд╣реЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдореВрд▓реНрдп рдЖрд╣реЗ). рдореВрд│ рдЧрдЯ рдиреЛрдВрджрдгреАрдХреГрдд рд╡рдВрд╢рдЬрд╛рдВрдЪреНрдпрд╛ рд╢реЗрдЕрд░реНрд╕рд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рд╕рдВрд╕рд╛рдзрдиреЗ рдкреНрд░рдорд╛рдгрд╛рдиреБрд╕рд╛рд░ рд╡рд┐рддрд░рд┐рдд рдХрд░рддреЛ cpu.share, рдЖрдгрд┐ рддреЗ, рдпрд╛рдордзреВрди, рддреНрдпрд╛рдВрдЪреНрдпрд╛ рд╡рдВрд╢рдЬрд╛рдВрд╕рд╣ рддреЗрдЪ рдХрд░рддрд╛рдд, рдЗ. рд╕рд╛рдорд╛рдиреНрдп рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдиреЛрдбрд╡рд░, рд░реВрдЯ рд╕реАрдЧреНрд░реБрдкрд▓рд╛ рддреАрди рдореБрд▓реЗ рдЖрд╣реЗрдд: system.slice, user.slice ╨╕ kubepods. рдкрд╣рд┐рд▓реЗ рджреЛрди рдЙрдкрд╕рдореВрд╣ K8s рдЪреНрдпрд╛ рдмрд╛рд╣реЗрд░реАрд▓ рдХреНрд░рд┐рдЯрд┐рдХрд▓ рд╕рд┐рд╕реНрдЯрдо рд▓реЛрдб рдЖрдгрд┐ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдореНрд╕ рджрд░рдореНрдпрд╛рди рд╕рдВрд╕рд╛рдзрдиреЗ рд╡рд┐рддрд░реАрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддрд╛рдд. рд╢реЗрд╡рдЯрдЪрд╛ - kubepods - рдкреЙрдбреНрд╕рдордзреНрдпреЗ рд╕рдВрд╕рд╛рдзрдиреЗ рд╡рд┐рддрд░реАрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдиреЗ рддрдпрд╛рд░ рдХреЗрд▓реЗ.

рд╡рд░реАрд▓ рдЖрдХреГрддреА рджрд░реНрд╢рд╡рд┐рддреЗ рдХреА рдкреНрд░рдердо рдЖрдгрд┐ рджреНрд╡рд┐рддреАрдп рдЙрдкрд╕рдореВрд╣рд╛рдВрдирд╛ рдкреНрд░рддреНрдпреЗрдХреА рдкреНрд░рд╛рдкреНрдд рдЭрд╛рд▓реЗ 1024 рд╡рд╛рдЯрдк рдХреЗрд▓реЗрд▓реНрдпрд╛ kuberpod рдЙрдкрд╕рдореВрд╣рд╛рд╕рд╣ рд╕рдорднрд╛рдЧ 4096 рд╢реЗрдЕрд░реНрд╕ рд╣реЗ рдХрд╕реЗ рд╢рдХреНрдп рдЖрд╣реЗ: рд╕рд░реНрд╡ рдХреЗрд▓реНрдпрд╛рдирдВрддрд░, рд░реВрдЯ рдЧрдЯрд╛рд▓рд╛ рдлрдХреНрдд рдкреНрд░рд╡реЗрд╢ рдЖрд╣реЗ 4096 рд╢реЗрдЕрд░реНрд╕ рдЖрдгрд┐ рддрд┐рдЪреНрдпрд╛ рд╡рдВрд╢рдЬрд╛рдВрдЪреНрдпрд╛ рд╢реЗрдЕрд░реНрд╕рдЪреА рдмреЗрд░реАрдЬ рд╣реА рд╕рдВрдЦреНрдпрд╛ рд▓рдХреНрд╖рдгреАрдпрд░реАрддреНрдпрд╛ рдУрд▓рд╛рдВрдбрддреЗ (6144)? рдореБрджреНрджрд╛ рдЕрд╕рд╛ рдЖрд╣реЗ рдХреА рдореВрд▓реНрдпрд╛рд▓рд╛ рддрд╛рд░реНрдХрд┐рдХ рдЕрд░реНрде рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЛ, рдореНрд╣рдгреВрди рд▓рд┐рдирдХреНрд╕ рд╢реЗрдбреНрдпреБрд▓рд░ (CFS) рддреЗ CPU рд╕рдВрд╕рд╛рдзрдирд╛рдВрдЪреЗ рдкреНрд░рдорд╛рдгрдмрджреНрдз рд╡рд╛рдЯрдк рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рддреЛ. рдЖрдордЪреНрдпрд╛ рдмрд╛рдмрддреАрдд, рдкрд╣рд┐рд▓реЗ рджреЛрди рдЧрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛рдд 680 рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╢реЗрдЕрд░реНрд╕ (16,6 рдкреИрдХреА 4096%), рдЖрдгрд┐ рдХреБрдмреЗрдкреЙрдб рдЙрд░реНрд╡рд░рд┐рдд рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛рдд 2736 рд╢реЗрдЕрд░реНрд╕ рдбрд╛рдЙрдирдЯрд╛рдЗрдордЪреНрдпрд╛ рдмрд╛рдмрддреАрдд, рдкрд╣рд┐рд▓реЗ рджреЛрди рдЧрдЯ рд╡рд╛рдЯрдк рдХреЗрд▓реЗрд▓реА рд╕рдВрд╕рд╛рдзрдиреЗ рд╡рд╛рдкрд░рдгрд╛рд░ рдирд╛рд╣реАрдд.

рд╕реБрджреИрд╡рд╛рдиреЗ, рд╢реЗрдбреНрдпреБрд▓рд░рдХрдбреЗ рди рд╡рд╛рдкрд░рд▓реЗрд▓реА CPU рд╕рдВрд╕рд╛рдзрдиреЗ рд╡рд╛рдпрд╛ рдЬрд╛рдК рдирдпреЗрдд рдпрд╛рд╕рд╛рдареА рдПрдХ рдпрдВрддреНрд░рдгрд╛ рдЖрд╣реЗ. рд╣реЗ "рдирд┐рд╖реНрдХреНрд░рд┐рдп" рдХреНрд╖рдорддрд╛ рдЬрд╛рдЧрддрд┐рдХ рдкреВрд▓рдордзреНрдпреЗ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ, рдЬреНрдпрд╛рдордзреВрди рддреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░реЛрд╕реЗрд╕рд░ рдкреЙрд╡рд░ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдЧрдЯрд╛рдВрдордзреНрдпреЗ рд╡рд┐рддрд░рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ (рдЧреЛрд▓рд╛рдХрд╛рд░ рдиреБрдХрд╕рд╛рди рдЯрд╛рд│рдгреНрдпрд╛рд╕рд╛рдареА рдмреЕрдЪреЗрд╕рдордзреНрдпреЗ рд╣рд╕реНрддрд╛рдВрддрд░рдг рд╣реЛрддреЗ). рд╡рдВрд╢рдЬрд╛рдВрдЪреНрдпрд╛ рд╕рд░реНрд╡ рд╡рдВрд╢рдЬрд╛рдВрдирд╛ рд╕рдорд╛рди рдкрджреНрдзрдд рд▓рд╛рдЧреВ рдХреЗрд▓реА рдЬрд╛рддреЗ.

рд╣реА рдпрдВрддреНрд░рдгрд╛ рдкреНрд░реЛрд╕реЗрд╕рд░ рдкреЙрд╡рд░рдЪреЗ рдпреЛрдЧреНрдп рд╡рд┐рддрд░рдг рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рдЖрдгрд┐ рдХреЛрдгреАрд╣реА рдЗрддрд░рд╛рдВрдХрдбреВрди рд╕рдВрд╕рд╛рдзрдиреЗ "рдЪреЛрд░реА" рдХрд░рдд рдирд╛рд╣реА рдпрд╛рдЪреА рдЦрд╛рддреНрд░реА рдХрд░рддреЗ.

CPU рдорд░реНрдпрд╛рджрд╛

K8 рдордзреАрд▓ рдорд░реНрдпрд╛рджрд╛ рдЖрдгрд┐ рд╡рд┐рдирдВрддреНрдпрд╛рдВрдЪреЗ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рд╕рдорд╛рди рджрд┐рд╕рдд рдЕрд╕реВрдирд╣реА, рддреНрдпрд╛рдВрдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдкреВрд░реНрдгрдкрдгреЗ рднрд┐рдиреНрди рдЖрд╣реЗ: рд╕рд░реНрд╡рд╛рдд рджрд┐рд╢рд╛рднреВрд▓ рдХрд░рдгрд╛рд░реЗ рдЖрдгрд┐ рд╕рд░реНрд╡рд╛рдд рдХрдореА рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдг рдХреЗрд▓реЗрд▓рд╛ рднрд╛рдЧ.

K8s рд╡реНрдпрд╕реНрдд рдЖрд╣реЗ CFS рдХреЛрдЯрд╛ рдпрдВрддреНрд░рдгрд╛ рдорд░реНрдпрд╛рджрд╛ рд▓рд╛рдЧреВ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА. рддреНрдпрд╛рдВрдЪреНрдпрд╛ рд╕реЗрдЯрд┐рдВрдЧреНрдЬ рдлрд╛рдпрд▓реАрдВрдордзреНрдпреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реНрдпрд╛ рдЖрд╣реЗрдд cfs_period_us ╨╕ cfs_quota_us cgroup рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрдд (рдлрд╛рдЗрд▓ рджреЗрдЦреАрд▓ рддреЗрдереЗ рд╕реНрдерд┐рдд рдЖрд╣реЗ cpu.share).

рд╡рд┐рдкрд░реАрдд cpu.share, рдХреЛрдЯрд╛ рдЖрдзрд╛рд░рд┐рдд рдЖрд╣реЗ рдХрд╛рд▓рд╛рд╡рдзреА, рдЖрдгрд┐ рдЙрдкрд▓рдмреНрдз рдкреНрд░реЛрд╕реЗрд╕рд░ рдкреЙрд╡рд░рд╡рд░ рдирд╛рд╣реА. cfs_period_us рдХрд╛рд▓рд╛рд╡рдзреА (рдпреБрдЧ) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ - рддреЛ рдиреЗрд╣рдореА 100000 ╬╝s (100 ms) рдЕрд╕рддреЛ. K8s рдордзреНрдпреЗ рд╣реЗ рдореВрд▓реНрдп рдмрджрд▓рдгреНрдпрд╛рдЪрд╛ рдкрд░реНрдпрд╛рдп рдЖрд╣реЗ, рдкрд░рдВрддреБ рдЖрддреНрддрд╛ рддреЗ рдХреЗрд╡рд│ рдЕрд▓реНрдлрд╛рдордзреНрдпреЗ рдЙрдкрд▓рдмреНрдз рдЖрд╣реЗ. рд╢реЗрдбреНрдпреБрд▓рд░ рд╡рд╛рдкрд░рд▓реЗрд▓реЗ рдХреЛрдЯрд╛ рд░реАрд╕реНрдЯрд╛рд░реНрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдпреБрдЧрд╛рдЪрд╛ рд╡рд╛рдкрд░ рдХрд░рддреЛ. рджреБрд╕рд░реА рдлрд╛рдИрд▓ cfs_quota_us, рдкреНрд░рддреНрдпреЗрдХ рдпреБрдЧрд╛рдордзреНрдпреЗ рдЙрдкрд▓рдмреНрдз рд╡реЗрд│ (рдХреЛрдЯрд╛) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ. рд▓рдХреНрд╖рд╛рдд рдШреНрдпрд╛ рдХреА рддреЗ рдорд╛рдпрдХреНрд░реЛрд╕реЗрдХрдВрджрдордзреНрдпреЗ рджреЗрдЦреАрд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реЗ рдЖрд╣реЗ. рдХреЛрдЯрд╛ рдпреБрдЧрд╛рдЪреНрдпрд╛ рд▓рд╛рдВрдмреАрдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рдЕрд╕реВ рд╢рдХрддреЛ; рджреБрд╕рд▒реНрдпрд╛ рд╢рдмреНрджрд╛рдВрдд, рддреЗ 100 ms рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рдЕрд╕реВ рд╢рдХрддреЗ.

рдЪрд▓рд╛ 16-рдХреЛрд░ рдорд╢реАрдиреНрд╕рд╡рд░ рджреЛрди рдкрд░рд┐рд╕реНрдерд┐рддреА рдкрд╛рд╣реВ (рдЖрдкрд▓реНрдпрд╛рдХрдбреЗ Omio рдордзреАрд▓ рд╕рдВрдЧрдгрдХрд╛рдЪрд╛ рд╕рд░реНрд╡рд╛рдд рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдХрд╛рд░):

CPU рдорд░реНрдпрд╛рджрд╛ рдЖрдгрд┐ Kubernetes рдордзреНрдпреЗ рдЖрдХреНрд░рдордХ рдереНрд░реЙрдЯрд▓рд┐рдВрдЧ
рдкрд░рд┐рд╕реНрдерд┐рддреА 1: 2 рдереНрд░реЗрдб рдЖрдгрд┐ 200 ms рдорд░реНрдпрд╛рджрд╛. рдереНрд░реЙрдЯрд▓рд┐рдВрдЧ рдирд╛рд╣реА

CPU рдорд░реНрдпрд╛рджрд╛ рдЖрдгрд┐ Kubernetes рдордзреНрдпреЗ рдЖрдХреНрд░рдордХ рдереНрд░реЙрдЯрд▓рд┐рдВрдЧ
рдкрд░рд┐рд╕реНрдерд┐рддреА 2: 10 рдереНрд░реЗрдб рдЖрдгрд┐ 200 ms рдорд░реНрдпрд╛рджрд╛. рдереНрд░реЙрдЯрд▓рд┐рдВрдЧ 20 ms рдирдВрддрд░ рд╕реБрд░реВ рд╣реЛрддреЗ, рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕рдВрд╕рд╛рдзрдирд╛рдВрдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдЖрдгрдЦреА 80 ms рдирдВрддрд░ рдкреБрдиреНрд╣рд╛ рд╕реБрд░реВ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ

рд╕рдордЬрд╛ рддреБрдореНрд╣реА CPU рдорд░реНрдпрд╛рджрд╛ рд╕реЗрдЯ рдХреЗрд▓реА рдЖрд╣реЗ 2 рдХрд░реНрдирд▓; Kubernetes рд╣реЗ рдореВрд▓реНрдп 200 ms рдордзреНрдпреЗ рднрд╛рд╖рд╛рдВрддрд░рд┐рдд рдХрд░реЗрд▓. рдпрд╛рдЪрд╛ рдЕрд░реНрде рдХрдВрдЯреЗрдирд░ рдереНрд░реЙрдЯрд▓рд┐рдВрдЧрд╢рд┐рд╡рд╛рдп рдЬрд╛рд╕реНрддреАрдд рдЬрд╛рд╕реНрдд 200ms CPU рд╡реЗрд│ рд╡рд╛рдкрд░реВ рд╢рдХрддреЛ.

рдЖрдгрд┐ рдЗрдереЗрдЪ рдордЬрд╛ рд╕реБрд░реВ рд╣реЛрддреЗ. рд╡рд░ рдирдореВрдж рдХреЗрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ, рдЙрдкрд▓рдмреНрдз рдХреЛрдЯрд╛ 200 ms рдЖрд╣реЗ. рдЬрд░ рддреБрдореНрд╣реА рд╕рдорд╛рдВрддрд░ рдХрд╛рдо рдХрд░рдд рдЕрд╕рд╛рд▓ рджрд╣рд╛ 12-рдХреЛрд░ рдорд╢реАрдирд╡рд░реАрд▓ рдереНрд░реЗрдбреНрд╕ (рдкрд░рд┐рджреГрд╢реНрдп 2 рд╕рд╛рдареА рдЙрджрд╛рд╣рд░рдг рдкрд╣рд╛), рдЗрддрд░ рд╕рд░реНрд╡ рдкреЙрдбреНрд╕ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдЕрд╕рддрд╛рдирд╛, рдХреЛрдЯрд╛ рдлрдХреНрдд 20 ms рдордзреНрдпреЗ рд╕рдВрдкреЗрд▓ (10 * 20 ms = 200 ms рдкрд╛рд╕реВрди), рдЖрдгрд┐ рдпрд╛ рдкреЙрдбрдЪреЗ рд╕рд░реНрд╡ рдереНрд░реЗрдб рд▓рдЯрдХрддреАрд▓ ┬╗ (рдЧрд│ рдШрд╛рд▓рдгреЗ) рдкреБрдвреАрд▓ 80 ms рд╕рд╛рдареА рдЖрдзреАрдЪ рдирдореВрдж рдХреЗрд▓реЗ рдЖрд╣реЗ рд╢реЗрдбреНрдпреВрд▓рд░ рдмрдЧ, рдЬреНрдпрд╛рдореБрд│реЗ рдЬрд╛рд╕реНрдд рдереНрд░реЙрдЯрд▓рд┐рдВрдЧ рд╣реЛрддреЗ рдЖрдгрд┐ рдХрдВрдЯреЗрдирд░ рд╕рдзреНрдпрд╛рдЪрд╛ рдХреЛрдЯрд╛ рджреЗрдЦреАрд▓ рдкреВрд░реНрдг рдХрд░реВ рд╢рдХрдд рдирд╛рд╣реА.

рд╢реЗрдВрдЧрд╛рдВрдордзреНрдпреЗ рдереНрд░реЙрдЯрд▓рд┐рдВрдЧрдЪреЗ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд╕реЗ рдХрд░рд╛рд╡реЗ?

рдлрдХреНрдд рдкреЙрдбрд╡рд░ рд▓реЙрдЧрд┐рди рдХрд░рд╛ рдЖрдгрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рд╛ cat /sys/fs/cgroup/cpu/cpu.stat.

  • nr_periods - рд╢реЗрдбреНрдпреВрд▓рд░ рдХрд╛рд▓рд╛рд╡рдзреАрдЪреА рдПрдХреВрдг рд╕рдВрдЦреНрдпрд╛;
  • nr_throttled тАФ рд░рдЪрдирд╛ рдордзреНрдпреЗ рдереНрд░реЛрдЯрд▓ рдХрд╛рд▓рд╛рд╡рдзреАрдЪреА рд╕рдВрдЦреНрдпрд╛ nr_periods;
  • throttled_time тАФ рдиреЕрдиреЛрд╕реЗрдХрдВрджрд╛рдВрдордзреНрдпреЗ рдПрдХрддреНрд░рд┐рдд рдереНрд░реЛрдЯрд▓ рд╡реЗрд│.

CPU рдорд░реНрдпрд╛рджрд╛ рдЖрдгрд┐ Kubernetes рдордзреНрдпреЗ рдЖрдХреНрд░рдордХ рдереНрд░реЙрдЯрд▓рд┐рдВрдЧ

рдЦрд░реЛрдЦрд░ рдХрд╛рдп рдЪрд╛рд▓рд▓реЗ рдЖрд╣реЗ?

рдкрд░рд┐рдгрд╛рдореА, рдЖрдореНрд╣рд╛рд▓рд╛ рд╕рд░реНрд╡ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдВрдордзреНрдпреЗ рдЙрдЪреНрдЪ рдереНрд░реЙрдЯрд▓рд┐рдВрдЧ рдорд┐рд│рддреЗ. рдХрдзреА рдХрдзреА рддреЛ рдЖрдд рдЕрд╕рддреЛ рджреАрдб рд╡реЗрд│рд╛ рдЧрдгрдирд╛рдкреЗрдХреНрд╖рд╛ рдордЬрдмреВрдд!

рдпрд╛рдореБрд│реЗ рд╡рд┐рд╡рд┐рдз рддреНрд░реБрдЯреА рдЙрджреНрднрд╡рддрд╛рдд - рддрдпрд╛рд░реА рддрдкрд╛рд╕рдгреА рдЕрдпрд╢рд╕реНрд╡реА рд╣реЛрдгреЗ, рдХрдВрдЯреЗрдирд░ рдлреНрд░реАрдЭ рд╣реЛрдгреЗ, рдиреЗрдЯрд╡рд░реНрдХ рдХрдиреЗрдХреНрд╢рди рдЦрдВрдбрд┐рдд рд╣реЛрдгреЗ, рд╕реЗрд╡рд╛ рдХреЙрд▓рдордзреНрдпреЗ рдХрд╛рд▓рдмрд╛рд╣реНрдп рд╣реЛрдгреЗ. рдпрд╛рдЪрд╛ рдкрд░рд┐рдгрд╛рдо рд╢реЗрд╡рдЯреА рд╡рд╛рдврд▓реЗрд▓рд╛ рд╡рд┐рд▓рдВрдм рдЖрдгрд┐ рдЙрдЪреНрдЪ рддреНрд░реБрдЯреА рджрд░рд╛рдВрдордзреНрдпреЗ рд╣реЛрддреЛ.

рдирд┐рд░реНрдгрдп рдЖрдгрд┐ рдкрд░рд┐рдгрд╛рдо

рдпреЗрдереЗ рд╕рд░реНрд╡ рдХрд╛рд╣реА рд╕реЛрдкреЗ рдЖрд╣реЗ. рдЖрдореНрд╣реА CPU рдорд░реНрдпрд╛рджрд╛ рд╕реЛрдбреВрди рджрд┐рд▓реА рдЖрдгрд┐ рдХреНрд▓рд╕реНрдЯрд░реНрд╕рдордзреНрдпреЗ OS рдХрд░реНрдирд▓ рдирд╡реАрдирддрдо рдЖрд╡реГрддреНрддреАрдордзреНрдпреЗ рдЕрджреНрдпрддрдирд┐рдд рдХрд░рдгреЗ рд╕реБрд░реВ рдХреЗрд▓реЗ, рдЬреНрдпрд╛рдордзреНрдпреЗ рджреЛрд╖ рдирд┐рд╢реНрдЪрд┐рдд рдХреЗрд▓рд╛ рдЧреЗрд▓рд╛. рдЖрдордЪреНрдпрд╛ рд╕реЗрд╡рд╛рдВрдордзреАрд▓ рддреНрд░реБрдЯреАрдВрдЪреА рд╕рдВрдЦреНрдпрд╛ (HTTP 5xx) рддрд╛рдмрдбрддреЛрдм рд▓рдХреНрд╖рдгреАрдпрд░реАрддреНрдпрд╛ рдХрдореА рдЭрд╛рд▓реА:

HTTP 5xx рддреНрд░реБрдЯреА

CPU рдорд░реНрдпрд╛рджрд╛ рдЖрдгрд┐ Kubernetes рдордзреНрдпреЗ рдЖрдХреНрд░рдордХ рдереНрд░реЙрдЯрд▓рд┐рдВрдЧ
рдПрдХрд╛ рдЧрдВрднреАрд░ рд╕реЗрд╡реЗрд╕рд╛рдареА HTTP 5xx рддреНрд░реБрдЯреА

рдкреНрд░рддрд┐рд╕рд╛рдж рд╡реЗрд│ p95

CPU рдорд░реНрдпрд╛рджрд╛ рдЖрдгрд┐ Kubernetes рдордзреНрдпреЗ рдЖрдХреНрд░рдордХ рдереНрд░реЙрдЯрд▓рд┐рдВрдЧ
рдЧрдВрднреАрд░ рд╕реЗрд╡рд╛ рд╡рд┐рдирдВрддреА рд╡рд┐рд▓рдВрдмрддрд╛, 95 рд╡реНрдпрд╛ рдЯрдХреНрдХреЗрд╡рд╛рд░реА

рдСрдкрд░реЗрдЯрд┐рдВрдЧ рдЦрд░реНрдЪ

CPU рдорд░реНрдпрд╛рджрд╛ рдЖрдгрд┐ Kubernetes рдордзреНрдпреЗ рдЖрдХреНрд░рдордХ рдереНрд░реЙрдЯрд▓рд┐рдВрдЧ
рдЦрд░реНрдЪ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдЙрджрд╛рд╣рд░рдгрд╛рдВрдЪреНрдпрд╛ рддрд╛рд╕рд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛

рдкрдХрдб рдореНрд╣рдгрдЬреЗ рдХрд╛рдп?

рд▓реЗрдЦрд╛рдЪреНрдпрд╛ рд╕реБрд░реБрд╡рд╛рддреАрд▓рд╛ рдореНрд╣рдЯрд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ:

рд╕рд╛рдВрдкреНрд░рджрд╛рдпрд┐рдХ рдЕрдкрд╛рд░реНрдЯрдореЗрдВрдЯрд╕рд╣ рдПрдХ рд╕рд╛рдзрд░реНрдореНрдп рд░реЗрдЦрд╛рдЯрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ... рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рд░рд┐рдЕрд▓реНрдЯрд░ рдореНрд╣рдгреВрди рдХрд╛рдо рдХрд░рддрд╛рдд. рдкрдг рднрд╛рдбреЗрдХрд░реВрдВрдирд╛ рдПрдХрдореЗрдХрд╛рдВрд╢реА рднрд╛рдВрдбрдг рдХрд╕реЗ рдареЗрд╡рд╛рдпрдЪреЗ? рдЬрд░ рддреНрдпрд╛рдВрдЪреНрдпрд╛рдкреИрдХреА рдПрдХрд╛рдиреЗ рдЕрд░реНрдзреНрдпрд╛ рджрд┐рд╡рд╕рд╛рд╕рд╛рдареА рд╕реНрдирд╛рдирдЧреГрд╣ рдЙрдзрд╛рд░ рдШреЗрдгреНрдпрд╛рдЪреЗ рдард░рд╡рд▓реЗ рддрд░?

рдпреЗрдереЗ рдЭреЗрд▓ рдЖрд╣реЗ. рдПрдХ рдирд┐рд╖реНрдХрд╛рд│рдЬреА рдХрдВрдЯреЗрдирд░ рдорд╢реАрдирд╡рд░ рдЙрдкрд▓рдмреНрдз рд╕рд░реНрд╡ CPU рд╕рдВрд╕рд╛рдзрдиреЗ рдЦрд╛рдК рд╢рдХрддреЛ. рддреБрдордЪреНрдпрд╛рдХрдбреЗ рд╕реНрдорд╛рд░реНрдЯ ре▓рдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдЯреЕрдХ рдЕрд╕рд▓реНрдпрд╛рд╕ (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, JVM, Go, Node VM рдпреЛрдЧреНрдпрд░рд┐рддреНрдпрд╛ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓реЗрд▓реЗ), рддрд░ рд╣реА рд╕рдорд╕реНрдпрд╛ рдирд╛рд╣реА: рддреБрдореНрд╣реА рдЕрд╢рд╛ рдкрд░рд┐рд╕реНрдерд┐рддреАрдд рджреАрд░реНрдШрдХрд╛рд│ рдХрд╛рдо рдХрд░реВ рд╢рдХрддрд╛. рдкрд░рдВрддреБ рдЬрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЦрд░рд╛рдмрдкрдгреЗ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХреЗрд▓реЗрд▓реЗ рдЕрд╕рддреАрд▓ рдХрд┐рдВрд╡рд╛ рдЕрдЬрд┐рдмрд╛рдд рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХреЗрд▓реЗрд▓реЗ рдирд╛рд╣реАрдд (FROM java:latest) рдкрд░рд┐рд╕реНрдерд┐рддреА рдирд┐рдпрдВрддреНрд░рдгрд╛рдмрд╛рд╣реЗрд░ рдЬрд╛рдК рд╢рдХрддреЗ. рдУрдорд┐рдУрдордзреНрдпреЗ рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдкреНрд░рдореБрдЦ рднрд╛рд╖рд╛ рд╕реНрдЯреЕрдХрд╕рд╛рдареА рдкреБрд░реЗрд╢рд╛ рдбреАрдлреЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрдЬрд╕рд╣ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдмреЗрд╕ рдбреЙрдХрд░рдлрд╛рдЗрд▓реНрд╕ рдЖрд╣реЗрдд, рддреНрдпрд╛рдореБрд│реЗ рд╣реА рд╕рдорд╕реНрдпрд╛ рдЕрд╕реНрддрд┐рддреНрд╡рд╛рдд рдирд╡реНрд╣рддреА.

рдЖрдореНрд╣реА рдореЗрдЯреНрд░рд┐рдХреНрд╕рдЪреЗ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдгреНрдпрд╛рдЪреА рд╢рд┐рдлрд╛рд░рд╕ рдХрд░рддреЛ рд╡рд╛рдкрд░рд╛ (рд╡рд╛рдкрд░, рд╕рдВрдкреГрдХреНрддрддрд╛ рдЖрдгрд┐ рддреНрд░реБрдЯреА), API рд╡рд┐рд▓рдВрдм рдЖрдгрд┐ рддреНрд░реБрдЯреА рджрд░. рдкрд░рд┐рдгрд╛рдо рдЕрдкреЗрдХреНрд╖рд╛ рдкреВрд░реНрдг рдХрд░рддрд╛рдд рдпрд╛рдЪреА рдЦрд╛рддреНрд░реА рдХрд░рд╛.

рд╕рдВрджрд░реНрдн

рд╣реА рдЖрдордЪреА рдХрд╣рд╛рдгреА рдЖрд╣реЗ. рдХрд╛рдп рдШрдбрдд рдЖрд╣реЗ рд╣реЗ рд╕рдордЬреВрди рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА рдЦрд╛рд▓реАрд▓ рд╕рд╛рдордЧреНрд░реАрдиреЗ рдЦреВрдк рдорджрдд рдХреЗрд▓реА:

Kubernetes рдмрдЧ рдЕрд╣рд╡рд╛рд▓:

рддреБрдореНрд╣рд╛рд▓рд╛ рддреБрдордЪреНрдпрд╛ рд╕рд░рд╛рд╡рд╛рдд рдЕрд╢рд╛рдЪ рд╕рдорд╕реНрдпрд╛ рдЖрд▓реНрдпрд╛ рдЖрд╣реЗрдд рдХрд┐рдВрд╡рд╛ рддреБрдореНрд╣рд╛рд▓рд╛ рдХрдВрдЯреЗрдирд░рд╛рдЗрдЬреНрдб рдЙрддреНрдкрд╛рджрди рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд рдереНрд░реЙрдЯрд▓рд┐рдВрдЧрд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдЕрдиреБрднрд╡ рдЖрд╣реЗ рдХрд╛? рдЯрд┐рдкреНрдкрдгреНрдпрд╛рдВрдордзреНрдпреЗ рдЖрдкрд▓реА рдХрдерд╛ рд╕рд╛рдорд╛рдпрд┐рдХ рдХрд░рд╛!

рдЕрдиреБрд╡рд╛рджрдХрд╛рдХрдбреВрди рдкреБрдирд╢реНрдЪ

рдЖрдордЪреНрдпрд╛ рдмреНрд▓реЙрдЧрд╡рд░ рджреЗрдЦреАрд▓ рд╡рд╛рдЪрд╛:

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛