У меня вопрос по настройке nginx.
У меня есть приложение, которое я хочу запускать 200 раз в секунду.
Я создал файл bash и использовал wget с переключателем bqO для выполнения.
Но есть проблема.
Когда количество запросов больше 100. nginx не отвечает на другой запрос и зависает в загрузке, пока не будет выполнен один запрос.
Однако я установил pm.max_children и установил worker_connections равным 200.
Есть ли у вас какие-либо предложения по решению этой проблемы или есть какой-либо тюнер, такой как "MySQL Tuner", для настройки nginx.
мои конфиги: php-fpm55.conf:
pm = ondemand pm.max_children = 1024 pm.start_servers = 20 pm.min_spare_servers = 20 pm.max_spare_servers = 35 pm.max_requests = 256 pm.process_idle_timeout = 20
net.core.somaxconn = 4096
sysctl.conf:
nginx.conf:
События {
}
результат: ab -n 100 -c 10 myindex.php
Server Software: nginx
Server Port: 80
Document Length: 3 bytes
Concurrency Level: 10
Time taken for tests: 21.128 seconds
Complete requests: 100
Failed requests: 32
(Connect: 0, Receive: 0, Length: 32, Exceptions: 0)
Total transferred: 17500 bytes
HTML transferred: 515 bytes
Requests per second: 4.73 [#/sec] (mean)
Time per request: 2112.791 [ms] (mean)
Time per request: 211.279 [ms] (mean, across all concurrent requests)
Transfer rate: 0.81 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.1 0 1
Processing: 19 1334 2747.0 144 15734
Waiting: 19 1334 2747.0 144 15733
Total: 19 1334 2746.9 144 15734
Percentage of the requests served within a certain time (ms)
50% 144
66% 549
75% 1281
80% 1700
90% 4095
95% 8790
98% 12579
99% 15734
100% 15734 (longest request)
Вы, кажется, одержимы настройкой nginx, даже не зная, какая часть вашей архитектуры самая медленная. Маловероятно, что nginx нужно будет настраивать в первую очередь.
Поместите свои цели fastcgi в один блок восходящего потока и добавьте $upstream_addr
и $upstream_response_time
в формат вашего журнала. Если еще нет, добавьте $request_time
в ваш формат журнала, затем сравните оба раза. Если они расположены близко друг к другу, виновато ваше приложение. Если нет, то это либо nginx, либо ваша сеть.
Только после того, как вы получите эту информацию, можно будет приступить к настройке nginx.
Может быть тебе интересно keepalive_requests ? Значение по умолчанию - 100, вы можете изменить его на более высокое значение.