Господа, вопрос возможно немного не по теме,
но так как nginx умеет использовать rtsig,
то как бы и не совсем оффтопик :-)
Имеется linux, ядро 2.4 (точнее стандартное ядро RHEL3).
В конфиге имеем:
===============
events {
connections 10000;
use rtsig;
}
===============
В линуксе есть: /proc/sys/kernel/rtsig-max
По дефолту: 1024
Я ставлю: 4096
Собственно вопрос мой заключается в том как соотносится
"connections 10000" с тем что в "/proc/sys/kernel/rtsig-max".
Я не совсем понимаю как работает rtsig, поэтому хочу спросить
правильно ли я понимаю, что "/proc/sys/kernel/rtsig-max" надо
выставлять в значение равное или больше "connections" в nginx?
И означает ли это "connections 10000" максимальное количество одновременно
обслуживаемых соединений или не совсем а с какими то поправками.
Сигнал ставится в очередь на каждое событие, то есть, на одно соединение
в очереди может быть несколько сигналов, если nginx не успевает их
обрабатывать. Судя по логам, сигналы ставятся на каждый пришедший пакет.
Поэтому очередь хорошо бы сделать по-больше, 30 или 60 тысяч.
"connections 10000" на данный момент означает, что один рабочий процесс
не может обрабатывать соедиения, у которых номер сокета больше 10000.
Сюда же входят открытые дисковые файлы.
Я планирую сделать так, чтобы connections означало бы только соедиения,
без дисковых файлов.
Заранее прошу прощения за свои возможно простые вопросы, но надоело
блуждать в потемках.
ps
если использются rtsig, стоит ли собирать nginx c такими опциями:
....
--with-rtsig_module --with-threads --without-select_module --without-poll_module ....
я не сильно погорячился написав: without-select & without-poll ?
из за этого могут быть проблеммы в работе nginx?
--with-threads вообще не рекомендуется, а с rtsigs - тем более, на 2.4
просто работать не будет (из-за проблем в ядре, с 2.6 ситуация лучше).
--without-select_module и --without-poll_module никак не скажется.
Игорь Сысоев
http://sysoev.ru