ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ngx_http_perl_module - исследован ие



On Wed, 18 Jan 2006, Andrew Velikoredchanin wrote:

nginx 0.3.22

Сделал несколько тестов через ab с разным к-вом воркеров и вот что обнаружил. Запускал скриптик в котором стоит sleep(1) - типа эмуляции долгоиграющего скрипта. Проверял с помощью "ab -n 10 -c 10 ..."

1 воркер:

Time per request:       10117.359 [ms] (mean)
Time per request:       1011.736 [ms] (mean, across all concurrent requests)

Тут вроде понятно. Запросы исполняются последовательно, каждый примерно 1 секунду, всего 10 секунд.


2 воркера:

Time per request:       6062.225 [ms] (mean)
Time per request:       606.222 [ms] (mean, across all concurrent requests)

Из нескольких запусков первый был со значениями 5 секунд и 500 мс, но обычно значения около 6 секунд и 600 мс получались.


4 воркера:

Time per request:       3051.070 [ms] (mean)
Time per request:       305.107 [ms] (mean, across all concurrent requests)

В принципе, нормально и предсказуемо.


16 воркеров (и выше):

Time per request:       2077.931 [ms] (mean)
Time per request:       207.793 [ms] (mean, across all concurrent requests)

Вот тут не совсем понятно. По идее, если-бы параллельные запросы раздавались сразу на все воркеры, то значения должны были-бы быть в районе 1 секунды и 100 мс. В данном случае не совсем понятна логика распределения запросов.


Игорь, можете прокомментировать эти данные?

Если не стоит "events { multi_accept on }" и используется epoll, то это
объясняется так: nginx принял одно соединение и добавил его в epoll, затем
опять вызвал epoll_wait(), он может вернуть два события: первое - новое
соединение и второе - готовность данных для первого соединения. Таким образом,
nginx получил два соединения перед sleep().


Игорь Сысоев
http://sysoev.ru



 




Copyright © Lexa Software, 1996-2009.