PHP-FPM ืกืขื˜ืึทืคึผ: ื ื•ืฆืŸ PM ืกื˜ืึทื˜ื™ืง ืคึฟืึทืจ ืžืึทืงืกื™ืžื•ื ืคืึธืจืฉื˜ืขืœื•ื ื’

PHP-FPM ืกืขื˜ืึทืคึผ: ื ื•ืฆืŸ PM ืกื˜ืึทื˜ื™ืง ืคึฟืึทืจ ืžืึทืงืกื™ืžื•ื ืคืึธืจืฉื˜ืขืœื•ื ื’

ืึทืŸ ืึทื ืจืขื“ื™ื˜ื™ื“ ื•ื•ืขืจืกื™ืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ื“ืขื ืึทืจื˜ื™ืงืœ ืื™ื– ื’ืขื•ื•ืขืŸ ืขืจื™ื“ื–ืฉื ืึทืœื™ ืืจื•ื™ืก ืื•ื™ืฃ haydenjames.io ืื•ืŸ ืคืืจืขืคื ื˜ืœืขื›ื˜ ื“ื ืžื™ื˜ ืื™ืจ ืจืฉื•ืช ื“ืขืจ ืžื—ื‘ืจ.

ืื™ืš ื•ื•ืขื˜ ืคื™ืจืŸ ืื™ืจ ืื™ืŸ ืึท ื ืึทื˜ืฉืขืœ ื“ืขืจ ื‘ืขืกื˜ืขืจ ื•ื•ืขื’ ืฆื• ืงืึทื ืคื™ื’ื™ืขืจ PHP-FPM ืฆื• ืคืึทืจื’ืจืขืกืขืจืŸ ื˜ืจื•ืคึผื•ื˜, ืจืขื“ื•ืฆื™ืจืŸ ืœื™ื™ื˜ืึทื ืกื™ ืื•ืŸ ื ื•ืฆืŸ ืงืคึผื• ืื•ืŸ ื–ื›ึผืจื•ืŸ ืžืขืจ ืงืึทื ืกื™ืกื˜ืึทื ื˜ืœื™. ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜, ื“ื™ PM (ืคึผืจืึธืกืขืก ืคืึทืจื•ื•ืึทืœื˜ืขืจ) ืฉื•ืจื” ืื™ืŸ PHP-FPM ืื™ื– ื“ื™ื ืึทืžื™ืฉ, ืื•ืŸ ืื•ื™ื‘ ืื™ืจ ื˜ืึธืŸ ื ื™ื˜ ื”ืึธื‘ืŸ ื’ืขื ื•ื’ ื–ื›ึผืจื•ืŸ, ืขืก ืื™ื– ื‘ืขืกืขืจ ืฆื• ื™ื ืกื˜ืึทืœื™ืจืŸ ืึธื ื“ืขืžืึทื ื“. ืœืึธืžื™ืจ ืคืึทืจื’ืœื™ื™ึทื›ืŸ 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.conf.

ืกื™ืžืึทืœืขืจืึทื˜ื™ื– ืฆื•ื•ื™ืฉืŸ ื“ื™ PHP-FPM ืคึผืจืึธืฆืขืก ืคืึทืจื•ื•ืึทืœื˜ืขืจ ืื•ืŸ ื“ื™ ืงืคึผื• ืึธืคื˜ืงื™ื™ึทื˜ ืงืึธื ื˜ืจืึธืœืœืขืจ

ื“ืึธืก ืงืขืŸ ื•ื™ืกืงื•ืžืขืŸ ืึธืคื˜ืึธืคึผื™ืง, ืึธื‘ืขืจ ืื™ืš ื•ื•ืขืœ ืคึฟืึทืจื‘ื™ื ื“ื•ื ื’ ื“ืขื ืฆื• ื“ื™ ื˜ืขืžืข ืคื•ืŸ โ€‹โ€‹PHP-FPM ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ. ื•ื•ืขืจ ื”ืื˜ ื ื™ืฉื˜ ื™ืงืกืคึผื™ืจื™ืึทื ืกื˜ ืึท ืคึผืจืึทืกืขืกืขืจ ืกืœืึธื•ื“ืึทื•ืŸ ื‘ื™ื™ึท ืžื™ื ื“ืกื˜ืขืจ ืึทืžืึธืœ - ืื•ื™ืฃ ืึท ืœืึทืคึผื˜ืึทืคึผ, ื•ื•ื™ืจื˜ื•ืึทืœ ืžืึทืฉื™ืŸ ืึธื“ืขืจ ื“ืขื“ืึทืงื™ื™ื˜ืึทื“ ืกืขืจื•ื•ืขืจ. ื’ืขื“ืขื ืงื˜ ืงืคึผื• ืึธืคื˜ืงื™ื™ึทื˜ ืกืงื™ื™ืœื™ื ื’? ื“ื™ ืึธืคึผืฆื™ืขืก ื–ืขื ืขืŸ ื‘ื ื™ืžืฆื ืคึฟืึทืจ ื ื™ืงืก ืื•ืŸ Windows ืงืขื ืขืŸ ืคึฟืึทืจื‘ืขืกืขืจืŸ ืกื™ืกื˜ืขื ืคืึธืจืฉื˜ืขืœื•ื ื’ ืื•ืŸ ืจื™ืกืคึผืึทื ืกื™ื•ื•ื ืึทืก ื“ื•ืจืš ื˜ืฉืึทื ื’ื™ื ื’ ื“ื™ ืคึผืจืึทืกืขืกืขืจ ื’ืขืจื’ืœ ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ืคึฟื•ืŸ ืึธื ื“ืขืžืึทื ื“ ืื•ื™ืฃ ืคืึธืจืฉื˜ืขืœื•ื ื’*. ื“ืึธืก ืžืึธืœ, ืœืึธืžื™ืจ ืคืึทืจื’ืœื™ื™ื›ืŸ ื“ื™ ื“ื™ืกืงืจื™ืคึผืฉืึทื ื– ืื•ืŸ ืงื•ืง ืื•ื™ืฃ ื“ื™ ืกื™ืžืึทืœืขืจืึทื˜ื™ื–:

ื’ื•ื‘ืขืจื ืื˜ืืจ=ืื•ื ื“ืžืื ื“ - ื“ื™ื ืึทืžื™ืฉ ืกืงื™ื™ืœื™ื ื’ ืคื•ืŸ ืคึผืจืึทืกืขืกืขืจ ืึธืคื˜ืงื™ื™ึทื˜ ื“ื™ืคึผืขื ื“ื™ื ื’ ืื•ื™ืฃ ื“ื™ ืงืจืึทื ื˜ ืžืึทืกืข. ืจืึทืคึผืึทื“ืœื™ ื“ื–ืฉืึทืžืคึผืก ืฆื• ืžืึทืงืกื™ืžื•ื ืึธืคื˜ืงื™ื™ึทื˜ ืื•ืŸ ื“ืขืžืึธืœื˜ ืจืึทื“ื•ืกืึทื– ืขืก ื•ื•ื™ ืคึผื™ืจื™ืึทื“ื– ืคื•ืŸ ื™ื ืึทืงื˜ื™ื•ื•ื™ื˜ื™ ืคืึทืจื’ืจืขืกืขืจืŸ.
ื’ืขื ืขืจืืœ= ืงืื ืกืขืจื•ื•ืื˜ื™ื•ื•= ื“ื™ื ืึทืžื™ืฉ ืึธืคื˜ืงื™ื™ึทื˜ ืกืงื™ื™ืœื™ื ื’ ื“ื™ืคึผืขื ื“ื™ื ื’ ืื•ื™ืฃ ื“ื™ ืงืจืึทื ื˜ ืžืึทืกืข. ื™ื ืงืจื™ืกืึทื– ืื•ืŸ ื“ื™ืงืจื™ืกืึทื– ืึธืคื˜ืงื™ื™ึทื˜ ืžืขืจ ืกืžื•ื“ืœื™ ื•ื•ื™ ืึธื ื“ืขืžืึทื ื“.
ื’ืขื ืขืจืืœ = ืคืึธืจืฉื˜ืขืœื•ื ื’ - ืึธืคื˜ืงื™ื™ึทื˜ ืื™ื– ืฉื˜ืขื ื“ื™ืง ืžืึทืงืกื™ืžื•ื.

ืคึฟืึทืจ ืคืจื˜ื™ื, ื–ืขืŸ ื’ืึทื ืฅ ืจืฉื™ืžื” ืคื•ืŸ ืคึผืจืึทืกืขืกืขืจ ืึธืคื˜ืงื™ื™ึทื˜ ืจืขื’ื•ืœืึทื˜ืึธืจ ืคึผืึทืจืึทืžืขื˜ืขืจืก.

ื–ืขืŸ ื“ื™ ืกื™ืžืึทืœืขืจืึทื˜ื™ื–? ืื™ืš ื’ืขื•ื•ืืœื˜ ืฆื• ื•ื•ื™ื™ึทื–ืŸ ื“ืขื ืคืึทืจื’ืœื™ื™ึทืš ืฆื• ืื™ื‘ืขืจืฆื™ื™ื’ืŸ ืื™ืจ ืึทื– ืขืก ืื™ื– ื‘ืขืกื˜ืขืจ ืฆื• ื ื•ืฆืŸ pm ืกื˜ืึทื˜ื™ืง ืคึฟืึทืจ PHP-FPM.

ืคึฟืึทืจ ื“ื™ ืคึผืจืึทืกืขืกืขืจ ืจืขื’ื•ืœืึทื˜ืึธืจ ืคึผืึทืจืึทืžืขื˜ืขืจ ืคืึธืจืฉื˜ืขืœื•ื ื’ ื”ืขืœืคึผืก ืฆื• ื‘ืขืฉืึธืœืขื ืคืึทืจื’ืจืขืกืขืจืŸ ืคืึธืจืฉื˜ืขืœื•ื ื’ ื•ื•ื™ื™ึทืœ ืขืก ืื™ื– ื›ึผืžืขื˜ ืœืขื’ืึทืžืจืข ืึธืคืขื ื’ื™ืง ืื•ื™ืฃ ื“ื™ ืงืคึผื• ืฉื™ืขื•ืจ ืคื•ืŸ ื“ื™ ืกืขืจื•ื•ืขืจ. ืื™ืŸ ืึทื“ื™ืฉืึทืŸ ืฆื• ื“ืขื, ืคื•ืŸ ืงื•ืจืก, ืขืก ื–ืขื ืขืŸ ืื•ื™ืš ืกื™ื‘ื•ืช ืึทื–ืึท ื•ื•ื™ ื˜ืขืžืคึผืขืจืึทื˜ื•ืจ, ื‘ืึทื˜ืึทืจื™ื™ืข ืึธืคึผืฆืึธืœ (ืื™ืŸ ืึท ืœืึทืคึผื˜ืึทืคึผ) ืื•ืŸ ืื ื“ืขืจืข ื–ื™ื™ึทื˜ ื™ืคืขืงืก ืคื•ืŸ ืงืขืกื™ื™ื“ืขืจื“ื™ืง ืœื•ื™ืคืŸ ื“ื™ ืคึผืจืึทืกืขืกืขืจ ื‘ื™ื™ 100%. ื“ื™ ืคืึธืจืฉื˜ืขืœื•ื ื’ ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ื™ื ืฉื•ืจื– ื“ื™ ืคืึทืกื˜ืึทืกื˜ ืคึผืจืึทืกืขืกืขืจ ืคืึธืจืฉื˜ืขืœื•ื ื’. ืœื™ื™ืขื ืขืŸ, ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ื•ื•ืขื’ืŸ ืคืึธืจืกืข_ื˜ื•ืจื‘ืึธ ืคึผืึทืจืึทืžืขื˜ืขืจ ืื™ืŸ Raspberry Pi, ืžื™ื˜ ื•ื•ืึธืก ื“ื™ ืจืคึผื™ ื˜ืึทืคืœื™ืข ื•ื•ืขื˜ ื ื•ืฆืŸ ื“ื™ ืจืขื’ื•ืœืึทื˜ืึธืจ ืคืึธืจืฉื˜ืขืœื•ื ื’, ื•ื•ื• ื“ื™ ืคืึธืจืฉื˜ืขืœื•ื ื’ ืคึฟืึทืจื‘ืขืกืขืจื•ื ื’ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืžืขืจ ื‘ืืžืขืจืงื˜ ืจืขื›ื˜ ืฆื• ื“ืขืจ ื ื™ื“ืขืจื™ืง ืงืคึผื• ื–ื™ื™ื’ืขืจ ื’ื™ื›ืงื™ื™ึทื˜.

ื ื™ืฆืŸ PM ืกื˜ืึทื˜ื™ืง ืฆื• ื“ืขืจื’ืจื™ื™ื›ืŸ ืžืึทืงืกื™ืžื•ื ืกืขืจื•ื•ืขืจ ืคืึธืจืฉื˜ืขืœื•ื ื’

PHP-FPM ืึธืคึผืฆื™ืข pm ืกื˜ืึทื˜ื™ืง ืœืึทืจื’ืขืœื™ ื“ืขืคึผืขื ื“ืก ืื•ื™ืฃ ื“ื™ ืคืจื™ื™ ื–ื›ึผืจื•ืŸ ืื•ื™ืฃ ื“ื™ ืกืขืจื•ื•ืขืจ. ืื•ื™ื‘ ื–ื™ืงืึธืจืŸ ืื™ื– ื ื™ื“ืขืจื™ืง, ืขืก ืื™ื– ื‘ืขืกืขืจ ืฆื• ืงืœื™ื™ึทื‘ืŸ ืึธื ื“ืขืžืึทื ื“ ืึธื“ืขืจ ื“ื™ื ืึทืžื™ืฉ. ืื•ื™ืฃ ื“ื™ ืื ื“ืขืจืข ื”ืึทื ื˜, ืื•ื™ื‘ ืื™ืจ ื”ืึธื‘ืŸ ื–ื™ืงืึธืจืŸ, ืื™ืจ ืงืขื ืขืŸ ื•ื™ืกืžื™ื™ื“ืŸ ื“ื™ PHP ืคึผืจืึธืฆืขืก ืคืึทืจื•ื•ืึทืœื˜ืขืจ ืึธื•ื•ื•ืขืจื›ืขื“ ื“ื•ืจืš ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ PM ืกื˜ืึทื˜ื™ืง ืฆื• ื“ื™ ืžืึทืงืกื™ืžื•ื ืกืขืจื•ื•ืขืจ ืงืึทืคึผืึทืฆื™ื˜ืขื˜. ืื™ืŸ ืื ื“ืขืจืข ื•ื•ืขืจื˜ืขืจ, ืื•ื™ื‘ ืึทืœืฅ ืื™ื– ืงืึทืœืงื™ืึทืœื™ื™ื˜ื™ื“ ื’ืขื–ื•ื ื˜, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืคืขืกื˜ืฉื˜ืขืœืŸ pm.static ืฆื• ื“ื™ ืžืึทืงืกื™ืžื•ื ื‘ืึทื ื“ ืคื•ืŸ PHP-FPM ืคึผืจืึทืกืขืกืึทื– ื•ื•ืึธืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ืขืงืกืึทืงื™ื•ื˜ืึทื“, ืึธืŸ ืงืจื™ื™ื™ื˜ื™ื ื’ ืคึผืจืึธื‘ืœืขืžืก ืžื™ื˜ ื ื™ื“ืขืจื™ืง ื–ื›ึผืจื•ืŸ ืึธื“ืขืจ ืงืึทืฉ. ืึธื‘ืขืจ ื ื™ืฉื˜ ืึทื–ื•ื™ ื”ื•ื™ืš ืึทื– ืขืก ืึธื•ื•ื•ืขืจื›ื•ื•ืขืœืžื“ ื“ื™ ืคึผืจืึทืกืขืกืขืจื– ืื•ืŸ ืึทืงื™ื•ืžื™ืึทืœื™ื™ืฅ ืึท ื‘ื™ื ื˜ืœ ืคื•ืŸ PHP-FPM ืึทืคึผืขืจื™ื™ืฉืึทื ื– ื•ื•ืืจื˜ืŸ ืฆื• ื–ื™ื™ืŸ ืขืงืกืึทืงื™ื•ื˜ืึทื“.

PHP-FPM ืกืขื˜ืึทืคึผ: ื ื•ืฆืŸ PM ืกื˜ืึทื˜ื™ืง ืคึฟืึทืจ ืžืึทืงืกื™ืžื•ื ืคืึธืจืฉื˜ืขืœื•ื ื’

ืื™ืŸ ื“ื™ ืกืงืจืขืขื ืฉืึธื˜ ืื•ื™ื‘ืŸ, ื“ืขืจ ืกืขืจื•ื•ืขืจ ื”ืื˜ pm = ืกื˜ืึทื˜ื™ืง ืื•ืŸ pm.max_children = 100, ืื•ืŸ ื“ืึธืก ื ืขืžื˜ ื‘ืขืขืจืขืš 10 ื’ื™ื’ืื‘ื™ื™ื˜ ืคื•ืŸ ื“ื™ ื‘ื ื™ืžืฆื 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 ืื•ืŸ ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืจื™ืงื•ื•ืขืก ืคึผืขืจ ืกืขืงื•ื ื“ืข.

ื“ื™ ืกืงืจืขืขื ืฉืึธื˜ ื•ื•ื™ื™ื–ื˜ ื“ื™ ื‘ืึทืคึฟืขืœ ืœื™ื ื•ืงืก ืฉืคึผื™ืฅ, ืคื™ืœื˜ืขืจื“ ื“ื•ืจืš ื• (ื‘ืึทื ื™ืฆืขืจ) ืื•ืŸ PHP-FPM ื ืืžืขืŸ. ื‘ืœื•ื™ื– ื“ืขืจ ืขืจืฉื˜ืขืจ 50 ืึธื“ืขืจ ืึทื–ื•ื™ ืคึผืจืึทืกืขืกืึทื– ื–ืขื ืขืŸ ื’ืขื•ื•ื™ื–ืŸ (ืื™ืš ื”ืื˜ ื ื™ื˜ ืฆื™ื™ืœืŸ ืคึผื•ื ืงื˜), ืึธื‘ืขืจ ื™ืกืขื ืฉืึทืœื™ ื“ื™ ืฉืคึผื™ืฅ ืกื˜ืึทื˜ื™ืกื˜ื™ืง ื•ื•ื™ื™ึทื–ืŸ ืึทื– ืคึผืึทืกื™ืง ืื™ืŸ ื“ื™ ื•ื•ืึธืงื–ืึทืœ ืคึฟืขื ืฆื˜ืขืจ. ืื™ืŸ ื“ืขื ืคืึทืœ ืื•ื™ืกื’ืขืฉื˜ืขืœื˜ ื“ื•ืจืš % ืงืคึผื• (% ืงืคึผื•). ืฆื• ื–ืขืŸ ืึทืœืข 100 PHP-FPM ืคึผืจืึทืกืขืกืึทื–, ืœื•ื™ืคืŸ ื“ื™ ื‘ืึทืคึฟืขืœ:

top -bn1 | grep php-fpm

ื•ื•ืขืŸ ืฆื• ื ื•ืฆืŸ PM ืึธื ืคืจืขื’ ืื•ืŸ ื“ื™ื ืึทืžื™ืฉ

ืื•ื™ื‘ ืื™ืจ ื ื•ืฆืŸ 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

ืคึผืจื•ึผื•ื•ื˜ ื˜ืฉืึทื ื’ื™ื ื’ ื“ืขื ืคึผืึทืจืึทืžืขื˜ืขืจ, ื“ืขืจ ื˜ืขื•ืช ื•ื•ืขื˜ ื ื™ืฉื˜ ื’ื™ื™ืŸ ืึทื•ื•ืขืง, ื•ื•ื™ ื“ื™ืกืงืจื™ื™ื‘ื“ ืื™ืŸ ื“ืขื ืคึผืึธืกื˜ืŸ ืื•ื™ืฃ Serverfault. ืื™ืŸ ื“ืขื ืคืึทืœ, ื“ื™ pm.min ื•ื•ืขืจื˜ ืื™ื– ื’ืขื•ื•ืขืŸ ืฆื• ืงืœื™ื™ืŸ, ืื•ืŸ ื–ื™ื ื˜ ื•ื•ืขื‘ ืคืึทืจืงืขืจ ื•ื•ืขืจื™ื– ืึทื–ื•ื™ ืคื™ืœ ืื•ืŸ ื”ืื˜ ื”ื•ื™ืš ืคึผื™ืงืก ืื•ืŸ ื˜ื™ืฃ ื•ื•ืึทืœื™ื–, ืขืก ืื™ื– ืฉื•ื•ืขืจ ืฆื• ืึทื“ืึทืงื•ื•ืึทื˜ืœื™ ืกื˜ืจื•ื™ืขืจืŸ PM. ื“ื™ื ืึทืžื™ืฉ. ื’ืขื•ื•ืขื ืœื™ืš ื•ื•ืขืจื˜ pm ื’ืขื ื•ืฆื˜ ืึธื ื“ืขืžืึทื ื“, ื•ื•ื™ ืึทื“ื•ื•ื™ื™ื–ื“ ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืคึผืึธืกื˜ืŸ. ืื‘ืขืจ ื“ืึธืก ืื™ื– ืึทืคึฟื™ืœื• ืขืจื’ืขืจ, ื•ื•ื™ื™ึทืœ ืึธื ื“ืขืžืึทื ื“ ื˜ืขืจืžืึทื ื™ื™ืฅ ืœื™ื™ื“ื™ืง ืคึผืจืึทืกืขืกืึทื– ืฆื• ื ื•ืœ ื•ื•ืขืŸ ืขืก ืื™ื– ืงืœื™ื™ืŸ ืึธื“ืขืจ ืงื™ื™ืŸ ืคืึทืจืงืขืจ, ืื•ืŸ ืื™ืจ ื•ื•ืขื˜ ื ืึธืš ืขื ื“ื™ืงืŸ ืžื™ื˜ ื“ื™ ืึธื•ื•ื•ืขืจื›ืขื“ ืคื•ืŸ ื˜ืฉืึทื ื’ื™ื ื’ ืคืึทืจืงืขืจ. ืกื™ื™ึทื“ืŸ, ืคื•ืŸ ืงื•ืจืก, ืื™ืจ ืฉื˜ืขืœืŸ ืึท ืจื™ื–ื™ืง ื•ื•ืึทืจื˜ืŸ ืฆื™ื™ื˜. ืื•ืŸ ื“ืขืžืึธืœื˜ ืขืก ืื™ื– ื‘ืขืกืขืจ ืฆื• ื ื•ืฆืŸ pm.static + ื”ื•ื™ืš ื ื•ืžืขืจ pm.max_requests.

PM ื“ื™ื ืึทืžื™ืฉ ืื•ืŸ ืกืคึผืขืฆื™ืขืœ ืึธื ื“ืขืžืึทื ื“ ืงืขืŸ ื–ื™ื™ืŸ ื ื•ืฆื™ืง ืื•ื™ื‘ ืื™ืจ ื”ืึธื‘ืŸ ืงื™ื™ืคืœ PHP-FPM ืคึผืึธืึธืœืก. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืื™ืจ ื‘ืึทืœืขื‘ืึธืก ืงื™ื™ืคืœ ืงืคึผืึทื ืขืœ ืึทืงืึทื•ื ืฅ ืึธื“ืขืจ ืงื™ื™ืคืœ ื•ื•ืขื‘ืกื™ื˜ืขืก ืื™ืŸ ืคืึทืจืฉื™ื“ืขื ืข ืคึผืึธืึธืœืก. ืื™ืš ื”ืึธื‘ืŸ ืึท ืกืขืจื•ื•ืขืจ ืžื™ื˜, ื–ืึธื’ืŸ, 100+ ืงืคึผืึทื ืขืœ ืึทืงืึทื•ื ืฅ ืื•ืŸ ื•ื•ืขื’ืŸ 200 ื“ืึธื•ืžื™ื™ื ื–, ืื•ืŸ pm.static ืึธื“ืขืจ ืืคื™ืœื• ื“ื™ื ืึทืžื™ืฉ ื•ื•ืึธืœื˜ ื ื™ืฉื˜ ืจืึทื˜ืขื•ื•ืขืŸ ืžื™ืจ. ื›ืœ ืื™ืจ ื“ืึทืจืคึฟืŸ ื“ืึธ ืื™ื– ืึธื ื“ืขืžืึทื ื“, ื ืึธืš ืึทืœืข, ืžืขืจ ื•ื•ื™ ืฆื•ื•ื™ื™-ื˜ืขืจื“ื– ืคื•ืŸ ื•ื•ืขื‘ืกื™ื˜ืขืก ื‘ืึทืงื•ืžืขืŸ ืงืœื™ื™ืŸ ืึธื“ืขืจ ืงื™ื™ืŸ ืคืึทืจืงืขืจ, ืื•ืŸ ืžื™ื˜ ืึธื ื“ืขืžืึทื ื“ ืึทืœืข ืงื™ื ื“ ืคึผืจืึทืกืขืกืึทื– ื•ื•ืขื˜ ืคืึทืœืŸ ืึทื•ื•ืขืง, ื•ื•ืึธืก ื•ื•ืขื˜ ืจืึทื˜ืขื•ื•ืขืŸ ืื•ื ื“ื– ืึท ืคึผืœืึทืฅ ืคื•ืŸ ื–ื›ึผืจื•ืŸ! ืฆื•ืž ื’ืœื™ืง, ื“ื™ ืงืคึผืึทื ืขืœ ื“ืขื•ื•ืขืœืึธืคึผืขืจืก ื‘ืืžืขืจืงื˜ ื“ืขื ืื•ืŸ ืฉื˜ืขืœืŸ ื“ื™ ื•ื•ืขืจื˜ ืฆื• ืคืขืœื™ืงื™ื™ึทื˜ ืึธื ื“ืขืžืึทื ื“. ื‘ื™ื– ืึทื”ืขืจ, ื•ื•ืขืŸ ื“ื™ ืคืขืœื™ืงื™ื™ึทื˜ ืื™ื– ื’ืขื•ื•ืขืŸ ื“ื™ื ืึทืžื™ืฉ, PHP-FPM ืื™ื– ื‘ื›ืœืœ ื ื™ืฉื˜ ืคึผืึทืกื™ืง ืคึฟืึทืจ ืคืึทืจื ื•ืžืขืŸ ืฉืขืจื“ ืกืขืจื•ื•ืขืจืก. ืคื™ืœืข ื”ืึธื‘ืŸ ื’ืขื•ื•ื™ื™ื ื˜ suPHP, ืžื—ืžืช PM ื“ื™ื ืึทืžื™ืฉ ืงืึทื ืกื•ืžื“ ื–ื›ึผืจื•ืŸ ืืคื™ืœื• ืžื™ื˜ ืœื™ื™ื“ื™ืง ืคึผืึธืึธืœืก ืื•ืŸ cPanel PHP-FPM ืึทืงืึทื•ื ืฅ. ืจื•ื‘ึฟ ืžืกืชึผืžื, ืื•ื™ื‘ ื“ืขืจ ืคืึทืจืงืขืจ ืื™ื– ื’ื•ื˜, ืื™ืจ ื•ื•ืขื˜ ื ื™ืฉื˜ ื–ื™ื™ืŸ ื›ืึธื•ืกื˜ื™ื“ ืื•ื™ืฃ ืึท ืกืขืจื•ื•ืขืจ ืžื™ื˜ ืึท ื’ืจื•ื™ืก ื ื•ืžืขืจ ืคื•ืŸ PHP-FPM ืคึผืึธืึธืœืก (ืฉืขืจื“ ื”ืึธืกื˜ื™ื ื’).

ืกืึธืฃ

ืื•ื™ื‘ ืื™ืจ ื ื•ืฆืŸ PHP-FPM ืื•ืŸ ื“ื™ื™ืŸ ืคืึทืจืงืขืจ ืื™ื– ืฉื•ื•ืขืจ, ืคึผืจืึธืฆืขืก ืžืึทื ืึทื“ื–ืฉืขืจื– ืึธื ื“ืขืžืึทื ื“ ะธ ื“ื™ื ืึทืžื™ืฉ ืคึฟืึทืจ PHP-FPM ื•ื•ืขื˜ ื–ื™ื™ืŸ ืœื™ืžื™ื˜ืขื“ ื˜ืจื•ืคึผื•ื˜ ืจืขื›ื˜ ืฆื• ื–ื™ื™ืขืจ ื˜ืึธื›ื™ืง ืึธื•ื•ื•ืขืจื›ืขื“. ืคึฟืึทืจืฉื˜ื™ื™ืŸ ื“ื™ื™ืŸ ืกื™ืกื˜ืขื ืื•ืŸ ืงืึทื ืคื™ื’ื™ืขืจ PHP-FPM ืคึผืจืึทืกืขืกืึทื– ืœื•ื™ื˜ ื“ื™ ืžืึทืงืกื™ืžื•ื ืกืขืจื•ื•ืขืจ ืงืึทืคึผืึทืฆื™ื˜ืขื˜. ืขืจืฉื˜ืขืจ ืฉื˜ืขืœืŸ pm.max_children ื“ื™ืคึผืขื ื“ื™ื ื’ ืื•ื™ืฃ ืžืึทืงืกื™ืžื•ื PM ื‘ืึทื ื™ืฅ ื“ื™ื ืึทืžื™ืฉ ืึธื“ืขืจ ืึธื ื“ืขืžืึทื ื“, ืื•ืŸ ื“ืขืžืึธืœื˜ ืคืึทืจื’ืจืขืกืขืจืŸ ื“ืขื ื•ื•ืขืจื˜ ืฆื• ืึท ืžื“ืจื’ื” ื•ื•ื• ื“ื™ ื–ื›ึผืจื•ืŸ ืื•ืŸ ืคึผืจืึทืกืขืกืขืจ ื•ื•ืขื˜ ืึทืจื‘ืขื˜ืŸ ืึธืŸ ืึธื•ื•ื•ืขืจืœืึธื•ื“ื™ื“. ืื™ืจ ื•ื•ืขื˜ ื‘ืึทืžืขืจืงืŸ ืึทื– ืžื™ื˜ pm ืกื˜ืึทื˜ื™ืง, ื–ื™ื ื˜ ืื™ืจ ื”ืึธื‘ืŸ ืึทืœืฅ ืื™ืŸ ื–ื›ึผืจื•ืŸ, ืคืึทืจืงืขืจ ืกืคึผื™ื™ืงืก ื•ื•ืขื˜ ืคืึทืจืฉืึทืคืŸ ื•ื•ื™ื™ื ื™ืงืขืจืข ืงืคึผื• ืกืคึผื™ื™ืงืก ืื™ื‘ืขืจ ืฆื™ื™ึทื˜, ืื•ืŸ ืกืขืจื•ื•ืขืจ ืื•ืŸ ืงืคึผื• ืžืึทืกืข ืึทื•ื•ืจื™ื“ื–ืฉื™ื– ื•ื•ืขื˜ ื’ืœื™ื™ึทืš ืื•ื™ืก. ื“ื™ ื“ื•ืจื›ืฉื ื™ื˜ืœืขืš PHP-FPM ืคึผืจืึธืฆืขืก ื’ืจื™ื™ืก ื“ืขืคึผืขื ื“ืก ืื•ื™ืฃ ื“ื™ ื•ื•ืขื‘ ืกืขืจื•ื•ืขืจ ืื•ืŸ ืจื™ืงื•ื•ื™ื™ืขืจื– ืžืึทื ื•ืึทืœ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ, ืึทื–ื•ื™ ืžืขืจ ืึธื˜ืึทืžื™ื™ื˜ื™ื“ ืคึผืจืึธืฆืขืก ืžืึทื ืึทื“ื–ืฉืขืจื– ื“ื™ื ืึทืžื™ืฉ ะธ ืึธื ื“ืขืžืึทื ื“ - ืžืขืจ ืคืึธืœืงืก. ืื™ืš ื”ืึธืคึฟืŸ ื“ืขืจ ืึทืจื˜ื™ืงืœ ืื™ื– ื’ืขื•ื•ืขืŸ ื ื•ืฆื™ืง.

DUP ืฆื•ื’ืขืœื™ื™ื’ื˜ ื‘ืขื ื˜ืฉืžืึทืจืง ื˜ืฉืึทืจื˜ ab. ืื•ื™ื‘ PHP-FPM ืคึผืจืึทืกืขืกืึทื– ื–ืขื ืขืŸ ืื™ืŸ ื–ื›ึผืจื•ืŸ, ืคืึธืจืฉื˜ืขืœื•ื ื’ ื™ื ืงืจื™ืกื™ื– ืื•ื™ืฃ ื“ื™ ืงืึธืกื˜ ืคื•ืŸ ื–ื›ึผืจื•ืŸ ืงืึทื ืกืึทืžืฉืึทืŸ ื•ื•ื• ื–ื™ื™ ื–ื™ืฆืŸ ืื•ืŸ ื•ื•ืึทืจื˜ืŸ. ื’ืขืคึฟื™ื ืขืŸ ื“ื™ ื‘ืขืกื˜ืขืจ ืึธืคึผืฆื™ืข ืคึฟืึทืจ ื–ื™ืš.

PHP-FPM ืกืขื˜ืึทืคึผ: ื ื•ืฆืŸ PM ืกื˜ืึทื˜ื™ืง ืคึฟืึทืจ ืžืึทืงืกื™ืžื•ื ืคืึธืจืฉื˜ืขืœื•ื ื’

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’