Це визначає з'єднання, надсилання та зчитування 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 Загалом, за нормальних обставин сервер споживає близько 20 млн пам'яті на php-cgi, тому я встановлюю «max_children» на 40, 20M*40=800M, що означає, що весь PHP-CGI споживав менше 800M у піковий час, що менше, ніж моя ефективна пам'ять у 1 Gb. І якщо моя «max_children» встановлена меншою, наприклад 5-10, то php-cgi буде «дуже виснажливим», швидкість обробки також дуже повільна, а час очікування довший. Якщо запит довго не оброблявся, з'явиться помилка 504 Gateway Time-out, а php-cgi, що обробляється, зіткнеться з помилкою 502 Bad gateway, якщо виникнуть проблеми.
|