Почему при увеличении количества одновременных запросов увеличивается время ответа?
Тестировал кучей всевозможных способов, и наблюдаю одинаковую ситуацию
При увеличении количества одновременных запросов в 10 раз, соответственно увеличивается и время ответа
Среднее количество запросов в секунду при этом остается примерно одинаковым, и никакой процесс не упирается в CPU/Memory
Мне непонятно, в какое другое ограничение я уперся в таком тесте:
— в ограничение веб-сервера(для Ngnix это должны быть детские игры)?
— в ограничение тестирующего кода(мне кажется ab также должен хорошо справлятся)?
— в ограничение ОС (количество соединений, etc...)?
Например тестировал не настроенный Nginx(под Windows 7) с помощью apache benchmark на 10/100/1000 одновременных запросов, на 10000 запросов в 1 КБ
Вот сводные данные
«Time per request» растет каждый раз на порядок
«Requests per second» первые два раза одинаков, на третий падает в два раза
Concurrency Level: 10 100 100 Requests per second: 885.61 878.22 390.39 Time per request: 11.292 113.867 2561.546
Такая же ситуация наблюдается, если:
— тестировать nginx, либо простейший Node.js сервер с cluster-ом
— тестировать с помощью ab, либо Node.js-скриптом(модуль http, либо request)
— тестировать на windows, либо на debian
— проделал это в куче разных вариаций(веб-сервер и тестирующая утилита на одном компьютере)
везде время запроса растет пропорционально количеству потоков
Вот более подробные логи ab:
Concurrency Level: 10 Time taken for tests: 11.292 seconds Complete requests: 10000 Failed requests: 0 Total transferred: 12570000 bytes HTML transferred: 10240000 bytes Requests per second: 885.61 [#/sec] (mean) Time per request: 11.292 [ms] (mean) Time per request: 1.129 [ms] (mean, across all concurrent requests) Transfer rate: 1087.12 [Kbytes/sec] received Connection Times (ms) min mean[±sd] median max Connect: 0 1 0.6 1 4 Processing: 5 10 3.1 10 184 Waiting: 4 9 3.2 9 181 Total: 6 11 3.1 11 184
Concurrency Level: 100 Time taken for tests: 11.387 seconds Complete requests: 10000 Failed requests: 0 Total transferred: 12570000 bytes HTML transferred: 10240000 bytes Requests per second: 878.22 [#/sec] (mean) Time per request: 113.867 [ms] (mean) Time per request: 1.139 [ms] (mean, across all concurrent requests) Transfer rate: 1078.05 [Kbytes/sec] received Connection Times (ms) min mean[±sd] median max Connect: 0 1 0.9 1 15 Processing: 14 112 15.2 111 363 Waiting: 12 94 25.4 100 363 Total: 14 113 15.2 112 364
Concurrency Level: 1000 Time taken for tests: 25.615 seconds Complete requests: 10000 Failed requests: 0 Total transferred: 12570000 bytes HTML transferred: 10240000 bytes Requests per second: 390.39 [#/sec] (mean) Time per request: 2561.546 [ms] (mean) Time per request: 2.562 [ms] (mean, across all concurrent requests) Transfer rate: 479.22 [Kbytes/sec] received Connection Times (ms) min mean[±sd] median max Connect: 0 2 23.1 1 514 Processing: 520 2471 749.2 2747 3931 Waiting: 478 2408 735.6 2668 3659 Total: 521 2473 749.6 2748 3932
При увеличении количества одновременных запросов в 10 раз, соответственно увеличивается и время ответа
Среднее количество запросов в секунду при этом остается примерно одинаковым, и никакой процесс не упирается в CPU/Memory
Мне непонятно, в какое другое ограничение я уперся в таком тесте:
— в ограничение веб-сервера(для Ngnix это должны быть детские игры)?
— в ограничение тестирующего кода(мне кажется ab также должен хорошо справлятся)?
— в ограничение ОС (количество соединений, etc...)?
Например тестировал не настроенный Nginx(под Windows 7) с помощью apache benchmark на 10/100/1000 одновременных запросов, на 10000 запросов в 1 КБ
Вот сводные данные
«Time per request» растет каждый раз на порядок
«Requests per second» первые два раза одинаков, на третий падает в два раза
Concurrency Level: 10 100 100 Requests per second: 885.61 878.22 390.39 Time per request: 11.292 113.867 2561.546
Такая же ситуация наблюдается, если:
— тестировать nginx, либо простейший Node.js сервер с cluster-ом
— тестировать с помощью ab, либо Node.js-скриптом(модуль http, либо request)
— тестировать на windows, либо на debian
— проделал это в куче разных вариаций(веб-сервер и тестирующая утилита на одном компьютере)
везде время запроса растет пропорционально количеству потоков
Вот более подробные логи ab:
Concurrency Level: 10 Time taken for tests: 11.292 seconds Complete requests: 10000 Failed requests: 0 Total transferred: 12570000 bytes HTML transferred: 10240000 bytes Requests per second: 885.61 [#/sec] (mean) Time per request: 11.292 [ms] (mean) Time per request: 1.129 [ms] (mean, across all concurrent requests) Transfer rate: 1087.12 [Kbytes/sec] received Connection Times (ms) min mean[±sd] median max Connect: 0 1 0.6 1 4 Processing: 5 10 3.1 10 184 Waiting: 4 9 3.2 9 181 Total: 6 11 3.1 11 184
Concurrency Level: 100 Time taken for tests: 11.387 seconds Complete requests: 10000 Failed requests: 0 Total transferred: 12570000 bytes HTML transferred: 10240000 bytes Requests per second: 878.22 [#/sec] (mean) Time per request: 113.867 [ms] (mean) Time per request: 1.139 [ms] (mean, across all concurrent requests) Transfer rate: 1078.05 [Kbytes/sec] received Connection Times (ms) min mean[±sd] median max Connect: 0 1 0.9 1 15 Processing: 14 112 15.2 111 363 Waiting: 12 94 25.4 100 363 Total: 14 113 15.2 112 364
Concurrency Level: 1000 Time taken for tests: 25.615 seconds Complete requests: 10000 Failed requests: 0 Total transferred: 12570000 bytes HTML transferred: 10240000 bytes Requests per second: 390.39 [#/sec] (mean) Time per request: 2561.546 [ms] (mean) Time per request: 2.562 [ms] (mean, across all concurrent requests) Transfer rate: 479.22 [Kbytes/sec] received Connection Times (ms) min mean[±sd] median max Connect: 0 2 23.1 1 514 Processing: 520 2471 749.2 2747 3931 Waiting: 478 2408 735.6 2668 3659 Total: 521 2473 749.6 2748 3932
Похожие публикации
Несуществующие поддомены домена
Не открывается страница без расширения файла. Почему то...
Проект не доступен. Ошибка хостинга или провайдера интернета.
Вопрос по доступам.
Plesk 9.5.2
Нет комментариев