Собственно вопрос мой заключается в том как соотносится
"connections 10000" с тем что в "/proc/sys/kernel/rtsig-max".
Я не совсем понимаю как работает rtsig, поэтому хочу спросить
правильно ли я понимаю, что "/proc/sys/kernel/rtsig-max" надо
выставлять в значение равное или больше "connections" в nginx?
И означает ли это "connections 10000" максимальное количество одновременно
обслуживаемых соединений или не совсем а с какими то поправками.
IS> Сигнал ставится в очередь на каждое событие, то есть, на одно соединение
IS> в очереди может быть несколько сигналов, если nginx не успевает их
IS> обрабатывать. Судя по логам, сигналы ставятся на каждый пришедший пакет.
IS> Поэтому очередь хорошо бы сделать по-больше, 30 или 60 тысяч.
IS> "connections 10000" на данный момент означает, что один рабочий процесс
IS> не может обрабатывать соедиения, у которых номер сокета больше 10000.
IS> Сюда же входят открытые дисковые файлы.
IS> Я планирую сделать так, чтобы connections означало бы только соедиения,
IS> без дисковых файлов.
Игорь, сорри, последний вопрос :-)
В свете этой информации как можно попытаться провести паралель между вот
этим:
==============================
Active connections: 397
server accepts handled requests
4867458 4867458 56429277
Reading: 0 Writing: 8 Waiting: 389
==============================
И необходимыми настройками "connections" и "/proc/sys/kernel/rtsig-max".
Насколько я теперь понимаю "Active connections: 397" совсем не значит что
используется 397 rtsigs и значением "connections" в конфиге.
какой запас надо делать? при расчете на рост минимум на 50 процентов.
Или тут важно какой контент отдается? хорошо - отдается только jpeg -
много(тумбы).
"Active connections: 397" и "Writing: 8" озночает, что открыто 397 сокетов
и примерно 8 дисковых файлов. То есть, занято примерно 410 connections.
Сколько в очереди есть сигналов, можно посмотреть в /proc/sys/kernel/rtsig-nr.
Я бы поставил много - они не занимают много места в ядре.
Игорь Сысоев
http://sysoev.ru