Това определя връзката, изпращането и четенето на PHP-CGIЧас, 300 секунди са достатъчни, така че моятСървър504 рядко се появяватПорталГрешка за тайм-аут. Най-важното еphp-FPM.confнаСлагам, които директно ще доведат до 502 Bad Gateway и 504 Gateway Time-out.
Нека разгледаме по-отблизо някои важни части от php-fpm.confпараметър:
php-fpm.conf има два ключови параметъра – единият е "max_children", а другият "request_terminate_timeout""
Имам две настройки със стойности "40" и "900", но тази стойност не е универсална, а трябва да бъде изчислена от мен.
Ето как се изчислява:
Ако е твоятаСлужбаИнструментизпълнениеДостатъчно добре, а ресурсите за широколентов интернет са достатъчни, PHPСценарийАко няма цикли или бъгове, можеш просто да зададеш "request_terminate_timeout" на 0. 0s означава, че PHP-CGI работи постоянно без времево ограничение. Ако не можете да направите това, т.е. вашият PHP-CGI може да има определен бъг, или пропускателната способност не е достатъчна, или други причини карат PHP-CGI да се фалши, тогава се препоръчва да зададете стойност на "request_terminate_timeout", която може да се зададе според производителността на вашия сървър. Общо взето, колкото по-добро е представянето, толкова по-високо можеш да го настроиш – 20 минути до 30 минути са достатъчни. Тъй като моите PHP скриптове за сървър отнемат много време, някои могат да са повече от 10 минути, затова го настроих на 900 секунди, за да не се прекъсне PHP-CGI и да не се появи грешката 502 Bad gateway.
И как се изчислява стойността на "max_children"? По принцип, колкото по-голямо, толкова по-добре, php-cgiПроцесАко има още, те ще бъдат обработени бързо и в опашката ще има малко заявки. max_children Общо взето, при нормални обстоятелства сървърът консумира около 20M памет на php-cgi, затова задавам "max_children" на 40, 20M*40=800M, което означава, че всички PHP-CGI консумират по-малко от 800M в пиковите часове, което е по-малко от ефективната ми памет от 1Gb. А ако моят "max_children" е настроен по-малко, например 5-10, тогава php-cgi ще е "много изтощителен", скоростта на обработка също е много бавна, а времето за чакане е по-дълго. Ако заявката не е била обработена дълго време, ще се появи грешката 504 Gateway Time-out, а php-cgi, който се обработва, ще срещне грешка 502 Лош шлюз, ако възникне проблеми.
|