Спасибо!netstat/vmstat все нормально показывают. netstat -m правда
показываетстрашные вещи :), но машинка SMP, об этом уже был разговор
недавно...Видимо, все-таки в ab дело. Из мана ab:"BUGS: There are various
statically declared buffers of fixed length. Combinedwith inefficient parsing
of the command line arguments, the responseheaders from the server, and other
external inputs, these buffers mightoverflow."Потому как с другой машины тот же
тест проходит на ура.
Заметил, кстати, еще такую вещь - при запросе HTTP/1.0 и указанииConnection:
Keep-Alive nginx отвечает Keep-Alive в случае запросастатического контента и
закрывает соединение случае запросадинамического ( проксируемого или fastcgi )
контента. Это фича илибаг? Просто я не очень разбираюсь, насколько
распространены такиезапросы, но вот ab как раз так их и делает.
22.07.05, Igor Sysoev<is@xxxxxxxxxxxxx> написал(а):> On Fri, 22 Jul 2005, Serge
wrote:> > > Игорь, а что значат такие строки в еррор логе:> > 2005/07/22
17:23:44 [warn] 31569#0: *31205 kqueue change list is> > filled up while
connecting to upstream, client: 205.252.49.162,> > server: www.server.com, URL:
"/test.php", upstream:> > fastcgi://127.0.0.1:1027/test.php, host:
"www.server.com"> > Они появляются при попытке стресс-теста с помощью ab c
другого сервака> > (ab -c 500 -n 10000). При этом ab сообщает, что около 1%
запросов были> > Failed по причине разного размера и ошибок с коннектом.
Удивительно,> > что это возникает только при тесте с конкретного сервака. Если>
> запустить тот же тест с другого сервера, в той же сети, никаких ошибок> > не
происходит.> > Также при локальном тесте ошибок нет.> > версия nginx 0.1.40.
Как раз поставил сейчас на новый сервер под FreeBSD 5.4> > Это значит, что за
время обработки результатов одного вызова kevent()> nginx получил много событий
и заполнил весь массив с изменением событий.> Размер этого массива можно
изменить директивой> > events {> kqueue_changes 1024;> ...> }> >
По умолчанию размер равен 512. Особенно страшного в это нет, просто> в этом
случае делается два системных вызова> > kevent(добавить изменения)>
kevent(добавить изменения, получить новые события)> > вместо одного> >
kevent(добавить изменения, получить новые события)> > Что касается ошибок, то
нужно смотреть лог nginx'а и параметры FreeBSD.> Возможно, нужно увеличить
listen queue, число сокетов, файлов, mbuf'ов.> Что показывают> > netstat -m>
netstat -Lan> vmstat -z|egrep 'ITEM|socket|Mbuf'> > ?> > > Игорь Сысоев>
http://sysoev.ru> >
-- Best Regards, Sergeicq 36051319