On Mon, 4 Oct 2004, Konstantin N. Bezruchenko wrote:
>
> Hello Igor!
> Monday, October 4, 2004, 11:17:28 PM, you wrote:
>
> >> Вообщем впечатление от nginx очень положительное. Только возможно
> >> стоило бы немного наплевать на CPU и немного увеличить скорость отдачи
> >> документов. Надо же хоть как-то использовать современные вычислительные
> >> мощности ;-)
> >>
> >> Сейчас примусь тестировать по схеме которую посоветовал Игорь.
>
> IS> На самом деле, сравнивать nginx с mathopd или boa некорректно,
> IS> так как nginx может работать с kqueue, epoll и прочая.
> IS> В синтетических тестах mathopd или boa могут работать хорошо, а
> IS> поставишь их на реальных клиентов, тут-то poll и select начинают
> IS> есть процессор. Тестировать нужно с большим числом неактивных соединений.
>
> Да я это прекрасно понимаю. У меня как раз есть неплохой полигон для
> тестов как "синтетических" так и реальных. Сразу после "синтетических"
> я обязательно смотрю на поведение того или иного сервера в реальной
> ситуации.
>
> И само собой что при использовании poll и select процессор кушается.
> Но я уже отметился выше, что в моем конкретном случае CPU не является
> критичным. Пусть он будет кушать много - но зато отдавать быстрее чем
> другие. Пока я остановился на mathopd.
Скорость отдачи имеет смысл только, если ответ целиком помещается
в ядерный буфер (в случае FreeBSD это net.inet.tcp.sendspace).
При бОльших ответах скорость зависит от клиента, а в реальной жизни таких
быстрых клиентов, как в тестах, немного.
Кроме того, если отдавать контент, который не помещается целиком в физическую
память сервера, например, фильмы или диски, то процесс(ы) сервера будут
блокироваться на дисковых операциях.
> Но выход Вашего продукта меня заинтересовал и я вновь оживился в
> поисках решений.
>
> IS> А сравнивать нужно с серверами, которые понимают kqueue и тому подобное:
>
> IS> thttpd: http://www.acme.com/software/thttpd/
> IS> cherokee: http://0x50.org
> IS> lighttpd: http://jan.kneschke.de/projects/lighttpd/
> IS> gatling: http://www.fefe.de/gatling/
> IS> 0W: http://0w.ru/httpd/
>
> IS> Причём при тестировании хорошо бы сделать, скажем, 10,000-20,000
> IS> неактивных соединений, kqueuе и её аналоги с таким числом соединений
> IS> справляются легко. Запросов можно делать по паре сотен одновременно.
> IS> Файло хорошо бы взять по-больше, что бы тест шёл подольше - несколько
> IS> минут.
>
> Да, спасибо за советы, сейчас я этим и займусь.
> Попробую в нескольких вариантах с kqueue и без нее, c sendfile и без.
> Попробую нарисовать для себя более подробную картину.
И обязательно тестируемый и тестирующий должны быть на разных машинах.
Игорь Сысоев
http://sysoev.ru