ПРОЕКТЫ 


  АРХИВ 


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: релоад конфига



On 14.08.2013 14:02, Nick Knutov wrote:

# nginx -V
--with-cc-opt='-DFD_SETSIZE=2048'

массив, заданный FD_SETSIZE используется только в том случае,
когда для обработки соединений используется select()

использовать select() с современными версиями ядер смысла нет.
ведь на Linux nginx всеравно будет использовать epoll
подробности: http://nginx.org/ru/docs/events.html

я даже специально выставляю при сборке nginx

    --without-select_module
    --without-poll_module

чтобы этот лишний код не компилировался внутрь бинарника.
(select и poll нужны на старых ядрах, версий 2.2 и 2.4)

более того, на Linux невозможно изменить FD_SETSIZE,
система всеравно будет использовать значение по-умолчанию 1024

http://www.moythreads.com/wordpress/2009/12/22/select-system-call-limitation/

/usr/include/sys/select.h - здесь задается битовый массив
/usr/include/bits/typesizes.h - здесь задается __FD_SETSIZE

в результате: "An fd_set is a fixed size buffer. Executing FD_CLR or FD_SET with a value of fd that is negative or is equal to or larger than FD_SETSIZE will result in undefined behavior."

Проблема на первом сервере стабильно воспроизводится.

причину проблем может помочь понять отладочный лог:
http://nginx.org/ru/docs/debugging_log.html

параметр --with-debug много оверхеда не добавляет,
но очень удобен при поиске причин различных проблем.

--
Best regards,
 Gena

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.