PHP-FPM เชธเซ‡เชŸเช…เชช: เชฎเชนเชคเซเชคเชฎ เชชเซเชฐเชฆเชฐเซเชถเชจ เชฎเชพเชŸเซ‡ pm เชธเซเชŸเซ‡เชŸเชฟเช•เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹

PHP-FPM เชธเซ‡เชŸเช…เชช: เชฎเชนเชคเซเชคเชฎ เชชเซเชฐเชฆเชฐเซเชถเชจ เชฎเชพเชŸเซ‡ pm เชธเซเชŸเซ‡เชŸเชฟเช•เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹

เช† เชฒเซ‡เช–เชจเซเช‚ เช…เชธเช‚เชชเชพเชฆเชฟเชค เชธเช‚เชธเซเช•เชฐเชฃ เชฎเซ‚เชณเชฐเซ‚เชชเซ‡ เชชเซเชฐเช•เชพเชถเชฟเชค เชฅเชฏเซเช‚ เชนเชคเซเช‚ haydenjames.io เช…เชจเซ‡ เชคเซ‡เชฃเซ€เชจเซ€ เชชเชฐเชตเชพเชจเช—เซ€ เชธเชพเชฅเซ‡ เช…เชนเซ€เช‚ เชชเซเชฐเช•เชพเชถเชฟเชค เชฒเซ‡เช–เช•.

เชนเซเช‚ เชคเชฎเชจเซ‡ เชŸเซ‚เช‚เช•เชฎเชพเช‚ เช•เชนเซ€เชถ เช•เซ‡ เชฅเซเชฐเซเชชเซเชŸ เชตเชงเชพเชฐเชตเชพ, เชฒเซ‡เชŸเชจเซเชธเซ€ เช˜เชŸเชพเชกเชตเชพ เช…เชจเซ‡ CPU เช…เชจเซ‡ เชฎเซ‡เชฎเชฐเซ€เชจเซ‹ เชตเชงเซ เชธเชคเชค เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ 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 = ondemand - เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเช“ เชฎเชพเช‚เช— เชชเชฐ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ (เชœเซเชฏเชพเชฐเซ‡ เชธเซ‡เชตเชพ เชถเชฐเซ‚ เชฅเชพเชฏ เชคเซเชฏเชพเชฐเซ‡ pm.start_servers เชฒเซ‰เชจเซเชš เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เชคเซเชฏเชพเชฐเซ‡ เช—เชคเชฟเชถเซ€เชฒ เชฌเชจเชพเชตเชŸเชจเชพ เชตเชฟเชฐเซ‹เชงเชฎเชพเช‚).
pm = เชธเซเชฅเชฟเชฐ โ€” เชฌเชพเชณ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเช“เชจเซ€ เชธเช‚เช–เซเชฏเชพ เชจเชฟเชถเซเชšเชฟเชค เช›เซ‡ เช…เชจเซ‡ เชชเชฐเชฟเชฎเชพเชฃ เชฆเซเชตเชพเชฐเชพ เชธเซ‚เชšเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ pm.max_children.

เชตเชฟเช—เชคเซ‹ เชฎเชพเชŸเซ‡, เชœเซเช“ เชตเซˆเชถเซเชตเชฟเช• เชจเชฟเชฐเซเชฆเซ‡เชถเซ‹เชจเซ€ เชธเช‚เชชเซ‚เชฐเซเชฃ เชธเซ‚เชšเชฟ php-fpm.conf.

PHP-FPM เชชเซเชฐเซ‹เชธเซ‡เชธ เชฎเซ‡เชจเซ‡เชœเชฐ เช…เชจเซ‡ CPU เชซเซเชฐเซ€เช•เซเชตเชจเซเชธเซ€ เช•เช‚เชŸเซเชฐเซ‹เชฒเชฐ เชตเชšเซเชšเซ‡ เชธเชฎเชพเชจเชคเชพ

เช† เช‘เชซเชŸเซ‹เชชเชฟเช• เชฒเชพเช—เซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เชนเซเช‚ เช†เชจเซ‡ PHP-FPM เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจเชจเชพ เชตเชฟเชทเชฏ เชธเชพเชฅเซ‡ เชฒเชฟเช‚เช• เช•เชฐเชตเชพ เชœเชˆ เชฐเชนเซเชฏเซ‹ เช›เซเช‚. เชฒเซ‡เชชเชŸเซ‹เชช, เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจ เช…เชฅเชตเชพ เชธเชฎเชฐเซเชชเชฟเชค เชธเชฐเซเชตเชฐ เชชเชฐ - เชœเซ‡เชฎเชฃเซ‡ เช“เช›เชพเชฎเชพเช‚ เช“เช›เชพ เชเช• เชตเช–เชค เชชเซเชฐเซ‹เชธเซ‡เชธเชฐเชจเซ€ เชฎเช‚เชฆเซ€เชจเซ‹ เช…เชจเซเชญเชต เช•เชฐเซเชฏเซ‹ เชจเชฅเซ€. CPU เชซเซเชฐเซ€เช•เซเชตเชจเซเชธเซ€ เชธเซเช•เซ‡เชฒเชฟเช‚เช— เชฏเชพเชฆ เช›เซ‡? เชฎเชพเชŸเซ‡ เช† เชตเชฟเช•เชฒเซเชชเซ‹ เช‰เชชเชฒเชฌเซเชง เช›เซ‡ nix เช…เชจเซ‡ Windows เชชเซเชฐเซ‹เชธเซ‡เชธเชฐ เชฅเซเชฐเซ‹เชŸเชฒ เชธเซ‡เชŸเชฟเช‚เช—เชจเซ‡ เชฌเชฆเชฒเซ€เชจเซ‡ เชธเชฟเชธเซเชŸเชฎเชจเซ€ เช•เชพเชฎเช—เซ€เชฐเซ€ เช…เชจเซ‡ เชชเซเชฐเชคเชฟเชญเชพเชตเชจเซ‡ เชธเซเชงเชพเชฐเซ€ เชถเช•เซ‡ เช›เซ‡ เชฎเชพเช‚เช— เชชเชฐ เชชเซเชฐเชฆเชฐเซเชถเชจ*. เช† เชตเช–เชคเซ‡, เชšเชพเชฒเซ‹ เชตเชฐเซเชฃเชจเซ‹เชจเซ€ เชคเซเชฒเชจเชพ เช•เชฐเซ€เช เช…เชจเซ‡ เชธเชฎเชพเชจเชคเชพเช“ เชœเซ‹เชˆเช:

เช—เชตเชฐเซเชจเชฐ = เชฎเชพเช‚เช— - เชตเชฐเซเชคเชฎเชพเชจ เชฒเซ‹เชก เชชเชฐ เช†เชงเชพเชฐ เชฐเชพเช–เซ€เชจเซ‡ เชชเซเชฐเซ‹เชธเซ‡เชธเชฐ เช†เชตเชฐเซเชคเชจเชจเซเช‚ เช—เชคเชฟเชถเซ€เชฒ เชธเซเช•เซ‡เชฒเชฟเช‚เช—. เชเชกเชชเชฅเซ€ เชฎเชนเชคเซเชคเชฎ เช†เชตเชฐเซเชคเชจ เชชเชฐ เชœเชพเชฏ เช›เซ‡ เช…เชจเซ‡ เชชเช›เซ€ เชจเชฟเชทเซเช•เซเชฐเชฟเชฏเชคเชพเชจเชพ เชธเชฎเชฏเช—เชพเชณเชพเชฎเชพเช‚ เชตเชงเชพเชฐเซ‹ เชฅเชคเชพเช‚ เชคเซ‡ เช˜เชŸเชพเชกเซ‡ เช›เซ‡.
เช—เชตเชฐเซเชจเชฐ=เชฐเซ‚เชขเชฟเชšเซเชธเซเชค= เชตเชฐเซเชคเชฎเชพเชจ เชฒเซ‹เชก เชชเชฐ เช†เชงเชพเชฐ เชฐเชพเช–เซ€เชจเซ‡ เช—เชคเชฟเชถเซ€เชฒ เช†เชตเชฐเซเชคเชจ เชธเซเช•เซ‡เชฒเชฟเช‚เช—. เช“เชจเชกเชฟเชฎเชพเชจเซเชก เช•เชฐเชคเชพเช‚ เช†เชตเชฐเซเชคเชจ เชตเชงเซ เชธเชฐเชณเชคเชพเชฅเซ€ เชตเชงเซ‡ เช›เซ‡ เช…เชจเซ‡ เช˜เชŸเชพเชกเซ‡ เช›เซ‡.
เช—เชตเชฐเซเชจเชฐ = เช•เชพเชฎเช—เซ€เชฐเซ€ - เช†เชตเชฐเซเชคเชจ เชนเช‚เชฎเซ‡เชถเชพ เชฎเชนเชคเซเชคเชฎ เช›เซ‡.

เชตเชฟเช—เชคเซ‹ เชฎเชพเชŸเซ‡, เชœเซเช“ เชชเซเชฐเซ‹เชธเซ‡เชธเชฐ เชซเซเชฐเซ€เช•เซเชตเชจเซเชธเซ€ เชฐเซ‡เช—เซเชฏเซเชฒเซ‡เชŸเชฐ เชชเชฐเชฟเชฎเชพเชฃเซ‹เชจเซ€ เชธเช‚เชชเซ‚เชฐเซเชฃ เชธเซ‚เชšเชฟ.

เชธเชฎเชพเชจเชคเชพเช“ เชœเซเช“? เชนเซเช‚ เชคเชฎเชจเซ‡ เชธเชฎเชœเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เช† เชธเชฐเช–เชพเชฎเชฃเซ€ เชฌเชคเชพเชตเชตเชพ เชฎเชพเช‚เช—เชคเซ‹ เชนเชคเซ‹ เช•เซ‡ เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹ เชถเซเชฐเซ‡เชทเซเช  เช›เซ‡ pm เชธเซเชฅเชฟเชฐ PHP-FPM เชฎเชพเชŸเซ‡.

เชชเซเชฐเซ‹เชธเซ‡เชธเชฐ เชฐเซ‡เช—เซเชฏเซเชฒเซ‡เชŸเชฐ เชชเซ‡เชฐเชพเชฎเซ€เชŸเชฐ เชฎเชพเชŸเซ‡ เช•เชพเชฎเช—เซ€เชฐเซ€ เชชเซเชฐเชญเชพเชตเชจเซ‡ เชธเซเชฐเช•เซเชทเชฟเชค เชฐเซ€เชคเซ‡ เชตเชงเชพเชฐเชตเชพเชฎเชพเช‚ เชฎเชฆเชฆ เช•เชฐเซ‡ เช›เซ‡ เช•เชพเชฐเชฃ เช•เซ‡ เชคเซ‡ เชธเชฐเซเชตเชฐเชจเซ€ CPU เชฎเชฐเซเชฏเชพเชฆเชพ เชชเชฐ เชฒเช—เชญเช— เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เชจเชฟเชฐเซเชญเชฐ เช›เซ‡. เช† เช‰เชชเชฐเชพเช‚เชค, เช…เชฒเชฌเชคเซเชค, เชคเชพเชชเชฎเชพเชจ, เชฌเซ‡เชŸเชฐเซ€ เชšเชพเชฐเซเชœ (เชฒเซ‡เชชเชŸเซ‹เชชเชฎเชพเช‚) เช…เชจเซ‡ เชธเชคเชค 100% เชชเชฐ เชชเซเชฐเซ‹เชธเซ‡เชธเชฐเชจเซ‡ เชšเชฒเชพเชตเชตเชพเชจเซ€ เช…เชจเซเชฏ เช†เชกเช…เชธเชฐเซ‹ เชœเซ‡เชตเชพ เชชเชฐเชฟเชฌเชณเซ‹ เชชเชฃ เช›เซ‡. เชชเชฐเซเชซเซ‹เชฐเซเชฎเชจเซเชธ เชธเซ‡เชŸเชฟเช‚เช— เชชเซเชฐเซ‹เชธเซ‡เชธเชฐเชจเซ€ เชธเซŒเชฅเซ€ เชเชกเชชเซ€ เช•เชพเชฎเช—เซ€เชฐเซ€เชจเซ‡ เชธเซเชจเชฟเชถเซเชšเชฟเชค เช•เชฐเซ‡ เช›เซ‡. เชตเชพเช‚เชšเซ‹, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชตเชฟเชถเซ‡ Raspberry Pi เชฎเชพเช‚ force_turbo เชชเซ‡เชฐเชพเชฎเซ€เชŸเชฐ, เชœเซ‡เชจเซ€ เชธเชพเชฅเซ‡ RPi เชชเซ‡เชจเชฒ เชฐเซ‡เช—เซเชฏเซเชฒเซ‡เชŸเชฐเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชถเซ‡ เช•เชพเชฎเช—เซ€เชฐเซ€, เชœเซเชฏเชพเช‚ เช“เช›เซ€ CPU เช˜เชกเชฟเชฏเชพเชณ เช—เชคเชฟเชจเซ‡ เช•เชพเชฐเชฃเซ‡ เชชเซเชฐเชฆเชฐเซเชถเชจ เชธเซเชงเชพเชฐเชฃเชพ เชตเชงเซ เชงเซเชฏเชพเชจเชชเชพเชคเซเชฐ เชนเชถเซ‡.

เชฎเชนเชคเซเชคเชฎ เชธเชฐเซเชตเชฐ เชชเซเชฐเชฆเชฐเซเชถเชจ เชนเชพเช‚เชธเชฒ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ pm เชธเซเชŸเซ‡เชŸเชฟเช•เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹

PHP-FPM เชตเชฟเช•เชฒเซเชช pm เชธเซเชฅเชฟเชฐ เชฎเซ‹เชŸเซ‡ เชญเชพเช—เซ‡ เชธเชฐเซเชตเชฐ เชชเชฐเชจเซ€ เชซเซเชฐเซ€ เชฎเซ‡เชฎเชฐเซ€ เชชเชฐ เช†เชงเชพเชฐ เชฐเชพเช–เซ‡ เช›เซ‡. เชœเซ‹ เชฎเซ‡เชฎเชฐเซ€ เช“เช›เซ€ เชนเซ‹เชฏ, เชคเซ‹ เชคเซ‡ เชชเชธเช‚เชฆ เช•เชฐเชตเชพเชจเซเช‚ เชตเชงเซ เชธเชพเชฐเซเช‚ เช›เซ‡ เชฎเชพเช‚เช— เช…เชฅเชตเชพ เช—เชคเชฟเชถเซ€เชฒ. เชฌเซ€เชœเซ€ เชฌเชพเชœเซ, เชœเซ‹ เชคเชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชฎเซ‡เชฎเชฐเซ€ เชนเซ‹เชฏ, เชคเซ‹ เชคเชฎเซ‡ 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 เช…เชจเซ‡ เชชเซเชฐเชคเชฟ เชธเซ‡เช•เชจเซเชก เชตเชฟเชจเช‚เชคเซ€เช“เชจเซ€ เชธเช‚เช–เซเชฏเชพ.

เชธเซเช•เซเชฐเซ€เชจเชถเซ‹เชŸ เช†เชฆเซ‡เชถ เชฌเชคเชพเชตเซ‡ เช›เซ‡ Linux เชŸเซ‹เชš, u (เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ) เช…เชจเซ‡ PHP-FPM เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเชจเชพเชฎ เชฆเซเชตเชพเชฐเชพ เชซเชฟเชฒเซเชŸเชฐ เช•เชฐเซ‡เชฒ. เชซเช•เซเชค เชชเซเชฐเชฅเชฎ 50 เช…เชฅเชตเชพ เชคเซ‡เชฅเซ€ เชตเชงเซ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเช“ เชฌเชคเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡ (เชฎเซ‡เช‚ เชฌเชฐเชพเชฌเชฐ เช—เชฃเซ€ เชจเชฅเซ€), เชชเชฐเช‚เชคเซ เช†เชตเชถเซเชฏเช•เชชเชฃเซ‡ เชŸเซ‹เชšเชจเชพ เช†เช‚เช•เชกเชพเช“ เชฌเชคเชพเชตเซ‡ เช›เซ‡ เชœเซ‡ เชŸเชฐเซเชฎเชฟเชจเชฒ เชตเชฟเช‚เชกเซ‹เชฎเชพเช‚ เชซเชฟเชŸ เช›เซ‡. เช† เช•เชฟเชธเซเชธเชพเชฎเชพเช‚ % CPU (% CPU) เชฆเซเชตเชพเชฐเชพ เชธเซ‰เชฐเซเชŸ เช•เชฐเซ‡เชฒ เช›เซ‡. เชฌเชงเซ€ 100 PHP-FPM เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเช“ เชœเซ‹เชตเชพ เชฎเชพเชŸเซ‡, เช†เชฆเซ‡เชถ เชšเชฒเชพเชตเซ‹:

top -bn1 | grep php-fpm

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 เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช•เชฆ เชตเซ‡เชฌ เชธเชฐเซเชตเชฐ เชชเชฐ เช†เชงเชพเชฐ เชฐเชพเช–เซ‡ เช›เซ‡ เช…เชจเซ‡ เชฎเซ‡เชจเซเชฏเซเช…เชฒ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡, เชคเซ‡เชฅเซ€ เชตเชงเซ เชธเซเชตเชšเชพเชฒเชฟเชค เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เชธเช‚เชšเชพเชฒเช•เซ‹ เช—เชคเชฟเชถเซ€เชฒ ะธ เชฎเชพเช‚เช— - เชตเชงเซ เชฒเซ‹เช•เชชเซเชฐเชฟเชฏ. เชฎเชจเซ‡ เช†เชถเชพ เช›เซ‡ เช•เซ‡ เชฒเซ‡เช– เช‰เชชเชฏเซ‹เช—เซ€ เชนเชคเซ‹.

เชฏเซเชชเซ€เชกเซ€ เชฌเซ‡เชจเซเชšเชฎเชพเชฐเซเช• เชšเชพเชฐเซเชŸ เช‰เชฎเซ‡เชฐเซเชฏเซ‹ ab. เชœเซ‹ PHP-FPM เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเช“ เชฎเซ‡เชฎเชฐเซ€เชฎเชพเช‚ เชนเซ‹เชฏ, เชคเซ‹ เชคเซ‡เช“ เชœเซเชฏเชพเช‚ เชฌเซ‡เชธเซ€เชจเซ‡ เชฐเชพเชน เชœเซเช เช›เซ‡ เชคเซเชฏเชพเช‚ เชฎเซ‡เชฎเชฐเซ€ เชตเชชเชฐเชพเชถเชจเชพ เชญเซ‹เช—เซ‡ เช•เชพเชฎเช—เซ€เชฐเซ€ เชตเชงเซ‡ เช›เซ‡. เชคเชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡ เชถเซเชฐเซ‡เชทเซเช  เชตเชฟเช•เชฒเซเชช เชถเซ‹เชงเซ‹.

PHP-FPM เชธเซ‡เชŸเช…เชช: เชฎเชนเชคเซเชคเชฎ เชชเซเชฐเชฆเชฐเซเชถเชจ เชฎเชพเชŸเซ‡ pm เชธเซเชŸเซ‡เชŸเชฟเช•เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹