ПРОЕКТЫ 


  АРХИВ 


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: kqueue change list is filled up



Спасибо!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



 




Copyright © Lexa Software, 1996-2009.