ΠΠ΅ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠ°Π½Π° Π²Π΅ΡΡΠΈΡ Π½Π° ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ Π΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π° Π½Π°
Π©Π΅ Π²ΠΈ ΠΊΠ°ΠΆΠ° Π½Π°ΠΊΡΠ°ΡΠΊΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠ΅ Π΄Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ PHP-FPM, Π·Π° Π΄Π° ΡΠ²Π΅Π»ΠΈΡΠΈΡΠ΅ ΠΏΡΠΎΠΏΡΡΠΊΠ°ΡΠ΅Π»Π½Π°ΡΠ° ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ, Π΄Π° Π½Π°ΠΌΠ°Π»ΠΈΡΠ΅ Π»Π°ΡΠ΅Π½ΡΠ½ΠΎΡΡΡΠ° ΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ° ΠΈ ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΏΠΎ-ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ. ΠΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΡΠ΅Π΄ΡΡ PM (ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΈ) Π² PHP-FPM Π΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅Π½, ΠΈ Π°ΠΊΠΎ Π½ΡΠΌΠ°ΡΠ΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ ΠΏΠ°ΠΌΠ΅Ρ, ΡΠΎΠ³Π°Π²Π° Π΅ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅ Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ OnDemand. ΠΠ΅ΠΊΠ° ΡΡΠ°Π²Π½ΠΈΠΌ 2 ΠΎΠΏΡΠΈΠΈ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡΠ° Π½Π° php.net ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊ ΠΌΠΎΡΡ Π»ΡΠ±ΠΈΠΌ ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ°Π²Π° ΠΎΡ ΡΡΡ ΡΡΠ°ΡΠΈΡΠ΅Π½ 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 ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠ° Π½Π° ΡΠ΅ΡΡΠΎΡΠ°ΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ°
Π’ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΈΠ·Π²ΡΠ½ ΡΠ΅ΠΌΠ°ΡΠ°, Π½ΠΎ ΡΠ΅ Π³ΠΎ ΡΠ²ΡΡΠΆΠ° Ρ ΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° PHP-FPM. ΠΠΎΠΉ Π½Π΅ Π΅ ΠΈΠΌΠ°Π» ΠΏΠΎΠ½Π΅ Π²Π΅Π΄Π½ΡΠΆ Π·Π°Π±Π°Π²ΡΠ½Π΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ° - Π½Π° Π»Π°ΠΏΡΠΎΠΏ, Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π° ΠΈΠ»ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»Π΅Π½ ΡΡΡΠ²ΡΡ. ΠΠΎΠΌΠ½ΠΈΡΠ΅ Π»ΠΈ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ΅ΡΡΠΎΡΠ°ΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ°? Π’Π΅Π·ΠΈ ΠΎΠΏΡΠΈΠΈ ΡΠ° Π½Π°Π»ΠΈΡΠ½ΠΈ Π·Π° nix ΠΈ Windows ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΏΠΎΠ΄ΠΎΠ±ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° ΠΈ ΠΎΡΠ·ΠΈΠ²ΡΠΈΠ²ΠΎΡΡΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°, ΠΊΠ°ΡΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΡΠ° Π½Π° Π΄ΡΠΎΡΠ΅Π»Π° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ° ΠΎΡ OnDemand Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ*. Π’ΠΎΠ·ΠΈ ΠΏΡΡ Π½Π΅ΠΊΠ° ΡΡΠ°Π²Π½ΠΈΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡΡΠ° ΠΈ Π΄Π° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΏΡΠΈΠ»ΠΈΠΊΠΈΡΠ΅:
Π³ΡΠ±Π΅ΡΠ½Π°ΡΠΎΡ=ΠΏΠΎ Π·Π°ΡΠ²ΠΊΠ° β Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅ΡΡΠΎΡΠ°ΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ° Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ ΡΠ΅ΠΊΡΡΠΎΡΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅. ΠΡΡΠ·ΠΎ ΡΠΊΠ°ΡΠ° Π΄ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½Π° ΡΠ΅ΡΡΠΎΡΠ° ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° Ρ Π½Π°ΠΌΠ°Π»ΡΠ²Π° Ρ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ Π½Π° Π½Π΅Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡ.
Π³ΡΠ±Π΅ΡΠ½Π°ΡΠΎΡ=ΠΊΠΎΠ½ΡΠ΅ΡΠ²Π°ΡΠΎΡ= Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅ΡΡΠΎΡΠ°ΡΠ° Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ ΡΠ΅ΠΊΡΡΠΎΡΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅. Π£Π²Π΅Π»ΠΈΡΠ°Π²Π° ΠΈ Π½Π°ΠΌΠ°Π»ΡΠ²Π° ΡΠ΅ΡΡΠΎΡΠ°ΡΠ° ΠΏΠΎ-ΠΏΠ»Π°Π²Π½ΠΎ ΠΎΡ ΠΏΡΠΈ ΠΏΠΎΠΈΡΠΊΠ²Π°Π½Π΅.
ΠΡΠ±Π΅ΡΠ½Π°ΡΠΎΡ = ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ β ΡΠ΅ΡΡΠΎΡΠ°ΡΠ° Π²ΠΈΠ½Π°Π³ΠΈ Π΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½Π°.
ΠΠ° ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ Π²ΠΆ
ΠΠΈΠΆΡΠ΅ ΠΏΡΠΈΠ»ΠΈΠΊΠΈΡΠ΅? ΠΡΠΊΠ°Ρ Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ° ΡΠΎΠ²Π° ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅, Π·Π° Π΄Π° Π²ΠΈ ΡΠ±Π΅Π΄Ρ, ΡΠ΅ Π΅ Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠ΅ Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ pm static Π·Π° PHP-FPM.
ΠΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡΠ° Π½Π° ΡΠ΅Π³ΡΠ»Π°ΡΠΎΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ° ΠΏΡΡΡΠΎΡΠΌΠ°Π½Ρ ΠΏΠΎΠΌΠ°Π³Π° Π·Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΡ Π΅ ΠΏΠΎΡΡΠΈ ΠΈΠ·ΡΡΠ»ΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠ° ΠΎΡ Π»ΠΈΠΌΠΈΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ° Π½Π° ΡΡΡΠ²ΡΡΠ°. Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΡΠΌ ΡΠΎΠ²Π°, ΡΠ°Π·Π±ΠΈΡΠ° ΡΠ΅, ΠΈΠΌΠ° ΠΈ ΡΠ°ΠΊΡΠΎΡΠΈ ΠΊΠ°ΡΠΎ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΠ°, Π·Π°ΡΡΠ΄ Π½Π° Π±Π°ΡΠ΅ΡΠΈΡΡΠ° (Π² Π»Π°ΠΏΡΠΎΠΏ) ΠΈ Π΄ΡΡΠ³ΠΈ ΡΡΡΠ°Π½ΠΈΡΠ½ΠΈ Π΅ΡΠ΅ΠΊΡΠΈ ΠΎΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΡΠΎ ΠΏΡΡΠΊΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ° Π½Π° 100%. ΠΠ°ΡΡΡΠΎΠΉΠΊΠ°ΡΠ° Π·Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ Π³Π°ΡΠ°Π½ΡΠΈΡΠ° Π½Π°ΠΉ-Π±ΡΡΠ·Π°ΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ°. ΠΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π·Π°
ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° pm static Π·Π° ΠΏΠΎΡΡΠΈΠ³Π°Π½Π΅ Π½Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ Π½Π° ΡΡΡΠ²ΡΡΠ°
PHP-FPM ΠΎΠΏΡΠΈΡ pm static Π΄ΠΎ Π³ΠΎΠ»ΡΠΌΠ° ΡΡΠ΅ΠΏΠ΅Π½ Π·Π°Π²ΠΈΡΠΈ ΠΎΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½Π°ΡΠ° ΠΏΠ°ΠΌΠ΅Ρ Π½Π° ΡΡΡΠ²ΡΡΠ°. ΠΠΊΠΎ ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π΅ ΠΌΠ°Π»ΠΊΠΎ, ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅ Π΅ Π΄Π° ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ OnDemand ΠΈΠ»ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅Π½. ΠΡ Π΄ΡΡΠ³Π° ΡΡΡΠ°Π½Π°, Π°ΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ ΠΏΠ°ΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π΅ΡΠ΅ ΠΏΡΠ΅ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΈ Π½Π° PHP, ΠΊΠ°ΡΠΎ Π·Π°Π΄Π°Π΄Π΅ΡΠ΅ pm ΡΡΠ°ΡΠΈΡΠ΅Π½ Π΄ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½ΠΈΡ ΠΊΠ°ΠΏΠ°ΡΠΈΡΠ΅Ρ Π½Π° ΡΡΡΠ²ΡΡΠ°. Π‘ Π΄ΡΡΠ³ΠΈ Π΄ΡΠΌΠΈ, Π°ΠΊΠΎ Π²ΡΠΈΡΠΊΠΎ Π΅ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΎ Π΄ΠΎΠ±ΡΠ΅, ΡΡΡΠ±Π²Π° Π΄Π° ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ pm.ΡΡΠ°ΡΠΈΡΠ΅Π½ Π΄ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½ΠΈΡ ΠΎΠ±Π΅ΠΌ PHP-FPM ΠΏΡΠΎΡΠ΅ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈ, Π±Π΅Π· Π΄Π° ΡΡΠ·Π΄Π°Π²Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Ρ Π½ΠΈΡΠΊΠ° ΠΏΠ°ΠΌΠ΅Ρ ΠΈΠ»ΠΈ ΠΊΠ΅Ρ. ΠΠΎ Π½Π΅ ΡΠΎΠ»ΠΊΠΎΠ²Π° Π²ΠΈΡΠΎΠΊΠ°, ΡΠ΅ Π΄Π° ΠΏΡΠ΅ΡΠΎΠ²Π°ΡΠΈ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈΡΠ΅ ΠΈ Π΄Π° Π½Π°ΡΡΡΠΏΠ° ΠΊΡΠΏ PHP-FPM ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΡΠ°ΠΊΠ°ΡΠΈ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈ.
ΠΠ° Π΅ΠΊΡΠ°Π½Π½Π°ΡΠ° ΡΠ½ΠΈΠΌΠΊΠ° ΠΏΠΎ-Π³ΠΎΡΠ΅ ΡΡΡΠ²ΡΡΡΡ ΠΈΠΌΠ° pm = ΡΡΠ°ΡΠΈΡΠ΅Π½ ΠΈ pm.max_children = 100, ΠΈ ΡΠΎΠ²Π° Π·Π°Π΅ΠΌΠ° ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»Π½ΠΎ 10 GB ΠΎΡ Π½Π°Π»ΠΈΡΠ½ΠΈΡΠ΅ 32. ΠΠ±ΡΡΠ½Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΌΠ°ΡΠΊΠΈΡΠ°Π½ΠΈΡΠ΅ ΠΊΠΎΠ»ΠΎΠ½ΠΈ, ΡΡΠΊ Π²ΡΠΈΡΠΊΠΎ Π΅ ΡΡΠ½ΠΎ. ΠΠ° ΡΠ°Π·ΠΈ Π΅ΠΊΡΠ°Π½Π½Π° ΡΠ½ΠΈΠΌΠΊΠ° ΠΈΠΌΠ°ΡΠ΅ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»Π½ΠΎ 200 Π°ΠΊΡΠΈΠ²Π½ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ (ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ 60 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ) Π² Google ΠΠ½Π°Π»ΠΈΠ·. ΠΠ° ΡΠΎΠ²Π° Π½ΠΈΠ²ΠΎ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»Π½ΠΎ 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 ΠΈ Π±ΡΠΎΡ Π½Π° Π·Π°ΡΠ²ΠΊΠΈΡΠ΅ Π² ΡΠ΅ΠΊΡΠ½Π΄Π°.
ΠΠΊΡΠ°Π½Π½Π°ΡΠ° ΡΠ½ΠΈΠΌΠΊΠ° ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ°
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 Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅Π½ ΠΈ ΠΏΠΎ-ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ OnDemand ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Π°ΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ PHP-FPM ΠΏΡΠ»ΠΎΠ²Π΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ Ρ ΠΎΡΡΠ²Π°ΡΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π°ΠΊΠ°ΡΠ½ΡΠΈ Π² cPanel ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ΅Π±ΡΠ°ΠΉΡΠΎΠ²Π΅ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΡΠ»ΠΎΠ²Π΅. ΠΠΌΠ°ΠΌ ΡΡΡΠ²ΡΡ Ρ, Π΄Π° ΡΠ΅ΡΠ΅ΠΌ, 100+ cpanel Π°ΠΊΠ°ΡΠ½ΡΠ° ΠΈ ΠΎΠΊΠΎΠ»ΠΎ 200 Π΄ΠΎΠΌΠ΅ΠΉΠ½Π° ΠΈ pm.static ΠΈΠ»ΠΈ Π΄ΠΎΡΠΈ dynamic Π½Π΅ Π±ΠΈΡ Π° ΠΌΠ΅ ΡΠΏΠ°ΡΠΈΠ»ΠΈ. ΠΡΠΈΡΠΊΠΎ, ΠΎΡ ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ Π½ΡΠΆΠ΄Π°Π΅ΡΠ΅ ΡΡΠΊ Π΅ OnDemand, Π² ΠΊΡΠ°Ρ Π½Π° ΠΊΡΠ°ΠΈΡΠ°ΡΠ°, ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ Π΄Π²Π΅ ΡΡΠ΅ΡΠΈ ΠΎΡ ΡΠ΅Π±ΡΠ°ΠΉΡΠΎΠ²Π΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π²Π°Ρ ΠΌΠ°Π»ΡΠΊ ΠΈΠ»ΠΈ Π½ΠΈΠΊΠ°ΠΊΡΠ² ΡΡΠ°ΡΠΈΠΊ, Π° ΡΡΡ OnDemand Π²ΡΠΈΡΠΊΠΈ Π΄ΡΡΠ΅ΡΠ½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ ΡΠ΅ ΠΎΡΠΏΠ°Π΄Π½Π°Ρ, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ Π½ΠΈ ΡΠΏΠ΅ΡΡΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΠΌΠ΅Ρ! ΠΠ° ΡΠ°ΡΡΠΈΠ΅, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° cPanel Π·Π°Π±Π΅Π»ΡΠ·Π°Ρ Π° ΡΠΎΠ²Π° ΠΈ Π·Π°Π΄Π°Π΄ΠΎΡ Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ OnDemand. ΠΡΠ΅Π΄ΠΈ, ΠΊΠΎΠ³Π°ΡΠΎ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π±Π΅ΡΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅Π½, PHP-FPM ΠΈΠ·ΠΎΠ±ΡΠΎ Π½Π΅ Π±Π΅ΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π·Π° Π½Π°ΡΠΎΠ²Π°ΡΠ΅Π½ΠΈ ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½ΠΈ ΡΡΡΠ²ΡΡΠΈ. ΠΠ½ΠΎΠ³ΠΎ ΡΠ° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π»ΠΈ suPHP, Π·Π°ΡΠΎΡΠΎ Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅Π½ ΠΊΠΎΠ½ΡΡΠΌΠΈΡΠ°Π½Π° ΠΏΠ°ΠΌΠ΅Ρ Π΄ΠΎΡΠΈ ΠΏΡΠΈ Π½Π΅Π°ΠΊΡΠΈΠ²Π½ΠΈ ΠΏΡΠ»ΠΎΠ²Π΅ ΠΈ cPanel PHP-FPM Π°ΠΊΠ°ΡΠ½ΡΠΈ. ΠΠ°ΠΉ-Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π°ΠΊΠΎ ΡΡΠ°ΡΠΈΠΊΡΡ Π΅ Π΄ΠΎΠ±ΡΡ, Π½ΡΠΌΠ° Π΄Π° Π±ΡΠ΄Π΅ΡΠ΅ Ρ ΠΎΡΡΠ²Π°Π½ΠΈ Π½Π° ΡΡΡΠ²ΡΡ Ρ Π³ΠΎΠ»ΡΠΌ Π±ΡΠΎΠΉ PHP-FPM ΠΏΡΠ»ΠΎΠ²Π΅ (ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½ Ρ ΠΎΡΡΠΈΠ½Π³).
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ PHP-FPM ΠΈ ΡΡΠ°ΡΠΈΠΊΡΡ Π²ΠΈ Π΅ Π³ΠΎΠ»ΡΠΌ, ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡΠΈ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΈ OnDemand ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅Π½ Π·Π° PHP-FPM ΡΠ΅ Π±ΡΠ΄Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π° ΠΏΡΠΎΠΏΡΡΠΊΠ°ΡΠ΅Π»Π½Π° ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ ΠΏΠΎΡΠ°Π΄ΠΈ ΠΏΡΠΈΡΡΡΠΈΡΠ΅ ΠΈΠΌ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΠ°Π·Ρ ΠΎΠ΄ΠΈ. Π Π°Π·Π±Π΅ΡΠ΅ΡΠ΅ Π²Π°ΡΠ°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΠΉΡΠ΅ PHP-FPM ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅ ΡΠΏΠΎΡΠ΅Π΄ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½ΠΈΡ ΠΊΠ°ΠΏΠ°ΡΠΈΡΠ΅Ρ Π½Π° ΡΡΡΠ²ΡΡΠ°. ΠΡΡΠ²ΠΈ Π½Π°Π±ΠΎΡ pm.max_children Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½Π°ΡΠ° ΡΠΏΠΎΡΡΠ΅Π±Π° Π½Π° Π²Π΅ΡΠ΅ΡΡΠ° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅Π½ ΠΈΠ»ΠΈ OnDemandΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ²Π΅Π»ΠΈΡΠ΅ΡΠ΅ ΡΠ°Π·ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡ Π΄ΠΎ Π½ΠΈΠ²ΠΎ, ΠΏΡΠΈ ΠΊΠΎΠ΅ΡΠΎ ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΎΡΡΡ ΡΠ΅ ΡΠ°Π±ΠΎΡΡΡ Π±Π΅Π· ΠΏΡΠ΅ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅. Π©Π΅ Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΡΠ΅, ΡΠ΅ Ρ pm static, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΈΠΌΠ°ΡΠ΅ Π²ΡΠΈΡΠΊΠΎ Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ°, ΠΏΠΈΠΊΠΎΠ²Π΅ΡΠ΅ Π½Π° ΡΡΠ°ΡΠΈΠΊΠ° ΡΠ΅ Π΄ΠΎΠ²Π΅Π΄Π°Ρ Π΄ΠΎ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΈΠΊΠΎΠ²Π΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ° Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ ΠΈ ΡΡΠ΅Π΄Π½ΠΈΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΡΠ²ΡΡΠ° ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ° ΡΠ΅ ΡΠ΅ ΠΈΠ·ΡΠ°Π²Π½ΡΡ. Π‘ΡΠ΅Π΄Π½ΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ Π½Π° PHP-FPM ΠΏΡΠΎΡΠ΅ΡΠ° Π·Π°Π²ΠΈΡΠΈ ΠΎΡ ΡΠ΅Π± ΡΡΡΠ²ΡΡΠ° ΠΈ ΠΈΠ·ΠΈΡΠΊΠ²Π° ΡΡΡΠ½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ, ΡΠ°ΠΊΠ° ΡΠ΅ ΡΠ° ΠΏΠΎ-Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡΠΈ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅Π½ ΠΈ OnDemand - ΠΏΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ΅Π½. ΠΠ°Π΄ΡΠ²Π°ΠΌ ΡΠ΅ ΡΡΠ°ΡΠΈΡΡΠ° Π΄Π° Π΅ Π±ΠΈΠ»Π° ΠΏΠΎΠ»Π΅Π·Π½Π°.
DUP ΠΠΎΠ±Π°Π²Π΅Π½Π° Π±Π΅Π½ΡΠΌΠ°ΡΠΊ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠ°
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com