Назад | Перейти на главную страницу

Очень низкие запросы в секунду при новой установке NGINX

После новой установки nginx я получил эти результаты, запустив тестовый тест apache, что, на мой взгляд, очень странно. Выбранная страница является статической тестовой страницей index.html по умолчанию, установленной nginx. При локальном запуске ab очень много запросов в секунду, но при удалении - значительно меньше. Я временно отключил свой брандмауэр во время этих тестов.

AB -n 100 работает локально:

Document Path: /
Document Length: 3698 bytes

Concurrency Level: 1
Time taken for tests: 0.21347 seconds
Complete requests: 100
Failed requests: 0
Write errors: 0
Total transferred: 391000 bytes
HTML transferred: 369800 bytes
Requests per second: 4684.50 [#/sec] (mean)
Time per request: 0.213 [ms] (mean)
Time per request: 0.213 [ms] (mean, across all concurrent requests)
Transfer rate: 17847.94 [Kbytes/sec] received

AB -n 100 работает удаленно (пробовал с двух разных машин, одной с Windows 7 и другой с Mac OS 10.7):

 
Concurrency Level: 1
Time taken for tests: 12.502 seconds
Complete requests: 100
Failed requests: 0
Write errors: 0
Total transferred: 391000 bytes
HTML transferred: 369800 bytes
Requests per second: 8.00 [#/sec] (mean)
Time per request: 125.020 [ms] (mean)
Time per request: 125.020 [ms] (mean, a
Transfer rate: 30.54 [Kbytes/sec] re

Connection Times (ms)
min mean[+/-sd] median max
Connect: 38 43 1.6 42 56
Processing: 78 82 2.1 82 97
Waiting: 38 43 1.3 43 49
Total: 121 125 2.6 125 139

Все наши сайты работают на apache, который также имеет ту же проблему. Я установил nginx, чтобы проверить, не проблема ли это в конфигурации apache, но это явно не так. Я не могу определить, почему существует такое огромное расхождение между результатами, и надеюсь, что кто-то сможет дать некоторое представление.

Это нормально? На моем сервере что-то неправильно настроено?

Ваш тест замедлился настолько шокирующе, потому что вы находитесь удаленно, и у вас есть узкое место теста из-за задержки запроса.

Пропускная способность здесь является одной из проблем (насколько быстро ваш клиент соединяется с сервером), но основная проблема, которую я вижу, заключается в том, что для вашего параллелизма установлено значение 1 - это означает, что перед отправкой следующего запроса, ab ждет завершения каждого запроса.

Как говорится, это занимает Time per request: 125.020 [ms] (mean) для каждого запроса. Поскольку HTTP keep-alive по умолчанию отключен в ab также, я собираюсь предположить, что время поездки туда и обратно, которое вы получаете, когда вы ping сервер около 60 мс?

Пытаться ab -n 100 -k -c 10 - он не избавит от всей задержки задержки, но должен сократить время выполнения запроса вдвое, а среднее значение для всех одновременных запросов - в 10 раз - вероятно, выполнение вашего теста будет примерно в 20 раз быстрее.