PHP-FPM рд╕реЗрдЯрдЕрдк: рдЕрдзрд┐рдХрддрдо рдкреНрд░рджрд░реНрд╢рдирдХреЛ рд▓рд╛рдЧрд┐ pm рд╕реНрдерд┐рд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН

PHP-FPM рд╕реЗрдЯрдЕрдк: рдЕрдзрд┐рдХрддрдо рдкреНрд░рджрд░реНрд╢рдирдХреЛ рд▓рд╛рдЧрд┐ pm рд╕реНрдерд┐рд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН

рдпрд╕ рд▓реЗрдЦрдХреЛ рдПрдХ рдЕрд╕рдВрдкрд╛рджрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдореВрд▓ рд░реВрдкрдорд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рднрдПрдХреЛ рдерд┐рдпреЛ haydenjames.io рд░ рдЙрдирдХреЛ рдЕрдиреБрдорддрд┐ рд╕рдВрдЧ рдпрд╣рд╛рдБ рдкреНрд░рдХрд╛рд╢рд┐рдд рд▓реЗрдЦрдХ.

рдереНрд░реБрдкреБрдЯ рдмрдврд╛рдЙрди, рд╡рд┐рд▓рдореНрдмрддрд╛ рдХрдо рдЧрд░реНрди, рд░ рд╕реАрдкреАрдпреВ рд░ рдореЗрдореЛрд░реАрд▓рд╛рдИ рдирд┐рд░рдиреНрддрд░ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ PHP-FPM рдХрд╕рд░реА рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрдиреЗ рднрдиреЗрд░ рдо рддрдкрд╛рдИрдВрд▓рд╛рдИ рд╕рдВрдХреНрд╖реЗрдкрдорд╛ рдмрддрд╛рдЙрдиреЗрдЫреБред рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛, PHP-FPM рдорд╛ PM (рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреНрд░рдмрдиреНрдзрдХ) рд░реЗрдЦрд╛ рд╣реЛ рдЧрддрд┐рд╢реАрд▓, рд░ рдпрджрд┐ рддрдкрд╛рдЗрдБрд╕рдБрдЧ рдкрд░реНрдпрд╛рдкреНрдд рдореЗрдореЛрд░реА рдЫреИрди рднрдиреЗ, рддреНрдпрд╕рдкрдЫрд┐ рдпреЛ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рд░рд╛рдореНрд░реЛ рдЫ рдорд╛рдЧ рдмрдореЛрдЬрд┐рдоред php.net рдХрд╛рдЧрдЬрд╛рддрдорд╛ рдЖрдзрд╛рд░рд┐рдд 2 рдирд┐рдпрдиреНрддреНрд░рдг рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рддреБрд▓рдирд╛ рдЧрд░реМрдВ рд░ рдореЗрд░реЛ рдордирдкрд░реНрдиреЗ рддрд┐рдиреАрд╣рд░реВрдмрд╛рдЯ рдХрд╕рд░реА рдлрд░рдХ рдЫ рд╣реЗрд░реНрдиреБрд╣реЛрд╕реНред рд╕реНрдерд┐рд░ рдЙрдЪреНрдЪ рдорд╛рддреНрд░рд╛ рдЯреНрд░рд╛рдлрд┐рдХрдХреЛ рд▓рд╛рдЧрд┐ pm:

pm = рдЧрддрд┐рд╢реАрд▓ - рдмрд╛рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рдирд┐рдореНрди рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВрдорд╛ рдЖрдзрд╛рд░рд┐рдд рдЧрддрд┐рд╢реАрд▓ рд░реВрдкрдорд╛ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░рд┐рдПрдХреЛ рдЫ: pm.max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers.
pm = рдорд╛рдЧ - рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рдорд╛рдЧрдорд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдиреНрдЫ (рдЧрддрд┐рд╢реАрд▓ рд╕рд┐рд░реНрдЬрдирд╛рдХреЛ рд╡рд┐рдкрд░рд┐рдд, рдЬрдм pm.start_servers рд╕реЗрд╡рд╛ рд╕реБрд░реБ рд╣реБрдиреНрдЫ)ред
pm = рд╕реНрдерд┐рд░ - рдмрд╛рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рдирд┐рд╢реНрдЪрд┐рдд рдЫ рд░ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдХреЗрдд рдЧрд░рд┐рдПрдХреЛ рдЫ pm.max_children.

рд╡рд┐рд╡рд░рдгрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐, рд╣реЗрд░реНрдиреБрд╣реЛрд╕реН рд╡рд┐рд╢реНрд╡рд╡реНрдпрд╛рдкреА рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВрдХреЛ рдкреВрд░реНрдг рд╕реВрдЪреА php-fpm.conf.

PHP-FPM рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреНрд░рдмрдиреНрдзрдХ рд░ CPU рдлреНрд░рд┐рдХреНрд╡реЗрдиреНрд╕реА рдирд┐рдпрдиреНрддреНрд░рдХ рдмреАрдЪ рд╕рдорд╛рдирддрд╛рд╣рд░реВ

рдпреЛ рдЕрдлрдЯреЛрдкрд┐рдХ рдЬрд╕реНрддреЛ рд▓рд╛рдЧреНрди рд╕рдХреНрдЫ, рддрд░ рдо рдпрд╕рд▓рд╛рдИ PHP-FPM рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирдХреЛ рд╢реАрд░реНрд╖рдХрдорд╛ рд▓рд┐рдЩреНрдХ рдЧрд░реНрди рдЬрд╛рдБрджреИрдЫреБред рд▓реНрдпрд╛рдкрдЯрдк, рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рди рд╡рд╛ рд╕рдорд░реНрдкрд┐рдд рд╕рд░реНрднрд░рдорд╛ - рдХрдореНрддрд┐рдорд╛ рдПрдХ рдкрдЯрдХ рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕реБрд╕реНрдд рд╣реБрдиреЗ рдЕрдиреБрднрд╡ рдХрд╕рд▓реЗ рдЧрд░реЗрдХреЛ рдЫреИрди? CPU рдлреНрд░рд┐рдХреНрд╡реЗрдиреНрд╕реА рд╕реНрдХреЗрд▓рд┐рдВрдЧ рд╕рдореНрдЭрдирд╛ рдЫ? рдпреА рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рдЙрдкрд▓рдмреНрдз рдЫрдиреН nix рд░ Windows рд▓реЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдереНрд░реЛрдЯрд▓ рд╕реЗрдЯрд┐рдЩ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реЗрд░ рдкреНрд░рдгрд╛рд▓реА рдкреНрд░рджрд░реНрд╢рди рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕реБрдзрд╛рд░ рдЧрд░реНрди рд╕рдХреНрдЫ рдорд╛рдЧ рдмрдореЛрдЬрд┐рдо рдорд╛ рдкреНрд░рджрд░реНрд╢рди *ред рдпрд╕ рдкрдЯрдХ, рд╡рд░реНрдгрдирд╣рд░реВ рддреБрд▓рдирд╛ рдЧрд░реМрдВ рд░ рд╕рдорд╛рдирддрд╛рд╣рд░реВ рд╣реЗрд░реМрдВ:

рдЧрднрд░реНрдирд░ = рдорд╛рдЧ - рд╣рд╛рд▓рдХреЛ рд▓реЛрдбрдорд╛ рдирд┐рд░реНрднрд░ рдЧрд░реНрджреИ рдкреНрд░реЛрд╕реЗрд╕рд░ рдлреНрд░рд┐рдХреНрд╡реЗрдиреНрд╕реАрдХреЛ рдЧрддрд┐рд╢реАрд▓ рд╕реНрдХреЗрд▓рд┐рдВрдЧред рджреНрд░реБрдд рд░реВрдкрдорд╛ рдЕрдзрд┐рдХрддрдо рдлреНрд░рд┐рдХреНрд╡реЗрдиреНрд╕реАрдорд╛ рдЬрд╛рдиреНрдЫ рд░ рддреНрдпрд╕рдкрдЫрд┐ рдирд┐рд╖реНрдХреНрд░рд┐рдпрддрд╛рдХреЛ рдЕрд╡рдзрд┐ рдмрдвреНрджреИ рдЬрд╛рдБрджрд╛ рдпрд╕рд▓рд╛рдИ рдШрдЯрд╛рдЙрдБрдЫред
рдЧрднрд░реНрдирд░ = рд░реВрдврд╝рд┐рд╡рд╛рджреА = рд╣рд╛рд▓рдХреЛ рд▓реЛрдбрдорд╛ рдирд┐рд░реНрднрд░ рдЧрд░реНрджреИ рдЧрддрд┐рд╢реАрд▓ рдлреНрд░рд┐рдХреНрд╡реЗрдиреНрд╕реА рд╕реНрдХреЗрд▓рд┐рдВрдЧред ondemand рднрдиреНрджрд╛ рдзреЗрд░реИ рд╕рд╣рдЬ рд░реВрдкрдорд╛ рдлреНрд░рд┐рдХреНрд╡реЗрдиреНрд╕реА рдмрдврд╛рдЙрдБрдЫ рд░ рдШрдЯрд╛рдЙрдБрдЫред
рд░рд╛рдЬреНрдпрдкрд╛рд▓ = рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрди - рдЖрд╡реГрддреНрддрд┐ рд╕рдзреИрдВ рдЕрдзрд┐рдХрддрдо рдЫред

рд╡рд┐рд╡рд░рдгрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐, рд╣реЗрд░реНрдиреБрд╣реЛрд╕реН рдкреНрд░реЛрд╕реЗрд╕рд░ рдлреНрд░рд┐рдХреНрд╡реЗрдиреНрд╕реА рдирд┐рдпрд╛рдордХ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВрдХреЛ рдкреВрд░реНрдг рд╕реВрдЪреА.

рд╕рдорд╛рдирддрд╛рд╣рд░реВ рд╣реЗрд░реНрдиреБрд╣реЛрд╕реН? рдо рдпреЛ рддреБрд▓рдирд╛ рджреЗрдЦрд╛рдЙрди рдЪрд╛рд╣рдиреНрдЫреБ рдХрд┐ рдпреЛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА рд╕рдмреИ рднрдиреНрджрд╛ рд░рд╛рдореНрд░реЛ рдЫ рднрдиреЗрд░ рд╡рд┐рд╢реНрд╡рд╕реНрдд рдкрд╛рд░реНрди pm рд╕реНрдерд┐рд░ PHP-FPM рдХреЛ рд▓рд╛рдЧреАред

рдкреНрд░реЛрд╕реЗрд╕рд░ рдирд┐рдпрд╛рдордХ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ рд▓рд╛рдЧрд┐ рдкреНрд░рджрд░реНрд╢рди рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдкрдорд╛ рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрди рдмрдврд╛рдЙрди рдорджреНрджрдд рдЧрд░реНрджрдЫ рдХрд┐рдирднрдиреЗ рдпреЛ рд▓рдЧрднрдЧ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд╕рд░реНрднрд░рдХреЛ CPU рд╕реАрдорд╛рдорд╛ рдирд┐рд░реНрднрд░ рдЫред рдпрд╕рдХрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд, рдирд┐рд╕реНрд╕рдиреНрджреЗрд╣, рддреНрдпрд╣рд╛рдБ рддрд╛рдкрдорд╛рди, рдмреНрдпрд╛рдЯреНрд░реА рдЪрд╛рд░реНрдЬ (рд▓реНрдпрд╛рдкрдЯрдкрдорд╛) рд░ 100% рдорд╛ рд▓рдЧрд╛рддрд╛рд░ рдкреНрд░реЛрд╕реЗрд╕рд░ рдЪрд▓рд╛рдЙрдБрджрд╛ рдЕрдиреНрдп рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯрд╣рд░реВ рдкрдирд┐ рдЫрдиреНред рдкреНрд░рджрд░реНрд╢рди рд╕реЗрдЯрд┐рдЩрд▓реЗ рд╕рдмреИрднрдиреНрджрд╛ рдЫрд┐рдЯреЛ рдкреНрд░реЛрд╕реЗрд╕рд░ рдкреНрд░рджрд░реНрд╢рди рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрджрдЫред рдкрдвреНрдиреБрд╣реЛрд╕реН, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдмрд╛рд░реЗ Raspberry Pi рдорд╛ force_turbo рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░, рдЬрд╕рдХреЛ рд╕рд╛рде рдЖрд░рдкреАрдЖрдИ рдкреНрдпрд╛рдирд▓рд▓реЗ рдирд┐рдпрд╛рдордХ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗрдЫ рдкреНрд░рджрд░реНрд╢рди, рдЬрд╣рд╛рдБ рдХрдо CPU рдШрдбреА рдЧрддрд┐рдХреЛ рдХрд╛рд░рдг рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрди рд╕реБрдзрд╛рд░ рдЕрдзрд┐рдХ рдзреНрдпрд╛рди рджрд┐рдиреЗрдЫред

рдЕрдзрд┐рдХрддрдо рд╕рд░реНрднрд░ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди pm рд╕реНрдерд┐рд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ

PHP-FPM рд╡рд┐рдХрд▓реНрдк pm рд╕реНрдерд┐рд░ рдзреЗрд░реИ рд╣рджрд╕рдореНрдо рд╕рд░реНрднрд░рдорд╛ рдирд┐: рд╢реБрд▓реНрдХ рдореЗрдореЛрд░реАрдорд╛ рдирд┐рд░реНрднрд░ рдЧрд░реНрджрдЫред рдпрджрд┐ рдореЗрдореЛрд░реА рдХрдо рдЫ рднрдиреЗ, рдпреЛ рдЫрдиреМрдЯ рдЧрд░реНрди рд░рд╛рдореНрд░реЛ рдЫ рдорд╛рдЧ рдмрдореЛрдЬрд┐рдо рд╡рд╛ рдЧрддрд┐рд╢реАрд▓ред рдЕрд░реНрдХреЛрддрд░реНрдл, рдпрджрд┐ рддрдкрд╛рдЗрдБрд╕рдБрдЧ рдореЗрдореЛрд░реА рдЫ рднрдиреЗ, рддрдкрд╛рдЗрдБ рдмреЗрд▓реБрдХрд╛ рд╕реЗрдЯ рдЧрд░реЗрд░ PHP рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреНрд░рдмрдиреНрдзрдХ рдУрднрд░рд╣реЗрдбрдмрд╛рдЯ рдмрдЪреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд╕реНрдерд┐рд░ рдЕрдзрд┐рдХрддрдо рд╕рд░реНрднрд░ рдХреНрд╖рдорддрд╛рдорд╛ред рдЕрд░реНрдХреЛ рд╢рдмреНрджрдорд╛, рдпрджрд┐ рд╕рдмреИ рдХреБрд░рд╛ рд░рд╛рдореНрд░реЛрд╕рдБрдЧ рдЧрдгрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдЫ рднрдиреЗ, рддрдкрд╛рдИрдВрд▓реЗ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ pm.static PHP-FPM рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдХреЛ рдЕрдзрд┐рдХрддрдо рдорд╛рддреНрд░рд╛рдорд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рдХрдо рдореЗрдореЛрд░реА рд╡рд╛ рдХреНрдпрд╛рд╕рдХреЛ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдирдЧрд░реАред рддрд░ рдпрддрд┐ рдЙрдЪреНрдЪ рдЫреИрди рдХрд┐ рдпрд╕рд▓реЗ рдкреНрд░реЛрд╕реЗрд╕рд░рд╣рд░реВрд▓рд╛рдИ рдУрдЭреЗрд▓рдорд╛ рдкрд╛рд░реНрдЫ рд░ PHP-FPM рдЕрдкрд░реЗрд╕рдирд╣рд░реВрдХреЛ рдЧреБрдЪреНрдЫрд╛рд▓рд╛рдИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди рдкрд░реНрдЦрдиреНрдЫред.

PHP-FPM рд╕реЗрдЯрдЕрдк: рдЕрдзрд┐рдХрддрдо рдкреНрд░рджрд░реНрд╢рдирдХреЛ рд▓рд╛рдЧрд┐ pm рд╕реНрдерд┐рд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН

рдорд╛рдерд┐рдХреЛ рд╕реНрдХреНрд░рд┐рдирд╕рдЯрдорд╛, рд╕рд░реНрднрд░рд╕рдБрдЧ рдЫ pm = рд╕реНрдерд┐рд░ рд░ pm.max_children = 100, рд░ рдпрд╕рд▓реЗ рдЙрдкрд▓рдмреНрдз 10 рдордзреНрдпреЗ рд▓рдЧрднрдЧ 32 GB рд▓рд┐рдиреНрдЫред рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдЧрд░рд┐рдПрдХрд╛ рд╕реНрддрдореНрднрд╣рд░реВрдорд╛ рдзреНрдпрд╛рди рджрд┐рдиреБрд╣реЛрд╕реН, рдпрд╣рд╛рдБ рд╕рдмреИ рдХреБрд░рд╛ рд╕реНрдкрд╖реНрдЯ рдЫред рдпрд╕ рд╕реНрдХреНрд░рд┐рдирд╕рдЯрдорд╛ рдЧреБрдЧрд▓ рдПрдирд╛рд▓рд┐рдЯрд┐рдХреНрд╕рдорд╛ рд▓рдЧрднрдЧ 200 рд╕рдХреНрд░рд┐рдп рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВ (60 рд╕реЗрдХреЗрдиреНрдб рднрдиреНрджрд╛ рдмрдвреА) рдерд┐рдПред рдпрд╕ рд╕реНрддрд░рдорд╛, рд▓рдЧрднрдЧ 70% PHP-FPM рдмрд╛рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рдЕрдЭреИ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдЫрдиреНред рдпрд╕рдХреЛ рдорддрд▓рдм PHP-FPM рд╣рд╛рд▓рдХреЛ рдЯреНрд░рд╛рдлрд┐рдХрдХреЛ рдкрд░реНрд╡рд╛рд╣ рдирдЧрд░реА рд╕рд░реНрднрд░ рд╕реНрд░реЛрддрд╣рд░реВрдХреЛ рдЕрдзрд┐рдХрддрдо рдорд╛рддреНрд░рд╛рдорд╛ рд╕рдзреИрдВ рд╕реЗрдЯ рд╣реБрдиреНрдЫред рдПрдХ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдкреНрд░рдХреНрд░рд┐рдпрд╛рд▓реЗ рдЯреНрд░рд╛рдлрд┐рдХ рд╢рд┐рдЦрд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдкрд░реНрдЦрдиреНрдЫ рд░ рддреБрд░реБрдиреНрддреИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджрд┐рдиреНрдЫред рддрдкрд╛рдИрдВрд▓реЗ рд╕рдореНрдо рдкрд░реНрдЦрдиреБ рдкрд░реНрджреИрди pm рдмрд╛рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗрдЫ рд░ рддреНрдпрд╕рдкрдЫрд┐ рдЕрд╡рдзрд┐ рд╕рдорд╛рдкреНрдд рднрдПрдкрдЫрд┐ рд╕рдорд╛рдкреНрдд рд╣реБрдиреЗрдЫ pm.process_idle_timeoutред рдореИрд▓реЗ рдзреЗрд░реИ рдЙрдЪреНрдЪ рдорд╛ рдореВрд▓реНрдп рд╕реЗрдЯ pm.max_requestsрдХрд┐рдирднрдиреЗ рдпреЛ PHP рдорд╛ рдореЗрдореЛрд░реА рд▓реАрдХ рдирднрдПрдХреЛ рдХрд╛рдо рдЧрд░реНрдиреЗ рд╕рд░реНрднрд░ рд╣реЛред рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ pm.max_requests = 0 рдпрджрд┐ рддрдкрд╛рдИрдВ рдЕрд╡рд╕реНрдерд┐рдд рд░ рднрд╡рд┐рд╖реНрдпрдХрд╛ PHP рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВрдорд╛ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд╡рд┐рд╢реНрд╡рд╕реНрдд рд╣реБрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ рд╕реНрдерд┐рд░рд╕рдБрдЧред рддрд░ рд╕рдордпрд╕рдБрдЧреИ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВ рдкреБрди: рдЪрд▓рд╛рдЙрдиреБ рд░рд╛рдореНрд░реЛ рд╣реБрдиреНрдЫред рдЕрдиреБрд░реЛрдзрд╣рд░реВрдХреЛ рдареВрд▓реЛ рд╕рдВрдЦреНрдпрд╛ рд╕реЗрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рдХрд┐рдирднрдиреЗ рд╣рд╛рдореА рдЕрдирд╛рд╡рд╢реНрдпрдХ pm рд▓рд╛рдЧрддрд╣рд░реВрдмрд╛рдЯ рдмрдЪреНрди рдЪрд╛рд╣рдиреНрдЫреМрдВред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдХрдореНрддрд┐рдорд╛ pm.max_requests = 1000 - рдорд╛рддреНрд░рд╛ рдорд╛ рдирд┐рд░реНрднрд░ рдЧрд░реНрджрдЫ pm.max_children рд░ рдкреНрд░рддрд┐ рд╕реЗрдХреЗрдиреНрдб рдЕрдиреБрд░реЛрдзрд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ред

рд╕реНрдХреНрд░рд┐рдирд╕рдЯрд▓реЗ рдЖрджреЗрд╢ рджреЗрдЦрд╛рдЙрдБрдЫ рд▓рд┐рдирдХреНрд╕ рд╢реАрд░реНрд╖, u (рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛) рд░ PHP-FPM рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рджреНрд╡рд╛рд░рд╛ рдлрд┐рд▓реНрдЯрд░ рдЧрд░рд┐рдПрдХреЛред рдХреЗрд╡рд▓ рдкрд╣рд┐рд▓реЛ 50 рд╡рд╛ рд╕реЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рджреЗрдЦрд╛рдЗрдиреНрдЫ (рдореИрд▓реЗ рдареНрдпрд╛рдХреНрдХреИ рдЧрдгрдирд╛ рдЧрд░реЗрди), рддрд░ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдкрдорд╛ рд╢реАрд░реНрд╖рд▓реЗ рдЯрд░реНрдорд┐рдирд▓ рд╕рдЮреНрдЭреНрдпрд╛рд▓рдорд╛ рдлрд┐рдЯ рд╣реБрдиреЗ рд╢реАрд░реНрд╖ рддрдереНрдпрд╛рдЩреНрдХрд╣рд░реВ рджреЗрдЦрд╛рдЙрдБрдЫред рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛ % CPU (% CPU) рджреНрд╡рд╛рд░рд╛ рдХреНрд░рдордмрджреНрдзред рд╕рдмреИ 100 PHP-FPM рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рд╣реЗрд░реНрди, рдЖрджреЗрд╢ рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реН:

top -bn1 | grep php-fpm

pm ondemand рд░ dynamic рдХрд╣рд┐рд▓реЗ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ

рдпрджрд┐ рддрдкрд╛рдЗрдБ pm рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ рдЧрддрд┐рд╢реАрд▓, рдпрд╕реНрддрд╛ рддреНрд░реБрдЯрд┐рд╣рд░реВ рджреЗрдЦрд╛ рдкрд░реНрдЫрдиреН:

WARNING: [pool xxxx] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 4 idle, and 59 total children

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

PM рдЧрддрд┐рд╢реАрд▓ рд░ рд╡рд┐рд╢реЗрд╖ рдЧрд░реА рдорд╛рдЧ рдмрдореЛрдЬрд┐рдо рдпрджрд┐ рддрдкрд╛рдИрдВрд╕рдБрдЧ рдзреЗрд░реИ PHP-FPM рдкреВрд▓рд╣рд░реВ рдЫрдиреН рднрдиреЗ рдХрд╛рдордорд╛ рдЖрдЙрди рд╕рдХреНрдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдЗрдБ рд╡рд┐рднрд┐рдиреНрди рдкреВрд▓рд╣рд░реВрдорд╛ рдзреЗрд░реИ cPanel рдЦрд╛рддрд╛рд╣рд░реВ рд╡рд╛ рдмрд╣реБ рд╡реЗрдмрд╕рд╛рдЗрдЯрд╣рд░реВ рд╣реЛрд╕реНрдЯ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫред рдорд╕рдБрдЧ 100+ cpanel рдЦрд╛рддрд╛рд╣рд░реВ рд░ рд▓рдЧрднрдЧ 200 рдбреЛрдореЗрдирд╣рд░реВ рднрдПрдХреЛ рд╕рд░реНрднрд░ рдЫ, рд░ pm.static рд╡рд╛ рдбрд╛рдпрдирд╛рдорд┐рдХрд▓реЗ рдкрдирд┐ рдорд▓рд╛рдИ рдмрдЪрдд рдЧрд░реНрджреИрдиред рддрдкрд╛рдИрд▓рд╛рдИ рдпрд╣рд╛рдБ рдЪрд╛рд╣рд┐рдиреЗ рд╕рдмреИ рдЫ рдорд╛рдЧ рдмрдореЛрдЬрд┐рдо, рдЬреЗ рднрдП рдкрдирд┐, рд╡реЗрдмрд╕рд╛рдЗрдЯрд╣рд░реВрдХреЛ рджреБрдИ рддрд┐рд╣рд╛рдЗ рднрдиреНрджрд╛ рдмрдвреАрд▓реЗ рдереЛрд░реИ рд╡рд╛ рдХреБрдиреИ рдЯреНрд░рд╛рдлрд┐рдХ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрджреИрди, рд░ рд╕рд╛рде рдорд╛рдЧ рдмрдореЛрдЬрд┐рдо рд╕рдмреИ рдмрд╛рд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рдмрдиреНрдж рд╣реБрдиреЗрдЫрдиреН, рдЬрд╕рд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ рдзреЗрд░реИ рдореЗрдореЛрд░реА рдмрдЪрдд рдЧрд░реНрдиреЗрдЫ! рд╕реМрднрд╛рдЧреНрдп рджреЗрдЦрд┐, cPanel рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдпреЛ рдпрд╛рдж рдЧрд░реЗ рд░ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдорд╛рди рд╕реЗрдЯ рдЧрд░реЗ рдорд╛рдЧ рдмрдореЛрдЬрд┐рдоред рдкрд╣рд┐рд▓реЗ, рдЬрдм рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдерд┐рдпреЛ рдЧрддрд┐рд╢реАрд▓, PHP-FPM рд╡реНрдпрд╕реНрдд рд╕рд╛рдЭрд╛ рд╕рд░реНрднрд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрдпреБрдХреНрдд рдерд┐рдПрдиред рдзреЗрд░реИрд▓реЗ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрдХрд╛ рдЫрдиреН suPHP, рдХрд┐рдирднрдиреЗ pm рдЧрддрд┐рд╢реАрд▓ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдкреЛрдЦрд░реАрд╣рд░реВ рд░ cPanel PHP-FPM рдЦрд╛рддрд╛рд╣рд░реВрд╕рдБрдЧ рдкрдирд┐ рдореЗрдореЛрд░реА рдЦрдкрдд рднрдпреЛред рд╕рдореНрднрд╡рддрдГ, рдпрджрд┐ рдЯреНрд░рд╛рдлрд┐рдХ рд░рд╛рдореНрд░реЛ рдЫ рднрдиреЗ, рддрдкрд╛рдИрд▓рд╛рдИ PHP-FPM рдкреВрд▓рд╣рд░реВ (рд╕рд╛рдЭрд╛ рд╣реЛрд╕реНрдЯрд┐рдЩ) рдХреЛ рдареВрд▓реЛ рд╕рдВрдЦреНрдпрд╛рдХреЛ рд╕рд╛рде рд╕рд░реНрднрд░рдорд╛ рд╣реЛрд╕реНрдЯ рдЧрд░рд┐рдиреЗ рдЫреИрдиред

рдирд┐рд╖реНрдХрд░реНрд╖рдорд╛

рдпрджрд┐ рддрдкрд╛рдЗрдБ PHP-FPM рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ рд╣реБрдиреБрд╣реБрдиреНрдЫ рд░ рддрдкрд╛рдЗрдБрдХреЛ рдЯреНрд░рд╛рдлрд┐рдХ рднрд╛рд░реА рдЫ, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреНрд░рдмрдиреНрдзрдХрд╣рд░реВ рдорд╛рдЧ рдмрдореЛрдЬрд┐рдо ╨╕ рдЧрддрд┐рд╢реАрд▓ PHP-FPM рдХреЛ рд▓рд╛рдЧрд┐ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдЕрдиреНрддрд░реНрдирд┐рд╣рд┐рдд рдУрднрд░рд╣реЗрдбрдХреЛ рдХрд╛рд░рдгрд▓реЗ рд╕реАрдорд┐рдд рдереНрд░реБрдкреБрдЯ рд╣реБрдиреЗрдЫред рддрдкрд╛рдИрдХреЛ рдкреНрд░рдгрд╛рд▓реА рдмреБрдЭреНрдиреБрд╣реЛрд╕реН рд░ рдЕрдзрд┐рдХрддрдо рд╕рд░реНрднрд░ рдХреНрд╖рдорддрд╛ рдЕрдиреБрд╕рд╛рд░ PHP-FPM рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдкрд╣рд┐рд▓реЛ рд╕реЗрдЯ pm.max_children рдЕрдзрд┐рдХрддрдо pm рдЙрдкрдпреЛрдЧ рдорд╛ рдирд┐рд░реНрднрд░ рдЧрд░реНрджрдЫ рдЧрддрд┐рд╢реАрд▓ рд╡рд╛ рдорд╛рдЧ рдмрдореЛрдЬрд┐рдо, рд░ рддреНрдпрд╕рдкрдЫрд┐ рдпреЛ рдорд╛рдирд▓рд╛рдИ рд╕реНрддрд░рдорд╛ рдмрдврд╛рдЙрдиреБрд╣реЛрд╕реН рдЬрд╣рд╛рдБ рдореЗрдореЛрд░реА рд░ рдкреНрд░реЛрд╕реЗрд╕рд░рд▓реЗ рдУрднрд░рд▓реЛрдб рдирдЧрд░реА рдХрд╛рдо рдЧрд░реНрдиреЗрдЫред рддрдкрд╛рдИрдВрд▓реЗ рддреНрдпреЛ рд╕рдВрдЧ рдпрд╛рдж рдЧрд░реНрдиреБрд╣реБрдиреЗрдЫ pm рд╕реНрдерд┐рд░, рддрдкрд╛рдИрд╕рдБрдЧ рдореЗрдореЛрд░реАрдорд╛ рд╕рдмреИ рдХреБрд░рд╛ рднрдПрдХреЛ рд╣реБрдирд╛рд▓реЗ, рдЯреНрд░рд╛рдлрд┐рдХ рд╕реНрдкрд╛рдЗрдХрд▓реЗ рд╕рдордпрдХреЛ рд╕рд╛рдердорд╛ рдХрдо CPU рд╕реНрдкрд╛рдЗрдХрд╣рд░реВ рдирд┐рдореНрддреНрдпрд╛рдЙрдиреЗрдЫ, рд░ рд╕рд░реНрднрд░ рд░ CPU рд▓реЛрдб рдФрд╕рдд рд╕реНрддрд░ рдШрдЯреНрдиреЗрдЫред рдФрд╕рдд PHP-FPM рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЖрдХрд╛рд░ рд╡реЗрдм рд╕рд░реНрднрд░рдорд╛ рдирд┐рд░реНрднрд░ рдЧрд░реНрджрдЫ рд░ рдореНрдпрд╛рдиреБрдЕрд▓ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдЖрд╡рд╢реНрдпрдХ рдЫ, рддреНрдпрд╕реИрд▓реЗ рдЕрдзрд┐рдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреНрд░рдмрдиреНрдзрдХрд╣рд░реВ рдЫрдиреНред рдЧрддрд┐рд╢реАрд▓ ╨╕ рдорд╛рдЧ рдмрдореЛрдЬрд┐рдо - рдЕрдзрд┐рдХ рд▓реЛрдХрдкреНрд░рд┐рдпред рдорд▓рд╛рдИ рдЖрд╢рд╛ рдЫ рд▓реЗрдЦ рдЙрдкрдпреЛрдЧреА рдерд┐рдпреЛред

DUP рдмреЗрдиреНрдЪрдорд╛рд░реНрдХ рдЪрд╛рд░реНрдЯ рдердкрд┐рдпреЛ abред рдпрджрд┐ PHP-FPM рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рдореЗрдореЛрд░реАрдорд╛ рдЫрдиреН рднрдиреЗ, рддрд┐рдиреАрд╣рд░реВ рдмрд╕реНрдиреЗ рд░ рдкрд░реНрдЦрдиреЗ рдард╛рдЙрдБрдорд╛ рдореЗрдореЛрд░реА рдЦрдкрддрдХреЛ рдЦрд░реНрдЪрдорд╛ рдкреНрд░рджрд░реНрд╢рди рдмрдвреНрдЫред рдЖрдлреНрдиреЛ рд▓рд╛рдЧрд┐ рдЙрддреНрддрдо рд╡рд┐рдХрд▓реНрдк рдЦреЛрдЬреНрдиреБрд╣реЛрд╕реНред

PHP-FPM рд╕реЗрдЯрдЕрдк: рдЕрдзрд┐рдХрддрдо рдкреНрд░рджрд░реНрд╢рдирдХреЛ рд▓рд╛рдЧрд┐ pm рд╕реНрдерд┐рд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН

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

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