ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 

  СТАТЬИ 


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


  ПРОГРАММЫ 



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














     АРХИВ :: Apache-Talk
Apache-Talk mailing list archive (apache-talk@lists.lexa.ru)

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

Re[2]: [apache-talk] nginx-0.1.0



On Mon, 4 Oct 2004, Konstantin N. Bezruchenko wrote:

> IS> Предлагаю померить conccurency, скажем, 1000 или 5000, да ещё с keep-alive.
> IS> У mathopd при большем числе keep-alive соединений появляются проблемы - он
> IS> начинает кушать процессор. Я бенчмарков никаких не делал, так как сервер
> IS> писал не для бенчмарков, а для реального использования. А реальное
> IS> использование показало следующее - на images.rambler.ru (P3-650) nginx
> IS> обрабатывает 1200r/s, держит 20,000 keep-alive соединений и кушает ~50%
> IS> процессора. До этого там стоял mathopd/1.4, которого научили kqueue и sendfile,
> IS> но он на 10,000 keep-alive соединениях ел практически весь процессор и
> IS> обрабатывал 1000r/s.
>
> Только что проверил 50000 запросов, 1000 conccurency с keep-alive
> 3 теста. Цифры средние из 3 тестов.
>
> Результаты:
> 1. nginx
> Time taken for tests:   75,836 seconds
> Requests per second:    659,34 [#/sec] (mean)
> Time per request:       1516,72 [ms] (mean)
> Time per request:       1.52 [ms] (mean, across all concurrent requests)
> Transfer rate:          4297,03 [Kbytes/sec] received
>
> 2. mathopd/1.5p3
> Time taken for tests:   65,690 seconds
> Requests per second:    761,27 [#/sec] (mean)
> Time per request:       1313,79 [ms] (mean)
> Time per request:       1.31 [ms] (mean, across all concurrent requests)
> Transfer rate:          4961,59 [Kbytes/sec] received
>
> Все-же быстрее выходит немного. Но скорее всего это я делаю что-то не
> так ;-)
>
> На счет процессора Вы правы, уже при 1000 conccurency mathopd начинает
> кушать ~65% дальше - хуже.

Да нет, скорее всего, mathopd действительно быстрее в данном тесте.
Для ускорения nginx можно попробовать следующее:

1) "worker_processes 1" - в данном тесте рабочие процессы только мешают
   друг другу. Достаточно одного.

2) можно попробовать убрать "sendfile on", возможно при размере файла в 6К
   он менее эффективен, чем writev(). Кстати, mathopd-1.5, насколько я
   понимю, в портах собирается без sendfile.

3) сделать "connection_pool_size 4k" и "request_pool_size 8k". Памяти
   будет кушать больше, но в malloc() ходить реже.

4) Убрать ненужные модули и фильтры:
            --without-http_access_module
            --without-http_rewrite_module
            --without-http_gzip_module
            --without-http_userid_module
            --without-http_charset_module

5) запускать ab и сервер лучше на разных машинах.

Ну и наконец, можно потестировать с помощью deadconn:
http://www.xmailserver.org/linux-patches/deadconn_last.c
Сначала нужно запустить deadconn, скажем, с тысячей idle соединений,
а потом ab - с concurrency, скажем, 100.


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



 




Copyright © Lexa Software, 1996-2009.