เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชŸเซ€เชชเซเชธ เช…เชจเซ‡ เชฏเซเช•เซเชคเชฟเช“: NGINX เช…เชจเซ‡ PHP-FPM เชฎเชพเช‚ เช†เช•เชฐเซเชทเช• เชถเชŸเชกเชพเช‰เชจเชจเซ€ เชธเซเชตเชฟเชงเชพเช“

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชฎเชพเช‚ CI/CD เชฒเชพเช—เซ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เชเช• เชฒเชพเช•เซเชทเชฃเชฟเช• เชธเซเชฅเชฟเชคเชฟ: เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เชฌเช‚เชง เชฅเชคเชพเช‚ เชชเชนเซ‡เชฒเชพเช‚ เชจเชตเซ€ เช•เซเชฒเชพเชฏเชจเซเชŸ เชตเชฟเชจเช‚เชคเซ€เช“ เชธเซเชตเซ€เช•เชพเชฐเชตเชพเชฎเชพเช‚ เชธเช•เซเชทเชฎ เชจ เชนเซ‹เชตเซ€ เชœเซ‹เชˆเช, เช…เชจเซ‡ เชธเซŒเชฅเซ€ เช…เช—เชคเซเชฏเชจเซเช‚, เช…เชธเซเชคเชฟเชคเซเชตเชฎเชพเช‚ เชฐเชนเซ‡เชฒเซ€ เชตเชฟเชจเช‚เชคเซ€เช“เชจเซ‡ เชธเชซเชณเชคเชพเชชเซ‚เชฐเซเชตเช• เชชเซ‚เชฐเซเชฃ เช•เชฐเซ‡.

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชŸเซ€เชชเซเชธ เช…เชจเซ‡ เชฏเซเช•เซเชคเชฟเช“: NGINX เช…เชจเซ‡ PHP-FPM เชฎเชพเช‚ เช†เช•เชฐเซเชทเช• เชถเชŸเชกเชพเช‰เชจเชจเซ€ เชธเซเชตเชฟเชงเชพเช“

เช† เชธเซเชฅเชฟเชคเชฟเชจเซเช‚ เชชเชพเชฒเชจ เชคเชฎเชจเซ‡ เชœเชฎเชพเชตเชŸ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชถเซ‚เชจเซเชฏ เชกเชพเช‰เชจเชŸเชพเช‡เชฎ เชชเซเชฐเชพเชชเซเชค เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡. เชœเซ‹ เช•เซ‡, เช–เซ‚เชฌ เชœ เชฒเซ‹เช•เชชเซเชฐเชฟเชฏ เชฌเช‚เชกเชฒเซเชธ (เชœเซ‡เชฎ เช•เซ‡ NGINX เช…เชจเซ‡ PHP-FPM) เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เชชเชฃ, เชคเชฎเซ‡ เชฎเซเชถเซเช•เซ‡เชฒเซ€เช“เชจเซ‹ เชธเชพเชฎเชจเซ‹ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เชœเซ‡ เชฆเชฐเซ‡เช• เชœเชฎเชพเชตเชŸ เชธเชพเชฅเซ‡ เชญเซ‚เชฒเซ‹เชจเชพ เช‰เช›เชพเชณเชพ เชคเชฐเชซ เชฆเซ‹เชฐเซ€ เชœเชถเซ‡...

เชฅเชฟเชฏเชฐเซ€. เชชเซ‹เชก เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชœเซ€เชตเซ‡ เช›เซ‡

เช…เชฎเซ‡ เชชเชนเซ‡เชฒเชพเชฅเซ€ เชœ เชชเซ‹เชกเชจเชพ เชœเซ€เชตเชจ เชšเช•เซเชฐ เชตเชฟเชถเซ‡ เชตเชฟเช—เชคเชตเชพเชฐ เชชเซเชฐเช•เชพเชถเชฟเชค เช•เชฐเซเชฏเซเช‚ เช›เซ‡ เช† เชฒเซ‡เช–. เชตเชฟเชšเชพเชฐเชฃเชพ เชนเซ‡เช เชณเชจเชพ เชตเชฟเชทเชฏเชจเชพ เชธเช‚เชฆเชฐเซเชญเชฎเชพเช‚, เช…เชฎเชจเซ‡ เชจเซ€เชšเซ‡เชจเซ€ เชฌเชพเชฌเชคเซ‹เชฎเชพเช‚ เชฐเชธ เช›เซ‡: เช† เช•เซเชทเชฃเซ‡ เชœเซเชฏเชพเชฐเซ‡ เชชเซ‹เชก เชฐเชพเชœเซเชฏเชฎเชพเช‚ เชชเซเชฐเชตเซ‡เชถ เช•เชฐเซ‡ เช›เซ‡ เชธเชฎเชพเชชเซเชค, เชจเชตเซ€ เชตเชฟเชจเช‚เชคเซ€เช“ เชคเซ‡เชจเซ‡ เชฎเซ‹เช•เชฒเชตเชพเชจเซเช‚ เชฌเช‚เชง เช•เชฐเซ‡ เช›เซ‡ (pod เช•เชพเชขเซ€ เชจเชพเช–เซเชฏเซเช‚ เชธเซ‡เชตเชพ เชฎเชพเชŸเซ‡เชจเชพ เช…เช‚เชคเชฟเชฎ เชฌเชฟเช‚เชฆเซเช“เชจเซ€ เชธเซ‚เชšเชฟเชฎเชพเช‚เชฅเซ€). เช†เชฎ, เชœเชฎเชพเชตเชŸ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชกเชพเช‰เชจเชŸเชพเช‡เชฎ เชŸเชพเชณเชตเชพ เชฎเชพเชŸเซ‡, เช…เชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเซ‡ เชฏเซ‹เช—เซเชฏ เชฐเซ€เชคเซ‡ เชฐเซ‹เช•เชตเชพเชจเซ€ เชธเชฎเชธเซเชฏเชพเชจเซ‡ เชนเชฒ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชคเซ‡ เชชเซ‚เชฐเชคเซเช‚ เช›เซ‡.

เชคเชฎเชพเชฐเซ‡ เช เชชเชฃ เชฏเชพเชฆ เชฐเชพเช–เชตเซเช‚ เชœเซ‹เชˆเช เช•เซ‡ เชกเชฟเชซเซ‹เชฒเซเชŸ เช—เซเชฐเซ‡เชธ เชชเซ€เชฐเชฟเชฏเชก เช›เซ‡ 30 เชธเซ‡เช•เชจเซเชก: เช† เชชเช›เซ€, เชชเซ‹เชก เชธเชฎเชพเชชเซเชค เชฅเชˆ เชœเชถเซ‡ เช…เชจเซ‡ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชชเชพเชธเซ‡ เช† เชธเชฎเชฏเช—เชพเชณเชพ เชชเชนเซ‡เชฒเชพ เชคเชฎเชพเชฎ เชตเชฟเชจเช‚เชคเซ€เช“ เชชเชฐ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชธเชฎเชฏ เชนเซ‹เชตเซ‹ เช†เชตเชถเซเชฏเช• เช›เซ‡. เชจเซ‹เช‚เชงเชฃเซ€: เชœเซ‹ เช•เซ‡ เช•เซ‹เชˆเชชเชฃ เชตเชฟเชจเช‚เชคเซ€ เชœเซ‡ 5-10 เชธเซ‡เช•เช‚เชกเชฅเซ€ เชตเชงเซ เชธเชฎเชฏ เชฒเซ‡ เช›เซ‡ เชคเซ‡ เชชเชนเซ‡เชฒเชพเชฅเซ€ เชœ เชธเชฎเชธเซเชฏเชพเชฐเซ‚เชช เช›เซ‡, เช…เชจเซ‡ เช†เช•เชฐเซเชทเช• เชถเชŸเชกเชพเช‰เชจ เชนเชตเซ‡ เชคเซ‡เชจเซ‡ เชฎเชฆเชฆ เช•เชฐเชถเซ‡ เชจเชนเซ€เช‚...

เชœเซเชฏเชพเชฐเซ‡ เชชเซ‹เชก เชธเชฎเชพเชชเซเชค เชฅเชพเชฏ เช›เซ‡ เชคเซเชฏเชพเชฐเซ‡ เชถเซเช‚ เชฅเชพเชฏ เช›เซ‡ เชคเซ‡ เชตเชงเซ เชธเชพเชฐเซ€ เชฐเซ€เชคเซ‡ เชธเชฎเชœเชตเชพ เชฎเชพเชŸเซ‡, เชซเช•เซเชค เชจเซ€เชšเซ‡ เช†เชชเซ‡เชฒ เชฐเซ‡เช–เชพเช•เซƒเชคเชฟ เชœเซเช“:

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชŸเซ€เชชเซเชธ เช…เชจเซ‡ เชฏเซเช•เซเชคเชฟเช“: NGINX เช…เชจเซ‡ PHP-FPM เชฎเชพเช‚ เช†เช•เชฐเซเชทเช• เชถเชŸเชกเชพเช‰เชจเชจเซ€ เชธเซเชตเชฟเชงเชพเช“

A1, B1 - เชนเชฐเซเชฅเชจเซ€ เชธเซเชฅเชฟเชคเชฟ เชตเชฟเชถเซ‡ เชซเซ‡เชฐเชซเชพเชฐเซ‹ เชชเซเชฐเชพเชชเซเชค เช•เชฐเซ€ เชฐเชนเซเชฏเชพเช‚ เช›เซ‡
A2 - เชชเซเชฐเชธเซเชฅเชพเชจ SIGTERM
B2 - เช…เช‚เชคเชฟเชฎ เชฌเชฟเช‚เชฆเซเช“เชฎเชพเช‚เชฅเซ€ เชชเซ‹เชก เชฆเซ‚เชฐ เช•เชฐเชตเซเช‚
B3 - เชซเซ‡เชฐเชซเชพเชฐเซ‹ เชชเซเชฐเชพเชชเซเชค เช•เชฐเซ€ เชฐเชนเซเชฏเชพเช‚ เช›เซ‡ (เช…เช‚เชคเชฟเชฎ เชฌเชฟเช‚เชฆเซเช“เชจเซ€ เชธเซ‚เชšเชฟ เชฌเชฆเชฒเชพเชˆ เช—เชˆ เช›เซ‡)
B4 - iptables เชจเชฟเชฏเชฎเซ‹ เช…เชชเชกเซ‡เชŸ เช•เชฐเซ‹

เชฎเชนเซ‡เชฐเชฌเชพเชจเซ€ เช•เชฐเซ€เชจเซ‡ เชจเซ‹เช‚เชง เช•เชฐเซ‹: เชเชจเซเชกเชชเซ‹เช‡เชจเซเชŸ เชชเซ‹เชก เช•เชพเชขเซ€ เชจเชพเช–เชตเซเช‚ เช…เชจเซ‡ SIGTERM เชฎเซ‹เช•เชฒเชตเซเช‚ เช•เซเชฐเชฎเชฟเช• เชฐเซ€เชคเซ‡ เชฅเชคเซเช‚ เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เชธเชฎเชพเช‚เชคเชฐ เชฐเซ€เชคเซ‡ เชฅเชพเชฏ เช›เซ‡. เช…เชจเซ‡ เช เชนเช•เซ€เช•เชคเชจเซ‡ เช•เชพเชฐเชฃเซ‡ เช•เซ‡ เช‡เชจเซเช—เซเชฐเซ‡เชธเชจเซ‡ เชเชจเซเชกเชชเซ‹เช‡เชจเซเชŸเซเชธเชจเซ€ เช…เชชเชกเซ‡เชŸ เช•เชฐเซ‡เชฒเซ€ เชธเซ‚เชšเชฟ เชคเชฐเชค เชœ เชชเซเชฐเชพเชชเซเชค เชฅเชคเซ€ เชจเชฅเซ€, เช•เซเชฒเชพเชฏเช‚เชŸ เชคเชฐเชซเชฅเซ€ เชจเชตเซ€ เชตเชฟเชจเช‚เชคเซ€เช“ เชชเซ‹เชกเชจเซ‡ เชฎเซ‹เช•เชฒเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡, เชœเซ‡ เชชเซ‹เชก เชŸเชฐเซเชฎเชฟเชจเซ‡เชถเชจ เชฆเชฐเชฎเชฟเชฏเชพเชจ 500 เชญเซ‚เชฒเชจเซเช‚ เช•เชพเชฐเชฃ เชฌเชจเชถเซ‡. (เช† เชฎเซเชฆเซเชฆเชพ เชชเชฐ เชตเชงเซ เชตเชฟเช—เชคเชตเชพเชฐ เชธเชพเชฎเช—เซเชฐเซ€ เชฎเชพเชŸเซ‡, เช…เชฎเซ‡ เช…เชจเซเชตเชพเชฆเชฟเชค). เช† เชธเชฎเชธเซเชฏเชพเชจเซ‡ เชจเซ€เชšเซ‡เชจเซ€ เชฐเซ€เชคเซ‡ เชนเชฒ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡:

  • เช•เชจเซ‡เช•เซเชถเชจ เชฎเซ‹เช•เชฒเซ‹: เชชเซเชฐเชคเชฟเชธเชพเชฆ เชนเซ‡เชกเชฐเซ‹เชฎเชพเช‚ เชฌเช‚เชง เช•เชฐเซ‹ (เชœเซ‹ เช† HTTP เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเซ€ เชšเชฟเช‚เชคเชพ เช•เชฐเซ‡ เช›เซ‡).
  • เชœเซ‹ เช•เซ‹เชกเชฎเชพเช‚ เชซเซ‡เชฐเชซเชพเชฐ เช•เชฐเชตเชพเชจเซเช‚ เชถเช•เซเชฏ เชจ เชนเซ‹เชฏ, เชคเซ‹ เชจเซ€เชšเซ‡เชจเซ‹ เชฒเซ‡เช– เชเช• เช‰เช•เซ‡เชฒเชจเซเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเซ‡ เช›เซ‡ เชœเซ‡ เชคเชฎเชจเซ‡ เช†เช•เชฐเซเชทเช• เชธเชฎเชฏเช—เชพเชณเชพเชจเชพ เช…เช‚เชค เชธเซเชงเซ€ เชตเชฟเชจเช‚เชคเซ€เช“ เชชเชฐ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเชถเซ‡.

เชฅเชฟเชฏเชฐเซ€. เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ NGINX เช…เชจเซ‡ PHP-FPM เชคเซ‡เชฎเชจเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเช“เชจเซ‡ เชธเชฎเชพเชชเซเชค เช•เชฐเซ‡ เช›เซ‡

เชเชจเชœเซ€เช†เชˆเชเชจเชเช•เซเชธ

เชšเชพเชฒเซ‹ NGINX เชฅเซ€ เชถเชฐเซ‚เช†เชค เช•เชฐเซ€เช, เช•เชพเชฐเชฃ เช•เซ‡ เชคเซ‡เชจเซ€ เชธเชพเชฅเซ‡ เชฌเชงเซเช‚ เชตเชงเซ เช•เซ‡ เช“เช›เซเช‚ เชธเซเชชเชทเซเชŸ เช›เซ‡. เชธเชฟเชฆเซเชงเชพเช‚เชคเชฎเชพเช‚ เชกเชพเช‡เชต เช•เชฐเซ€เชจเซ‡, เช†เชชเชฃเซ‡ เชœเชพเชฃเซ€เช เช›เซ€เช เช•เซ‡ NGINX เชชเชพเชธเซ‡ เชเช• เชฎเซเช–เซเชฏ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช›เซ‡ เช…เชจเซ‡ เช˜เชฃเชพ "เช•เชพเชฎเชฆเชพเชฐเซ‹" เช›เซ‡ - เช† เชฌเชพเชณ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเช“ เช›เซ‡ เชœเซ‡ เช•เซเชฒเชพเชฏเช‚เชŸเชจเซ€ เชตเชฟเชจเช‚เชคเซ€เช“ เชชเชฐ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช•เชฐเซ‡ เช›เซ‡. เชเช• เช…เชจเซเช•เซ‚เชณ เชตเชฟเช•เชฒเซเชช เชชเซ‚เชฐเซ‹ เชชเชพเชกเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡: เช†เชฆเซ‡เชถเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ nginx -s <SIGNAL> เชเชกเชชเซ€ เชถเชŸเชกเชพเช‰เชจ เช…เชฅเชตเชพ เช†เช•เชฐเซเชทเช• เชถเชŸเชกเชพเช‰เชจ เชฎเซ‹เชกเชฎเชพเช‚ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเช“เชจเซ‡ เชธเชฎเชพเชชเซเชค เช•เชฐเซ‹. เชฆเซ‡เช–เซ€เชคเซ€ เชฐเซ€เชคเซ‡, เชคเซ‡ เชชเช›เซ€เชจเซ‹ เชตเชฟเช•เชฒเซเชช เช›เซ‡ เชœเซ‡ เช†เชชเชฃเชจเซ‡ เชฐเซเชšเชฟ เชงเชฐเชพเชตเซ‡ เช›เซ‡.

เชชเช›เซ€ เชฌเชงเซเช‚ เชธเชฐเชณ เช›เซ‡: เชคเชฎเชพเชฐเซ‡ เช‰เชฎเซ‡เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เชชเซเชฐเซ€เชธเซเชŸเซ‹เชช-เชนเซ‚เช• เชเช• เช†เชฆเซ‡เชถ เชœเซ‡ เช†เช•เชฐเซเชทเช• เชถเชŸเชกเชพเช‰เชจ เชธเชฟเช—เซเชจเชฒ เชฎเซ‹เช•เชฒเชถเซ‡. เช† เช•เชจเซเชŸเซ‡เชจเชฐ เชฌเซเชฒเซ‹เช•เชฎเชพเช‚ เชœเชฎเชพเชตเชŸเชฎเชพเช‚ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡:

       lifecycle:
          preStop:
            exec:
              command:
              - /usr/sbin/nginx
              - -s
              - quit

เชนเชตเซ‡, เชœเซเชฏเชพเชฐเซ‡ เชชเซ‹เชก เชฌเช‚เชง เชฅเชˆ เชœเชถเซ‡, เชคเซเชฏเชพเชฐเซ‡ เช†เชชเชฃเซ‡ NGINX เช•เชจเซเชŸเซ‡เชจเชฐ เชฒเซ‹เช—เชฎเชพเช‚ เชจเซ€เชšเซ‡เชจเชพ เชœเซ‹เชˆเชถเซเช‚:

2018/01/25 13:58:31 [notice] 1#1: signal 3 (SIGQUIT) received, shutting down
2018/01/25 13:58:31 [notice] 11#11: gracefully shutting down

เช…เชจเซ‡ เช†เชจเซ‹ เช…เชฐเซเชฅ เช เชฅเชถเซ‡ เช•เซ‡ เช†เชชเชฃเชจเซ‡ เชถเซเช‚ เชœเซ‹เชˆเช เช›เซ‡: NGINX เชตเชฟเชจเช‚เชคเซ€เช“ เชชเซ‚เชฐเซเชฃ เชฅเชตเชพเชจเซ€ เชฐเชพเชน เชœเซเช เช›เซ‡, เช…เชจเซ‡ เชชเช›เซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเชจเซ‡ เชธเชฎเชพเชชเซเชค เช•เชฐเซ‡ เช›เซ‡. เชœเซ‹ เช•เซ‡, เชจเซ€เชšเซ‡ เช†เชชเชฃเซ‡ เชเช• เชธเชพเชฎเชพเชจเซเชฏ เชธเชฎเชธเซเชฏเชพเชจเซ‡ เชชเชฃ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฒเชˆเชถเซเช‚ เชœเซ‡เชจเชพ เช•เชพเชฐเชฃเซ‡, เช†เชฆเซ‡เชถ เชธเชพเชฅเซ‡ เชชเชฃ nginx -s quit เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช–เซ‹เชŸเซ€ เชฐเซ€เชคเซ‡ เชธเชฎเชพเชชเซเชค เชฅเชพเชฏ เช›เซ‡.

เช…เชจเซ‡ เช† เชคเชฌเช•เซเช•เซ‡ เช…เชฎเซ‡ NGINX เชธเชพเชฅเซ‡ เชชเซ‚เชฐเซเชฃ เช•เชฐเซเชฏเซเช‚ เช›เซ‡: เช“เช›เชพเชฎเชพเช‚ เช“เช›เชพ เชฒเซ‰เช—เซเชธเชฎเชพเช‚เชฅเซ€ เชคเชฎเซ‡ เชธเชฎเชœเซ€ เชถเช•เซ‹ เช›เซ‹ เช•เซ‡ เชฌเชงเซเช‚ เชœเซ‹เชˆเช เชคเซ‡ เชชเซเชฐเชฎเชพเชฃเซ‡ เช•เชพเชฐเซเชฏ เช•เชฐเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡.

PHP-FPM เชธเชพเชฅเซ‡ เชถเซเช‚ เชกเซ€เชฒ เช›เซ‡? เชคเซ‡ เช†เช•เชฐเซเชทเช• เชถเชŸเชกเชพเช‰เชจเชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชนเซ‡เชจเซเชกเชฒ เช•เชฐเซ‡ เช›เซ‡? เชšเชพเชฒเซ‹ เชคเซ‡เชจเซ‡ เช†เช•เซƒเชคเชฟ เช•เชฐเซ€เช.

PHP, เชเชซเชชเซ€เชเชฎ

PHP-FPM เชจเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เชฅเซ‹เชกเซ€ เช“เช›เซ€ เชฎเชพเชนเชฟเชคเซ€ เช›เซ‡. เชœเซ‹ เชคเชฎเซ‡ เชงเซเชฏเชพเชจ เช•เซ‡เชจเซเชฆเซเชฐเชฟเชค เช•เชฐเซ‹ เช›เซ‹ เชธเชคเซเชคเชพเชตเชพเชฐ เชฎเชพเชฐเซเช—เชฆเชฐเซเชถเชฟเช•เชพ PHP-FPM เช…เชจเซเชธเชพเชฐ, เชคเซ‡ เช•เชนเซ‡เชถเซ‡ เช•เซ‡ เชจเซ€เชšเซ‡เชจเชพ POSIX เชธเชฟเช—เซเชจเชฒเซ‹ เชธเซเชตเซ€เช•เชพเชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เช›เซ‡:

  1. SIGINT, SIGTERM - เชเชกเชชเซ€ เชถเชŸเชกเชพเช‰เชจ;
  2. SIGQUIT - เช†เช•เชฐเซเชทเช• เชถเชŸเชกเชพเช‰เชจ (เช…เชฎเชจเซ‡ เชถเซเช‚ เชœเซ‹เชˆเช เช›เซ‡).

เช† เช•เชพเชฐเซเชฏเชฎเชพเช‚ เชฌเชพเช•เซ€เชจเชพ เชธเช‚เช•เซ‡เชคเซ‹เชจเซ€ เชœเชฐเซ‚เชฐ เชจเชฅเซ€, เชคเซ‡เชฅเซ€ เช…เชฎเซ‡ เชคเซ‡เชฎเชจเชพ เชตเชฟเชถเซเชฒเซ‡เชทเชฃเชจเซ‡ เช›เซ‹เชกเซ€ เชฆเชˆเชถเซเช‚. เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเชจเซ‡ เชฏเซ‹เช—เซเชฏ เชฐเซ€เชคเซ‡ เชธเชฎเชพเชชเซเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชคเชฎเชพเชฐเซ‡ เชจเซ€เชšเซ‡เชจเซเช‚ เชชเซเชฐเซ€เชธเซเชŸเซ‹เชช เชนเซ‚เช• เชฒเช–เชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเชถเซ‡:

        lifecycle:
          preStop:
            exec:
              command:
              - /bin/kill
              - -SIGQUIT
              - "1"

เชชเซเชฐเชฅเชฎ เชจเชœเชฐเชฎเชพเช‚, เชฌเช‚เชจเซ‡ เช•เชจเซเชŸเซ‡เชจเชฐเชฎเชพเช‚ เช†เช•เชฐเซเชทเช• เชถเชŸเชกเชพเช‰เชจ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช† เชฌเชงเซเช‚ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡. เชœเซ‹ เช•เซ‡, เช•เชพเชฐเซเชฏ เชฒเชพเช—เซ‡ เชคเซ‡ เช•เชฐเชคเชพเช‚ เชตเชงเซ เชฎเซเชถเซเช•เซ‡เชฒ เช›เซ‡. เชจเซ€เชšเซ‡ เชฌเซ‡ เช•เชฟเชธเซเชธเชพเช“ เช›เซ‡ เชœเซ‡เชฎเชพเช‚ เช†เช•เชฐเซเชทเช• เชถเชŸเชกเชพเช‰เชจ เช•เชพเชฎ เช•เชฐเชคเซเช‚ เชจ เชนเชคเซเช‚ เช…เชจเซ‡ เชœเชฎเชพเชตเชŸ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชจเซ€ เชŸเซ‚เช‚เช•เชพ เช—เชพเชณเชพเชจเซ€ เช…เชจเซเชชเชฒเชฌเซเชงเชคเชพเชจเซเช‚ เช•เชพเชฐเชฃ เชฌเชจเซ‡ เช›เซ‡.

เชชเซเชฐเซ‡เช•เซเชŸเชฟเชธ เช•เชฐเซ‹. เช†เช•เชฐเซเชทเช• เชถเชŸเชกเชพเช‰เชจ เชธเชพเชฅเซ‡ เชธเช‚เชญเชตเชฟเชค เชธเชฎเชธเซเชฏเชพเช“

เชเชจเชœเซ€เช†เชˆเชเชจเชเช•เซเชธ

เชธเซŒ เชชเซเชฐเชฅเชฎ, เชคเซ‡ เชฏเชพเชฆ เชฐเชพเช–เชตเซเช‚ เช‰เชชเชฏเซ‹เช—เซ€ เช›เซ‡: เช†เชฆเซ‡เชถ เชšเชฒเชพเชตเชตเชพ เช‰เชชเชฐเชพเช‚เชค nginx -s quit เชคเซเชฏเชพเช‚ เชเช• เชตเชงเซ เชคเชฌเช•เซเช•เซ‹ เช›เซ‡ เชœเซ‡เชจเชพ เชชเชฐ เชงเซเชฏเชพเชจ เช†เชชเชตเซเช‚ เชฏเซ‹เช—เซเชฏ เช›เซ‡. เช…เชฎเชจเซ‡ เชเช• เชธเชฎเชธเซเชฏเชพ เช†เชตเซ€ เช•เซ‡ เชœเซเชฏเชพเช‚ NGINX เชนเชœเซ เชชเชฃ SIGQUIT เชธเชฟเช—เซเชจเชฒเชจเซ‡ เชฌเชฆเชฒเซ‡ SIGTERM เชฎเซ‹เช•เชฒเชถเซ‡, เชœเซ‡เชจเชพ เช•เชพเชฐเชฃเซ‡ เชตเชฟเชจเช‚เชคเซ€เช“ เชฏเซ‹เช—เซเชฏ เชฐเซ€เชคเซ‡ เชชเซ‚เชฐเซเชฃ เชฅเชˆ เชจเชฅเซ€. เชธเชฎเชพเชจ เช•เชฟเชธเซเชธเชพเช“ เชถเซ‹เชงเซ€ เชถเช•เชพเชฏ เช›เซ‡, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เช…เชนเซ€เช‚. เช•เชฎเชจเชธเซ€เชฌเซ‡, เช…เชฎเซ‡ เช† เชตเชฐเซเชคเชฃเซ‚เช•เชจเซเช‚ เชšเซ‹เช•เซเช•เชธ เช•เชพเชฐเชฃ เชจเช•เซเช•เซ€ เช•เชฐเชตเชพเชฎเชพเช‚ เช…เชธเชฎเชฐเซเชฅ เชนเชคเชพ: NGINX เชธเช‚เชธเซเช•เชฐเชฃ เชตเชฟเชถเซ‡ เชถเช‚เช•เชพ เชนเชคเซ€, เชชเชฐเช‚เชคเซ เชคเซ‡เชจเซ€ เชชเซเชทเซเชŸเชฟ เชฅเชˆ เชจ เชนเชคเซ€. เชฒเช•เซเชทเชฃ เช เชนเชคเซเช‚ เช•เซ‡ NGINX เช•เชจเซเชŸเซ‡เชจเชฐ เชฒเซ‹เช—เชฎเชพเช‚ เชธเช‚เชฆเซ‡เชถเชพเช“ เชœเซ‹เชตเชพ เชฎเชณเซเชฏเชพ เชนเชคเชพ: "เช“เชชเชจ เชธเซ‹เช•เซ‡เชŸ #10 เช•เชจเซ‡เช•เซเชถเชจ 5 เชฎเชพเช‚ เชฌเชพเช•เซ€ เช›เซ‡", เชœเซ‡ เชชเช›เซ€ เชชเซ‹เชก เชฌเช‚เชง เชฅเชˆ เช—เชฏเซ‹.

เช…เชฎเซ‡ เช†เชตเซ€ เชธเชฎเชธเซเชฏเชพเชจเซเช‚ เช…เชตเชฒเซ‹เช•เชจ เช•เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เช‡เชจเซเช—เซเชฐเซ‡เชธ เชชเชฐเชจเชพ เชชเซเชฐเชคเชฟเชญเชพเชตเซ‹เชฎเชพเช‚เชฅเซ€ เช…เชฎเชจเซ‡ เชœเชฐเซ‚เชฐ เช›เซ‡:

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชŸเซ€เชชเซเชธ เช…เชจเซ‡ เชฏเซเช•เซเชคเชฟเช“: NGINX เช…เชจเซ‡ PHP-FPM เชฎเชพเช‚ เช†เช•เชฐเซเชทเช• เชถเชŸเชกเชพเช‰เชจเชจเซ€ เชธเซเชตเชฟเชงเชพเช“
เชœเชฎเชพเชตเชŸ เชธเชฎเชฏเซ‡ เชธเซเชŸเซ‡เชŸเชธ เช•เซ‹เชกเชจเชพ เชธเซ‚เชšเช•

เช† เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เช…เชฎเชจเซ‡ เช‡เชจเซเช—เซเชฐเซ‡เชธ เชคเชฐเชซเชฅเซ€ เชฎเชพเชคเซเชฐ เชเช• 503 เชญเซ‚เชฒ เช•เซ‹เชก เชชเซเชฐเชพเชชเซเชค เชฅเชพเชฏ เช›เซ‡: เชคเซ‡ NGINX เช•เชจเซเชŸเซ‡เชจเชฐเชจเซ‡ เชเช•เซเชธเซ‡เชธ เช•เชฐเซ€ เชถเช•เชคเซเช‚ เชจเชฅเซ€, เช•เชพเชฐเชฃ เช•เซ‡ เชคเซ‡ เชนเชตเซ‡ เชเช•เซเชธเซ‡เชธเชฟเชฌเชฒ เชจเชฅเซ€. เชœเซ‹ เชคเชฎเซ‡ NGINX เชธเชพเชฅเซ‡ เช•เชจเซเชŸเซ‡เชจเชฐ เชฒเซ‹เช— เชœเซเช“ เช›เซ‹, เชคเซ‹ เชคเซ‡เชฎเชพเช‚ เชจเซ€เชšเซ‡เชจเชพเชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เชฅเชพเชฏ เช›เซ‡:

[alert] 13939#0: *154 open socket #3 left in connection 16
[alert] 13939#0: *168 open socket #6 left in connection 13

เชธเซเชŸเซ‹เชช เชธเชฟเช—เซเชจเชฒ เชฌเชฆเชฒเซเชฏเชพ เชชเช›เซ€, เช•เชจเซเชŸเซ‡เชจเชฐ เชฏเซ‹เช—เซเชฏ เชฐเซ€เชคเซ‡ เชฌเช‚เชง เชฅเชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเซ‡ เช›เซ‡: เช† เชนเช•เซ€เช•เชค เชฆเซเชตเชพเชฐเชพ เชชเซเชทเซเชŸเชฟ เชฎเชณเซ‡ เช›เซ‡ เช•เซ‡ 503 เชญเซ‚เชฒ เชนเชตเซ‡ เชœเซ‹เชตเชพ เชฎเชณเชคเซ€ เชจเชฅเซ€.

เชœเซ‹ เชคเชฎเซ‡ เชธเชฎเชพเชจ เชธเชฎเชธเซเชฏเชพเชจเซ‹ เชธเชพเชฎเชจเซ‹ เช•เชฐเซ‹ เช›เซ‹, เชคเซ‹ เช•เชจเซเชŸเซ‡เชจเชฐเชฎเชพเช‚ เช•เชฏเชพ เชธเซเชŸเซ‹เชช เชธเชฟเช—เซเชจเชฒเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เช…เชจเซ‡ เชชเซเชฐเซ€เชธเซเชŸเซ‹เชช เชนเซ‚เช• เชฌเชฐเชพเชฌเชฐ เช•เซ‡เชตเซ‹ เชฆเซ‡เช–เชพเชฏ เช›เซ‡ เชคเซ‡ เชธเชฎเชœเชตเชพเชฎเชพเช‚ เช…เชฐเซเชฅเชชเซ‚เชฐเซเชฃ เช›เซ‡. เชคเซ‡ เชคเชฆเซเชฆเชจ เชถเช•เซเชฏ เช›เซ‡ เช•เซ‡ เช•เชพเชฐเชฃ เช†เชฎเชพเช‚ เชšเซ‹เช•เซเช•เชธเชชเชฃเซ‡ เช†เชตเซ‡เชฒเซเช‚ เช›เซ‡.

PHP-FPM... เช…เชจเซ‡ เชตเชงเซ

PHP-FPM เชจเซ€ เชธเชฎเชธเซเชฏเชพเชจเซ‡ เชคเซเชšเซเช› เชฐเซ€เชคเซ‡ เชตเชฐเซเชฃเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡: เชคเซ‡ เชฌเชพเชณ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเช“ เชชเซ‚เชฐเซเชฃ เชฅเชตเชพเชจเซ€ เชฐเชพเชน เชœเซ‹เชคเซ€ เชจเชฅเซ€, เชคเซ‡ เชคเซ‡เชฎเชจเซ‡ เชธเชฎเชพเชชเซเชค เช•เชฐเซ‡ เช›เซ‡, เชคเซ‡เชฅเซ€ เชœ เชœเชฎเชพเชตเชŸ เช…เชจเซ‡ เช…เชจเซเชฏ เช•เชพเชฎเช—เซ€เชฐเซ€ เชฆเชฐเชฎเชฟเชฏเชพเชจ 502 เชญเซ‚เชฒเซ‹ เชฅเชพเชฏ เช›เซ‡. 2005 เชฅเซ€ bugs.php.net เชชเชฐ เช…เชจเซ‡เช• เชฌเช— เชฐเชฟเชชเซ‹เชฐเซเชŸเซเชธ เช›เซ‡ (เชฆเชพ.เชค เช…เชนเซ€เช‚ ะธ เช…เชนเซ€เช‚), เชœเซ‡ เช† เชธเชฎเชธเซเชฏเชพเชจเซเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเซ‡ เช›เซ‡. เชชเชฐเช‚เชคเซ เชคเชฎเซ‡ เชฎเซ‹เชŸเซ‡ เชญเชพเช—เซ‡ เชฒเซ‹เช—เชฎเชพเช‚ เช•เช‚เชˆเชชเชฃ เชœเซ‹เชถเซ‹ เชจเชนเซ€เช‚: PHP-FPM เช•เซ‹เชˆเชชเชฃ เชญเซ‚เชฒเซ‹ เช…เชฅเชตเชพ เชคเซƒเชคเซ€เชฏ-เชชเช•เซเชท เชธเซ‚เชšเชจเชพเช“ เชตเชฟเชจเชพ เชคเซ‡เชจเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เชชเซ‚เชฐเซเชฃ เชฅเชตเชพเชจเซ€ เชœเชพเชนเซ‡เชฐเชพเชค เช•เชฐเชถเซ‡.

เชคเซ‡ เชธเซเชชเชทเซเชŸ เช•เชฐเชตเชพ เชฏเซ‹เช—เซเชฏ เช›เซ‡ เช•เซ‡ เชธเชฎเชธเซเชฏเชพ เชชเซ‹เชคเซ‡ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชชเชฐ เชœ เช“เช›เซ€ เช…เชฅเชตเชพ เชตเชงเซ เชนเชฆ เชธเซเชงเซ€ เชจเชฟเชฐเซเชญเชฐ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡ เชชเซ‹เชคเชพเชจเซ‡ เชชเซเชฐเช—เชŸ เช•เชฐเซ€ เชถเช•เชถเซ‡ เชจเชนเซ€เช‚, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชฎเซ‹เชจเชฟเชŸเชฐเชฟเช‚เช—เชฎเชพเช‚. เชœเซ‹ เชคเชฎเซ‡ เชคเซ‡เชจเซ‹ เชธเชพเชฎเชจเซ‹ เช•เชฐเซ‹ เช›เซ‹, เชคเซ‹ เชชเซเชฐเชฅเชฎ เชเช• เชธเชฐเชณ เช‰เชชเชพเชฏ เชงเซเชฏเชพเชจเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡: เชคเซ‡เชจเซ€ เชธเชพเชฅเซ‡ เชชเซเชฐเซ€เชธเซเชŸเซ‹เชช เชนเซ‚เช• เช‰เชฎเซ‡เชฐเซ‹ sleep(30). เชคเซ‡ เชคเชฎเชจเซ‡ เชชเชนเซ‡เชฒเชพเชจเซ€ เชฌเชงเซ€ เชตเชฟเชจเช‚เชคเซ€เช“ เชชเซ‚เชฐเซเชฃ เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเชถเซ‡ (เช…เชจเซ‡ เชชเซ‹เชกเชฅเซ€ เช…เชฎเซ‡ เชจเชตเซ€ เชธเซเชตเซ€เช•เชพเชฐเชคเชพ เชจเชฅเซ€ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชธเช•เซเชทเชฎ เชธเชฎเชพเชชเซเชค), เช…เชจเซ‡ 30 เชธเซ‡เช•เชจเซเชก เชชเช›เซ€ เชชเซ‹เชก เชชเซ‹เชคเซ‡ เชธเชฟเช—เซเชจเชฒ เชธเชพเชฅเซ‡ เชธเชฎเชพเชชเซเชค เชฅเชถเซ‡ SIGTERM.

เชคเซ‡ เชคเชพเชฐเชฃ เช†เชชเซ‡ เช›เซ‡ เช•เซ‡ lifecycle เช•เชจเซเชŸเซ‡เชจเชฐ เชฎเชพเชŸเซ‡ เช†เชจเชพ เชœเซ‡เชตเซ‹ เชฆเซ‡เช–เชพเชถเซ‡:

    lifecycle:
      preStop:
        exec:
          command:
          - /bin/sleep
          - "30"

เชœเซ‹ เช•เซ‡, 30-เชธเซ‡เช•เชจเซเชกเชจเชพ เช•เชพเชฐเชฃเซ‡ sleep เช…เชฎเซ‡ เช›เซ€เช ัะธะปัŒะฝะพ เช…เชฎเซ‡ เชœเชฎเชพเชตเชŸเชจเซ‹ เชธเชฎเชฏ เชตเชงเชพเชฐเซ€เชถเซเช‚, เช•เชพเชฐเชฃ เช•เซ‡ เชฆเชฐเซ‡เช• เชชเซ‹เชก เชธเชฎเชพเชชเซเชค เชฅเชถเซ‡ เชฒเช˜เซเชคเซเชคเชฎ 30 เชธเซ‡เช•เชจเซเชก, เชœเซ‡ เช–เชฐเชพเชฌ เช›เซ‡. เช† เชตเชฟเชถเซ‡ เชถเซเช‚ เช•เชฐเซ€ เชถเช•เชพเชฏ?

เชšเชพเชฒเซ‹ เช…เชฐเชœเซ€เชจเชพ เชธเซ€เชงเชพ เช…เชฎเชฒ เชฎเชพเชŸเซ‡ เชœเชตเชพเชฌเชฆเชพเชฐ เชชเช•เซเชท เชคเชฐเชซ เชตเชณเซ€เช. เช…เชฎเชพเชฐเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚ เชคเซ‡ เช›เซ‡ PHP, เชเชซเชชเซ€เชเชฎ, เชœเซ‡ เชฎเซ‚เชณเชญเซ‚เชค เชฐเซ€เชคเซ‡ เชคเซ‡เชจเซ€ เชฌเชพเชณ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเช“เชจเชพ เช…เชฎเชฒ เชชเชฐ เชฆเซ‡เช–เชฐเซ‡เช– เชฐเชพเช–เชคเซเช‚ เชจเชฅเซ€: เชฎเชพเชธเซเชŸเชฐ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เชคเชฐเชค เชœ เชธเชฎเชพเชชเซเชค เชฅเชพเชฏ เช›เซ‡. เชคเชฎเซ‡ เชจเชฟเชฐเซเชฆเซ‡เชถเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช† เชตเชฐเซเชคเชจ เชฌเชฆเชฒเซ€ เชถเช•เซ‹ เช›เซ‹ process_control_timeout, เชœเซ‡ เชฎเชพเชธเซเชŸเชฐ เชคเชฐเชซเชฅเซ€ เชธเชฟเช—เซเชจเชฒเซ‹เชจเซ€ เชฐเชพเชน เชœเซ‹เชตเชพ เชฎเชพเชŸเซ‡ เชฌเชพเชณ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเช“ เชฎเชพเชŸเซ‡เชจเซ€ เชธเชฎเชฏ เชฎเชฐเซเชฏเชพเชฆเชพเชจเซ‹ เช‰เชฒเซเชฒเซ‡เช– เช•เชฐเซ‡ เช›เซ‡. เชœเซ‹ เชคเชฎเซ‡ เชตเซ‡เชฒเซเชฏเซเชจเซ‡ 20 เชธเซ‡เช•เชจเซเชก เชชเชฐ เชธเซ‡เชŸ เช•เชฐเซ‹ เช›เซ‹, เชคเซ‹ เช† เช•เชจเซเชŸเซ‡เชจเชฐเชฎเชพเช‚ เชšเชพเชฒเซ€ เชฐเชนเซ‡เชฒเซ€ เชฎเซ‹เชŸเชพเชญเชพเช—เชจเซ€ เช•เซเชตเซ‡เชฐเซ€เชเชจเซ‡ เช†เชตเชฐเซ€ เชฒเซ‡เชถเซ‡ เช…เชจเซ‡ เชคเซ‡ เชชเซ‚เชฐเซเชฃ เชฅเชˆ เชœเชพเชฏ เชคเซ‡ เชชเช›เซ€ เชฎเชพเชธเซเชŸเชฐ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เชฌเช‚เชง เชฅเชˆ เชœเชถเซ‡.

เช† เชœเซเชžเชพเชจ เชธเชพเชฅเซ‡, เชšเชพเชฒเซ‹ เช†เชชเชฃเซ€ เช›เซ‡เชฒเซเชฒเซ€ เชธเชฎเชธเซเชฏเชพ เชชเชฐ เชชเชพเช›เชพ เชซเชฐเซ€เช. เช‰เชฒเซเชฒเซ‡เช– เช•เชฐเซเชฏเซ‹ เช›เซ‡ เชคเซ‡เชฎ, เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชเช• เชฎเซ‹เชจเซ‹เชฒเชฟเชฅเชฟเช• เชชเซเชฒเซ‡เชŸเชซเซ‹เชฐเซเชฎ เชจเชฅเซ€: เชคเซ‡เชจเชพ เชตเชฟเชตเชฟเชง เช˜เชŸเช•เซ‹ เชตเชšเซเชšเซ‡เชจเชพ เชธเช‚เชšเชพเชฐเชฎเชพเช‚ เชฅเซ‹เชกเซ‹ เชธเชฎเชฏ เชฒเชพเช—เซ‡ เช›เซ‡. เช† เช–เชพเชธ เช•เชฐเซ€เชจเซ‡ เชธเชพเชšเซเช‚ เช›เซ‡ เชœเซเชฏเชพเชฐเซ‡ เช†เชชเชฃเซ‡ เช‡เชจเซเช—เซเชฐเซ‡เชธเซ€เชธ เช…เชจเซ‡ เช…เชจเซเชฏ เชธเช‚เชฌเช‚เชงเชฟเชค เช˜เชŸเช•เซ‹เชจเซ€ เช•เชพเชฎเช—เซ€เชฐเซ€เชจเซ‡ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฒเชˆเช เช›เซ€เช, เช•เชพเชฐเชฃ เช•เซ‡ เชœเชฎเชพเชตเชŸ เชธเชฎเชฏเซ‡ เช†เชตเชพ เชตเชฟเชฒเช‚เชฌเชจเซ‡ เช•เชพเชฐเชฃเซ‡ 500 เชญเซ‚เชฒเซ‹เชจเซ‹ เชตเชงเชพเชฐเซ‹ เชฎเซ‡เชณเชตเชตเซ‹ เชธเชฐเชณ เช›เซ‡. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เช…เชชเชธเซเชŸเซเชฐเซ€เชฎเชจเซ‡ เชตเชฟเชจเช‚เชคเซ€ เชฎเซ‹เช•เชฒเชตเชพเชจเชพ เชคเชฌเช•เซเช•เซ‡ เชเช• เชญเซ‚เชฒ เช†เชตเซ€ เชถเช•เซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เช˜เชŸเช•เซ‹ เชตเชšเซเชšเซ‡เชจเซ€ เช•เซเชฐเชฟเชฏเชพเชชเซเชฐเชคเชฟเช•เซเชฐเชฟเชฏเชพเชจเซ‹ "เชธเชฎเชฏ เชตเชฟเชฐเชพเชฎ" เช–เซ‚เชฌ เชŸเซ‚เช‚เช•เซ‹ เช›เซ‡ - เชเช• เชธเซ‡เช•เชจเซเชก เช•เชฐเชคเชพเช‚ เชชเชฃ เช“เช›เซ‹.

เชคเซ‡เชฅเซ€, เช•เซเชฒ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เช‰เชฒเซเชฒเซ‡เช–เชฟเชค เชจเชฟเชฐเซเชฆเซ‡เชถ เชธเชพเชฅเซ‡ process_control_timeout เชคเชฎเซ‡ เชจเซ€เชšเซ‡เชจเชพ เชฌเชพเช‚เชงเช•เชพเชฎเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ lifecycle:

lifecycle:
  preStop:
    exec:
      command: ["/bin/bash","-c","/bin/sleep 1; kill -QUIT 1"]

เช† เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เช…เชฎเซ‡ เช†เชฆเซ‡เชถ เชธเชพเชฅเซ‡ เชตเชฟเชฒเช‚เชฌ เชฎเชพเชŸเซ‡ เชตเชณเชคเชฐ เช†เชชเซ€เชถเซเช‚ sleep เช…เชจเซ‡ เชœเชฎเชพเชตเชŸเชจเชพ เชธเชฎเชฏเชจเซ‡ เชฎเซ‹เชŸเชพ เชชเซเชฐเชฎเชพเชฃเชฎเชพเช‚ เชตเชงเชพเชฐเชถเซ‹ เชจเชนเซ€เช‚: เชถเซเช‚ 30 เชธเซ‡เช•เชจเซเชก เช…เชจเซ‡ เชเช• เชตเชšเซเชšเซ‡ เชจเซ‹เช‚เชงเชชเชพเชคเซเชฐ เชคเชซเชพเชตเชค เช›เซ‡?.. เชตเชพเชธเซเชคเชตเชฎเชพเช‚, เชคเซ‡ เช›เซ‡ process_control_timeoutเช…เชจเซ‡ lifecycle เชฒเซ‡เช—เชจเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚ เชซเช•เซเชค "เชธเซ‡เชซเซเชŸเซ€ เชจเซ‡เชŸ" เชคเชฐเซ€เช•เซ‡ เช‰เชชเชฏเซ‹เช—เชฎเชพเช‚ เชฒเซ‡เชตเชพเชฏ เช›เซ‡.

เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เช•เชนเซ€เช เชคเซ‹, เชตเชฐเซเชฃเชตเซ‡เชฒ เชตเชฐเซเชคเชฃเซ‚เช• เช…เชจเซ‡ เช…เชจเซเชฐเซ‚เชช เช‰เช•เซ‡เชฒ เชฎเชพเชคเซเชฐ PHP-FPM เชชเชฐ เชœ เชฒเชพเช—เซ เชชเชกเชคเซเช‚ เชจเชฅเซ€. เช…เชจเซเชฏ เชญเชพเชทเชพเช“/เชซเซเชฐเซ‡เชฎเชตเชฐเซเช•เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เชเช• เช…เชฅเชตเชพ เชฌเซ€เชœเซ€ เชฐเซ€เชคเซ‡ เช†เชตเซ€ เชœ เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟ เชŠเชญเซ€ เชฅเชˆ เชถเช•เซ‡ เช›เซ‡. เชœเซ‹ เชคเชฎเซ‡ เช…เชจเซเชฏ เชฐเซ€เชคเซ‡ เช†เช•เชฐเซเชทเช• เชถเชŸเชกเชพเช‰เชจเชจเซ‡ เช เซ€เช• เช•เชฐเซ€ เชถเช•เชคเชพ เชจเชฅเซ€ - เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เช•เซ‹เชกเชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชฒเช–เซ€เชจเซ‡ เชœเซ‡เชฅเซ€ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชฏเซ‹เช—เซเชฏ เชฐเซ€เชคเซ‡ เชธเชฎเชพเชชเซเชคเชฟ เชธเช‚เช•เซ‡เชคเซ‹ เชชเชฐ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช•เชฐเซ‡ - เชคเชฎเซ‡ เชตเชฐเซเชฃเชตเซ‡เชฒ เชชเชฆเซเชงเชคเชฟเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹. เชคเซ‡ เชธเซŒเชฅเซ€ เชธเซเช‚เชฆเชฐ เชจ เชนเซ‹เชˆ เชถเช•เซ‡, เชชเชฐเช‚เชคเซ เชคเซ‡ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡.

เชชเซเชฐเซ‡เช•เซเชŸเชฟเชธ เช•เชฐเซ‹. เชชเซ‹เชกเชจเซ€ เช•เชพเชฎเช—เซ€เชฐเซ€ เชคเชชเชพเชธเชตเชพ เชฎเชพเชŸเซ‡ เชฒเซ‹เชก เชชเชฐเซ€เช•เซเชทเชฃ

เชฒเซ‹เชก เชชเชฐเซ€เช•เซเชทเชฃ เช เช•เชจเซเชŸเซ‡เชจเชฐ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชพเชฐเซเชฏ เช•เชฐเซ‡ เช›เซ‡ เชคเซ‡ เชคเชชเชพเชธเชตเชพเชจเซ€ เชเช• เชฐเซ€เชค เช›เซ‡, เช•เชพเชฐเชฃ เช•เซ‡ เชœเซเชฏเชพเชฐเซ‡ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“ เชธเชพเช‡เชŸเชจเซ€ เชฎเซเชฒเชพเช•เชพเชค เชฒเซ‡ เช›เซ‡ เชคเซเชฏเชพเชฐเซ‡ เช† เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เชคเซ‡เชจเซ‡ เชตเชพเชธเซเชคเชตเชฟเช• เชฒเชกเชพเช‡เชจเซ€ เชธเซเชฅเชฟเชคเชฟเชจเซ€ เชจเชœเซ€เช• เชฒเชพเชตเซ‡ เช›เซ‡. เช‰เชชเชฐเซ‹เช•เซเชค เชญเชฒเชพเชฎเชฃเซ‹เชจเซ‡ เชšเช•เชพเชธเชตเชพ เชฎเชพเชŸเซ‡, เชคเชฎเซ‡ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ Yandex.Tankom: เชคเซ‡ เช…เชฎเชพเชฐเซ€ เชคเชฎเชพเชฎ เชœเชฐเซ‚เชฐเชฟเชฏเชพเชคเซ‹เชจเซ‡ เชธเช‚เชชเซ‚เชฐเซเชฃ เชฐเซ€เชคเซ‡ เช†เชตเชฐเซ€ เชฒเซ‡ เช›เซ‡. Grafana เช…เชจเซ‡ Yandex.Tankเชจเชพ เชœ เช†เชฒเซ‡เช–เชจเซ‡ เช•เชพเชฐเชฃเซ‡ เช…เชฎเชพเชฐเชพ เช…เชจเซเชญเชตเชฎเชพเช‚เชฅเซ€ เชธเซเชชเชทเซเชŸ เช‰เชฆเชพเชนเชฐเชฃ เชธเชพเชฅเซ‡ เชชเชฐเซ€เช•เซเชทเชฃ เชนเชพเชฅ เชงเชฐเชตเชพ เชฎเชพเชŸเซ‡เชจเซ€ เชŸเชฟเชชเซเชธ เช…เชจเซ‡ เชญเชฒเชพเชฎเชฃเซ‹ เชจเซ€เชšเซ‡ เชฎเซเชœเชฌ เช›เซ‡.

เช…เชนเซ€เช‚ เชธเซŒเชฅเซ€ เชฎเชนเชคเซเชตเชจเซ€ เชฌเชพเชฌเชค เช›เซ‡ เชคเชฌเช•เซเช•เชพเชตเชพเชฐ เชซเซ‡เชฐเชซเชพเชฐเซ‹ เชคเชชเชพเชธเซ‹. เชจเชตเซเช‚ เชซเชฟเช•เซเชธ เช‰เชฎเซ‡เชฐเซเชฏเชพ เชชเช›เซ€, เชชเชฐเซ€เช•เซเชทเชฃ เชšเชฒเชพเชตเซ‹ เช…เชจเซ‡ เชœเซเช“ เช•เซ‡ เช›เซ‡เชฒเซเชฒเชพ เชฐเชจเชจเซ€ เชธเชฐเช–เชพเชฎเชฃเซ€เชฎเชพเช‚ เชชเชฐเชฟเชฃเชพเชฎเซ‹ เชฌเชฆเชฒเชพเชฏเชพ เช›เซ‡ เช•เซ‡ เชจเชนเซ€เช‚. เชจเชนเชฟเช‚เชคเชฐ, เชฌเชฟเชจเช…เชธเชฐเช•เชพเชฐเช• เช‰เช•เซ‡เชฒเซ‹เชจเซ‡ เช“เชณเช–เชตเซเช‚ เชฎเซเชถเซเช•เซ‡เชฒ เชฌเชจเชถเซ‡, เช…เชจเซ‡ เชฒเชพเช‚เชฌเชพ เช—เชพเชณเซ‡ เชคเซ‡ เชฎเชพเชคเซเชฐ เชจเซเช•เชธเชพเชจ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡ (เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชœเชฎเชพเชตเชŸเชจเซ‹ เชธเชฎเชฏ เชตเชงเชพเชฐเซ‹).

เช…เชจเซเชฏ เช‰เชชเชฆเซเชฐเชต เช เชคเซ‡เชจเชพ เชธเชฎเชพเชชเซเชคเชฟ เชฆเชฐเชฎเชฟเชฏเชพเชจ เช•เชจเซเชŸเซ‡เชจเชฐ เชฒเซ‹เช—เชจเซ‡ เชœเซ‹เชตเชพเชจเซเช‚ เช›เซ‡. เชถเซเช‚ เช†เช•เชฐเซเชทเช• เชถเชŸเชกเชพเช‰เชจ เชตเชฟเชถเซ‡เชจเซ€ เชฎเชพเชนเชฟเชคเซ€ เชคเซเชฏเชพเช‚ เชฐเซ‡เช•เซ‹เชฐเซเชก เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡? เชถเซเช‚ เช…เชจเซเชฏ เชธเช‚เชธเชพเชงเชจเซ‹ (เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชชเชกเซ‹เชถเซ€ PHP-FPM เช•เชจเซเชŸเซ‡เชจเชฐเชจเซ‡) เชเช•เซเชธเซ‡เชธ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เชฒเซ‰เช—เซเชธเชฎเชพเช‚ เช•เซ‹เชˆ เชญเซ‚เชฒเซ‹ เช›เซ‡? เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชฎเชพเช‚ เชœ เชญเซ‚เชฒเซ‹ (เช‰เชชเชฐ เชตเชฐเซเชฃเชตเซ‡เชฒ NGINX เชธเชพเชฅเซ‡เชจเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚)? เชนเซเช‚ เช†เชถเชพ เชฐเชพเช–เซเช‚ เช›เซเช‚ เช•เซ‡ เช† เชฒเซ‡เช–เชฎเชพเช‚เชฅเซ€ เชชเซเชฐเชพเชฐเช‚เชญเชฟเช• เชฎเชพเชนเชฟเชคเซ€ เชคเชฎเชจเซ‡ เช•เชจเซเชŸเซ‡เชจเชฐเชจเซ€ เชธเชฎเชพเชชเซเชคเชฟ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชถเซเช‚ เชฅเชพเชฏ เช›เซ‡ เชคเซ‡ เชตเชงเซ เชธเชพเชฐเซ€ เชฐเซ€เชคเซ‡ เชธเชฎเชœเชตเชพเชฎเชพเช‚ เชฎเชฆเชฆ เช•เชฐเชถเซ‡.

เชคเซ‡เชฅเซ€, เชชเซเชฐเชฅเชฎ เชŸเซ‡เชธเซเชŸ เชฐเชจ เชตเชฟเชจเชพ เชฏเซ‹เชœเชพเชฏเซ‹ เชนเชคเซ‹ lifecycle เช…เชจเซ‡ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชธเชฐเซเชตเชฐ เชฎเชพเชŸเซ‡ เชตเชงเชพเชฐเชพเชจเชพ เชจเชฟเชฐเซเชฆเซ‡เชถเซ‹ เชตเชฟเชจเชพ (process_control_timeout PHP-FPM เชฎเชพเช‚). เช† เชชเชฐเซ€เช•เซเชทเชฃเชจเซ‹ เชนเซ‡เชคเซ เชญเซ‚เชฒเซ‹เชจเซ€ เช…เช‚เชฆเชพเชœเชฟเชค เชธเช‚เช–เซเชฏเชพเชจเซ‡ เช“เชณเช–เชตเชพเชจเซ‹ เชนเชคเซ‹ (เช…เชจเซ‡ เชคเซเชฏเชพเช‚ เช•เซ‹เชˆ เช›เซ‡ เช•เซ‡ เช•เซ‡เชฎ). เช‰เชชเชฐเชพเช‚เชค, เชตเชงเชพเชฐเชพเชจเซ€ เชฎเชพเชนเชฟเชคเซ€เชฎเชพเช‚เชฅเซ€, เชคเชฎเชพเชฐเซ‡ เชœเชพเชฃเชตเซเช‚ เชœเซ‹เชˆเช เช•เซ‡ เชฆเชฐเซ‡เช• เชชเซ‹เชก เชฎเชพเชŸเซ‡ เชธเชฐเซ‡เชฐเชพเชถ เชœเชฎเชพเชตเชŸเชจเซ‹ เชธเชฎเชฏ เชฒเช—เชญเช— 5-10 เชธเซ‡เช•เชจเซเชกเชจเซ‹ เชนเชคเซ‹ เชœเซเชฏเชพเช‚ เชธเซเชงเซ€ เชคเซ‡ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เชคเซˆเชฏเชพเชฐ เชจ เชฅเชพเชฏ. เชชเชฐเชฟเชฃเชพเชฎเซ‹ เช›เซ‡:

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชŸเซ€เชชเซเชธ เช…เชจเซ‡ เชฏเซเช•เซเชคเชฟเช“: NGINX เช…เชจเซ‡ PHP-FPM เชฎเชพเช‚ เช†เช•เชฐเซเชทเช• เชถเชŸเชกเชพเช‰เชจเชจเซ€ เชธเซเชตเชฟเชงเชพเช“

Yandex.Tank เชฎเชพเชนเชฟเชคเซ€ เชชเซ‡เชจเชฒ 502 เชญเซ‚เชฒเซ‹เชจเซ€ เชตเซƒเชฆเซเชงเชฟ เชฆเชฐเซเชถเชพเชตเซ‡ เช›เซ‡, เชœเซ‡ เชœเชฎเชพเชตเชŸ เชธเชฎเชฏเซ‡ เช†เชตเซ€ เชนเชคเซ€ เช…เชจเซ‡ เชธเชฐเซ‡เชฐเชพเชถ 5 เชธเซ‡เช•เชจเซเชก เชธเซเชงเซ€ เชšเชพเชฒเซ€ เชนเชคเซ€. เชธเช‚เชญเชตเชคเชƒ เช† เชเชŸเชฒเชพ เชฎเชพเชŸเซ‡ เชนเชคเซเช‚ เช•เชพเชฐเชฃ เช•เซ‡ เชœเซ‚เชจเชพ เชชเซ‹เชกเชจเซ€ เชนเชพเชฒเชจเซ€ เชตเชฟเชจเช‚เชคเซ€เช“ เชœเซเชฏเชพเชฐเซ‡ เชคเซ‡เชจเซ‡ เชธเชฎเชพเชชเซเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชฐเชนเซ€ เชนเชคเซ€ เชคเซเชฏเชพเชฐเซ‡ เชคเซ‡เชจเซ‡ เชธเชฎเชพเชชเซเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชฐเชนเซ€ เชนเชคเซ€. เช† เชชเช›เซ€, 503 เชญเซ‚เชฒเซ‹ เชฆเซ‡เช–เชพเชˆ, เชœเซ‡ เชฐเซ‹เช•เชพเชฏเซ‡เชฒเชพ NGINX เช•เชจเซเชŸเซ‡เชจเชฐเชจเซเช‚ เชชเชฐเชฟเชฃเชพเชฎ เชนเชคเซเช‚, เชœเซ‡เชฃเซ‡ เชฌเซ‡เช•เชเชจเซเชกเชจเซ‡ เช•เชพเชฐเชฃเซ‡ เช•เชจเซ‡เช•เซเชถเชจเซเชธ เชชเชฃ เช›เซ‹เชกเซ€ เชฆเซ€เชงเชพ (เชœเซ‡ เช‡เชจเซเช—เซเชฐเซ‡เชธเชจเซ‡ เชคเซ‡เชจเซ€ เชธเชพเชฅเซ‡ เช•เชจเซ‡เช•เซเชŸ เชฅเชตเชพเชฅเซ€ เช…เชŸเช•เชพเชตเซ‡ เช›เซ‡).

เชšเชพเชฒเซ‹ เชœเซ‹เชˆเช เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ process_control_timeout PHP-FPM เชฎเชพเช‚ เช…เชฎเชจเซ‡ เชšเชพเช‡เชฒเซเชก เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเช“ เชชเซ‚เชฐเซเชฃ เชฅเชตเชพเชจเซ€ เชฐเชพเชน เชœเซ‹เชตเชพเชฎเชพเช‚ เชฎเชฆเชฆ เช•เชฐเชถเซ‡, เชเชŸเชฒเซ‡ เช•เซ‡. เช†เชตเซ€ เชญเซ‚เชฒเซ‹ เชธเซเชงเชพเชฐเชตเซ€. เช† เชจเชฟเชฐเซเชฆเซ‡เชถเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชœเชฎเชพเชตเชŸ เช•เชฐเซ‹:

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชŸเซ€เชชเซเชธ เช…เชจเซ‡ เชฏเซเช•เซเชคเชฟเช“: NGINX เช…เชจเซ‡ PHP-FPM เชฎเชพเช‚ เช†เช•เชฐเซเชทเช• เชถเชŸเชกเชพเช‰เชจเชจเซ€ เชธเซเชตเชฟเชงเชพเช“

500เชฎเซ€ เชœเชฎเชพเชตเชŸ เชฆเชฐเชฎเชฟเชฏเชพเชจ เช•เซ‹เชˆ เชตเชงเซ เชญเซ‚เชฒเซ‹ เชจเชฅเซ€! เชœเชฎเชพเชตเชŸ เชธเชซเชณ เช›เซ‡, เช†เช•เชฐเซเชทเช• เชถเชŸเชกเชพเช‰เชจ เช•เชพเชฐเซเชฏ เช•เชฐเซ‡ เช›เซ‡.

เชœเซ‹ เช•เซ‡, เช‡เชจเซเช—เซเชฐเซ‡เชธ เช•เชจเซเชŸเซ‡เชจเชฐ เชธเชพเชฅเซ‡เชจเซ€ เชธเชฎเชธเซเชฏเชพเชจเซ‡ เชฏเชพเชฆ เชฐเชพเช–เชตเชพ เชฏเซ‹เช—เซเชฏ เช›เซ‡, เชญเซ‚เชฒเซ‹เชจเซ€ เชฅเซ‹เชกเซ€ เชŸเช•เชพเชตเชพเชฐเซ€ เชœเซ‡เชฎเชพเช‚ เชธเชฎเชฏ เชตเชฟเชฐเชพเชฎเชจเซ‡ เช•เชพเชฐเชฃเซ‡ เช…เชฎเชจเซ‡ เชชเซเชฐเชพเชชเซเชค เชฅเชˆ เชถเช•เซ‡ เช›เซ‡. เชคเซ‡เชฎเชจเซ‡ เชŸเชพเชณเชตเชพ เชฎเชพเชŸเซ‡, เชœเซ‡ เชฌเชพเช•เซ€ เช›เซ‡ เชคเซ‡ เชธเชพเชฅเซ‡ เชเช• เชฎเชพเชณเช–เซเช‚ เช‰เชฎเซ‡เชฐเชตเชพเชจเซเช‚ เช›เซ‡ sleep เช…เชจเซ‡ เชœเชฎเชพเชตเชŸเชจเซเช‚ เชชเซเชจเชฐเชพเชตเชฐเซเชคเชจ เช•เชฐเซ‹. เชœเซ‹ เช•เซ‡, เช…เชฎเชพเชฐเชพ เชšเซ‹เช•เซเช•เชธ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เช•เซ‹เชˆ เชซเซ‡เชฐเชซเชพเชฐเซ‹ เชฆเซ‡เช–เชพเชคเชพ เชจ เชนเชคเชพ (เชซเชฐเซ€เชฅเซ€, เช•เซ‹เชˆ เชญเซ‚เชฒเซ‹ เชจเชฅเซ€).

เชจเชฟเชทเซเช•เชฐเซเชท

เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเชจเซ‡ เช†เช•เชฐเซเชทเช• เชฐเซ€เชคเซ‡ เชธเชฎเชพเชชเซเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เช…เชฎเซ‡ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชชเชพเชธเซ‡เชฅเซ€ เชจเซ€เชšเซ‡เชจเชพ เชตเชฐเซเชคเชจเชจเซ€ เช…เชชเซ‡เช•เซเชทเชพ เชฐเชพเช–เซ€เช เช›เซ€เช:

  1. เชฅเซ‹เชกเซ€เช• เชธเซ‡เช•เช‚เชก เชฐเชพเชน เชœเซเช“ เช…เชจเซ‡ เชชเช›เซ€ เชจเชตเชพ เช•เชจเซ‡เช•เซเชถเชจเซเชธ เชธเซเชตเซ€เช•เชพเชฐเชตเชพเชจเซเช‚ เชฌเช‚เชง เช•เชฐเซ‹.
  2. เชฌเชงเซ€ เชตเชฟเชจเช‚เชคเซ€เช“ เชชเซ‚เชฐเซเชฃ เชฅเชพเชฏ เชคเซเชฏเชพเช‚ เชธเซเชงเซ€ เชฐเชพเชน เชœเซเช“ เช…เชจเซ‡ เชฌเชงเชพ เชœ เชœเซ€เชตเช‚เชค เชœเซ‹เชกเชพเชฃเซ‹เชจเซ‡ เชฌเช‚เชง เช•เชฐเซ‹ เชœเซ‡ เชตเชฟเชจเช‚เชคเซ€เช“ เชšเชฒเชพเชตเซ€ เชฐเชนเซเชฏเชพเช‚ เชจเชฅเซ€.
  3. เชคเชฎเชพเชฐเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เชธเชฎเชพเชชเซเชค เช•เชฐเซ‹.

เชœเซ‹ เช•เซ‡, เชฌเชงเซ€ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเซ‹ เช† เชฐเซ€เชคเซ‡ เช•เชพเชฎ เช•เชฐเซ€ เชถเช•เชคเซ€ เชจเชฅเซ€. เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชตเชพเชธเซเชคเชตเชฟเช•เชคเชพเช“เชฎเชพเช‚ เชธเชฎเชธเซเชฏเชพเชจเซ‹ เชเช• เช‰เช•เซ‡เชฒ เช›เซ‡:

  • เชชเซเชฐเซ€-เชธเซเชŸเซ‹เชช เชนเซ‚เช• เช‰เชฎเซ‡เชฐเชตเซเช‚ เชœเซ‡ เชฅเซ‹เชกเซ€ เชธเซ‡เช•เช‚เชก เชฐเชพเชน เชœเซ‹เชถเซ‡;
  • เชฏเซ‹เช—เซเชฏ เชชเชฐเชฟเชฎเชพเชฃเซ‹ เชฎเชพเชŸเซ‡ เช…เชฎเชพเชฐเชพ เชฌเซ‡เช•เชเชจเซเชกเชจเซ€ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชซเชพเช‡เชฒเชจเซ‹ เช…เชญเซเชฏเชพเชธ เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช.

เชเชจเชœเซ€เช†เชˆเชเชจเชเช•เซเชธ เชธเชพเชฅเซ‡เชจเซเช‚ เช‰เชฆเชพเชนเชฐเชฃ เชธเซเชชเชทเซเชŸ เช•เชฐเซ‡ เช›เซ‡ เช•เซ‡ เชœเซ‡ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเซ‡ เชถเชฐเซ‚เช†เชคเชฎเชพเช‚ เชธเชฎเชพเชชเซเชคเชฟ เชธเชฟเช—เซเชจเชฒเซ‹ เชชเชฐ เชฏเซ‹เช—เซเชฏ เชฐเซ€เชคเซ‡ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช•เชฐเชตเซ€ เชœเซ‹เชˆเช เชคเซ‡ เชชเชฃ เช†เชตเซเช‚ เช•เชฐเซ€ เชถเช•เชถเซ‡ เชจเชนเซ€เช‚, เชคเซ‡เชฅเซ€ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชœเชฎเชพเชตเชŸ เชฆเชฐเชฎเชฟเชฏเชพเชจ 500 เชญเซ‚เชฒเซ‹ เชฎเชพเชŸเซ‡ เชคเชชเชพเชธ เช•เชฐเชตเซ€ เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ เช›เซ‡. เช† เชคเชฎเชจเซ‡ เชธเชฎเชธเซเชฏเชพเชจเซ‡ เชตเชงเซ เชตเซเชฏเชพเชชเช• เชฐเซ€เชคเซ‡ เชœเซ‹เชตเชพเชจเซ€ เช…เชจเซ‡ เชเช• เชชเซ‹เชก เช…เชฅเชตเชพ เช•เชจเซเชŸเซ‡เชจเชฐ เชชเชฐ เชงเซเชฏเชพเชจ เช•เซ‡เชจเซเชฆเซเชฐเชฟเชค เชจ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชชเชฐเช‚เชคเซ เชธเชฎเช—เซเชฐ เช‡เชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐเชจเซ‡ เชธเช‚เชชเซ‚เชฐเซเชฃ เชฐเซ€เชคเซ‡ เชœเซ‹เชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡.

เชชเชฐเซ€เช•เซเชทเชฃ เชธเชพเชงเชจ เชคเชฐเซ€เช•เซ‡, เชคเชฎเซ‡ เช•เซ‹เชˆเชชเชฃ เชฎเซ‹เชจเชฟเชŸเชฐเชฟเช‚เช— เชธเชฟเชธเซเชŸเชฎ เชธเชพเชฅเซ‡ เชœเซ‹เชกเชพเชฃเชฎเชพเช‚ Yandex.Tank เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ (เช…เชฎเชพเชฐเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เชชเชฐเซ€เช•เซเชทเชฃ เชฎเชพเชŸเซ‡ เชชเซเชฐเซ‹เชฎเชฟเชฅเชฟเชฏเชธ เชฌเซ‡เช•เชเชจเซเชก เชธเชพเชฅเซ‡ เช—เซเชฐเชพเชซเชจเชพ เชชเชพเชธเซ‡เชฅเซ€ เชกเซ‡เชŸเชพ เชฒเซ‡เชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เชนเชคเซ‹). เชฌเซ‡เชจเซเชšเชฎเชพเชฐเซเช• เชœเชจเชฐเซ‡เชŸ เช•เชฐเซ€ เชถเช•เซ‡ เชคเซ‡เชตเชพ เชญเชพเชฐเซ‡ เชญเชพเชฐ เชนเซ‡เช เชณ เช†เช•เชฐเซเชทเช• เชถเชŸเชกเชพเช‰เชจ เชธเชพเชฅเซ‡เชจเซ€ เชธเชฎเชธเซเชฏเชพเช“ เชธเซเชชเชทเซเชŸเชชเชฃเซ‡ เชฆเซ‡เช–เชพเชฏ เช›เซ‡, เช…เชจเซ‡ เชจเชฟเชฐเซ€เช•เซเชทเชฃ เชชเชฐเซ€เช•เซเชทเชฃ เชฆเชฐเชฎเชฟเชฏเชพเชจ เช…เชฅเชตเชพ เชชเช›เซ€ เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟเชจเซเช‚ เชตเชงเซ เชตเชฟเช—เชคเชตเชพเชฐ เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เช•เชฐเชตเชพเชฎเชพเช‚ เชฎเชฆเชฆ เช•เชฐเซ‡ เช›เซ‡.

เชฒเซ‡เช– เชชเชฐเชจเชพ เชชเซเชฐเชคเชฟเชธเชพเชฆเชจเชพ เชœเชตเชพเชฌเชฎเชพเช‚: เช เช‰เชฒเซเชฒเซ‡เช–เชจเซ€เชฏ เช›เซ‡ เช•เซ‡ NGINX เช‡เชจเซเช—เซเชฐเซ‡เชธเชจเชพ เชธเช‚เชฌเช‚เชงเชฎเชพเช‚ เชธเชฎเชธเซเชฏเชพเช“ เช…เชจเซ‡ เช‰เช•เซ‡เชฒเซ‹ เช…เชนเซ€เช‚ เชตเชฐเซเชฃเชตเซ‡เชฒ เช›เซ‡. เช…เชจเซเชฏ เช•เชฟเชธเซเชธเชพเช“เชฎเชพเช‚, เชคเซเชฏเชพเช‚ เช…เชจเซเชฏ เช‰เช•เซ‡เชฒเซ‹ เช›เซ‡, เชœเซ‡ เช…เชฎเซ‡ เชถเซเชฐเซ‡เชฃเซ€เชจเซ€ เชจเซ€เชšเซ‡เชจเซ€ เชธเชพเชฎเช—เซเชฐเซ€เชฎเชพเช‚ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฒเชˆ เชถเช•เซ€เช เช›เซ€เช.

PS

K8s เชŸเซ€เชชเซเชธ เช…เชจเซ‡ เชฏเซเช•เซเชคเชฟเช“ เชถเซเชฐเซ‡เชฃเซ€เชฎเชพเช‚เชฅเซ€ เช…เชจเซเชฏ:

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

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