Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 6864|Ответ: 4

Практическая оптимизация параллелизма HTTP-запроса Nginx

[Скопировать ссылку]
Опубликовано 16.01.2022 13:46:40 | | | |
Веб-программа разрабатывается asp.net Core, браузер запрашивает страницу, и серверу необходимо пройти через обратный прокси nginx в .NET для обработки, и во время стресс-теста он сообщает ошибку 503:

Маршрут 503 временно недоступен

503 — это статус HTTP-кода, обусловленныйВременное обслуживание сервера или перегрузка — сервер в настоящее время не может обрабатывать запросы。 Это заболевание временное и будет восстановлено со временем.

В целом, ошибка 503 в основном связана с большим количеством посещений сайта, что приводит к ошибке, вызванной чрезмерным трафиком или большим количеством параллельных маршрутов.

Согласно анализу принципа барабана, существует множество факторов, вызывающих узкие места в производительности, прежде всего, ориентир настройки Linux таков:

Linux (CentOS) ограничивает настройку производительности сервера
https://www.itsvse.com/thread-10134-1-1.html

С помощью профессиональных инструментов для тестирования давления результаты теста на давление следующие:

.NET/C# Load Test NBomber Простой учебник
https://www.itsvse.com/thread-9993-1-1.html



Настройка Nginx

worker_processes Установлен на автоматический, следующим образом:

Позвольте nginx автоматически адаптироваться под ваши нужды.

Места проведения событий следующие:

Используйте режим epoll для увеличения числа одновременных соединений, увеличения пропускной способности системы nginx и установки максимального количества соединений, которые работники могут открыть одновременно. Введение в документ:Вход по гиперссылке виден.

После настройки проводится испытание давлением, и ошибка 503 больше не наблюдается, как показано на рисунке ниже:


Если вы используете обратный прокси nginx для переадресации на php-fpm, вы можете получить следующую ошибку:

2022/01/16 16:08:01 [крит] 968#0: *12955 open() "/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" fail (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 следующим образом:



Документация:Вход по гиперссылке виден.

(Конец)





Предыдущий:Разница и связь между Ubuntu, CentOS и RedHat
Следующий:Скачать инструмент управления базой данных OceanBase
Опубликовано 16.01.2022 21:02:14 |
Приходите и учитесь снова
Опубликовано 24.01.2022 11:18:47 |
Я научился, спасибо
 Хозяин| Опубликовано 30.03.2023 10:01:36 |
nginx:413 Запрос слишком большой
https://www.itsvse.com/thread-10545-1-1.html
 Хозяин| Опубликовано 30.03.2023 10:01:45 |
Nginx добавляет включённый протокол HTTP/2
https://www.itsvse.com/thread-10307-1-1.html
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com