Веб-програму розробляє asp.net core, браузер запитує сторінку, і сервер має пройти через зворотний проксі nginx до .NET для обробки, і під час стрес-тесту він повідомляє помилку 503:
Маршрут 503 тимчасово недоступний 503 є HTTP-кодом статусу черезТимчасове обслуговування або перевантаження сервера наразі не може обробляти запити。 Цей стан тимчасовий і буде відновлений з часом.
Загалом, помилка 503 здебільшого пов'язана з великою кількістю відвідувань сайту, що призводить до помилки через надмірний трафік або велику кількість паралелізму.
Згідно з аналізом принципу ствола, існує багато факторів, що спричиняють вузькі місця продуктивності, по-перше, посилання налаштування Linux виглядає так:
За допомогою професійних інструментів для тестування тиску результати тестування на тиск такі:
Налаштування Nginx
worker_processes Встановити автоматично, наступним чином:
Дозвольте nginx автоматично підлаштуватися під ваші потреби.
Місця подій такі:
Використовуйте режим epoll для збільшення кількості одночасних з'єднань, збільшення пропускної здатності системи nginx і встановлення максимальної кількості з'єднань, які можуть відкривати працівники одночасно. Вступ до документа:Вхід за гіперпосиланням видно.
Після налаштування проводиться випробування тиском, і похибки 503 більше немає, як показано на рисунку нижче:
Якщо ви використовуєте зворотний проксі nginx для переадресації на php-fpm, ви можете отримати таку помилку:
2022/01/16 16:08:01 [крит] 968#0: *12955 відкрито() "/alidata/www/itsvse_web/50x.html" не вдалося (24: Занадто багато відкритих файлів), клієнт: 100.116.153.2, сервер:www.itsvse.com, запит: "GET /forum.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", хост: "www.itsvse.com" 2022/01/16 16:08:01 [тривога] 968#0: *12956 сокет() вийшов з ладу (24: Занадто багато відкритих файлів) під час підключення до upstream, клієнт: 100.116.153.109, сервер:www.itsvse.com, запит: "GET /forum.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", хост: "www.itsvse.com" 2022/01/16 16:08:01 [крит] 968#0: *12956 open() "/alidata/www/itsvse_web/50x.html" не вдалося (24: Занадто багато відкритих файлів), клієнт: 100.116.153.109, сервер:www.itsvse.com, запит: "GET /forum.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", хост: "www.itsvse.com"
Встановіть параметри worker_rlimit_nofile наступним чином:
Документації:Вхід за гіперпосиланням видно.
(Кінець)
|