Welcome! Log In Create A New Profile

Advanced

Re: [РЕШЕНО] Nginx & comet: Как принять более 64K одновременных соединений ...

December 07, 2010 08:06AM
Итак. Чтобы Linux и NGINX обеспечивал более 64 K соединений необходимо:

1. Уровень ядра Linux ( /etc/syctl.conf):
1.1 Проверить параметр fs.file-max:
....
# Максимальное значение открытых файлов. Что бы его узнать, выполните
# команду cat /proc/sys/fs/file-max
fs.file-max = 999999
....

1.2 Необходимо увеличить параметр, контролирующий максимальное количество осиротевших сокетов: tcp_max_orphans
...
# Переменная задает максимальное число осиротевших (не связанных ни с
# одним процессом) сокетов. Если это число будет превышено, то такие
# соединения разрываются, а в системный журнал пишется предупреждение. Это
# ограничение существует исключительно ради предотвращения простейших
# разновидностей DoS-атак.
net.ipv4.tcp_max_orphans = 300000
...
1.3 Запрещаем кеширование статуса ssthresh (были ретрансмиты) для других соединений
net.ipv4.tcp_no_metrics_save = 1

1.4 rp_filter
#Включает/выключает reverse path filter («проверка обратного адреса» – хотя это слишком вольный перевод термина,
#но мне он кажется наиболее близким по смыслу. прим. перев.) для заданного интерфейса.
#Смысл этой переменной достаточно прост – все что поступает к нам проходит проверку на соответствие исходящего адреса с нашей таблицей маршрутизации
#и такая проверка считается успешной, если принятый пакет предполагает передачу ответа через тот же самый интерфейс.
#Переменная может иметь два значения – 0 (выключено) и 1 (включено). Значение по-умолчанию – 0 (выключено)
net.ipv4.conf.eth0.rp_filter = 0
net.ipv4.conf.all.rp_filter = 0
...

2. Уровень подсистемы безопасности Linux:
Файл: /etc/security/limits.conf
...
#<domain> <type> <item> <value>
* soft nofile 300000
* hard nofile 300000
...

3. Уровень nginx:
Файл: /etc/nginx/nginx.conf:
.....
worker_rlimit_nofile 300000;
events {
worker_connections 50000;
use epoll;
}
...
Выдержка их документации по NGINX:

syntax: worker_rlimit_nofile число
default: нет
context: main
Директива изменяет ограничение на число используемых файлов RL1IMIT_NOFILE для рабочего процесса. Используется для увеличения ограничения без перезапуска
основного процесса.

worker_connections 50000; - максимальное количество соединений для одного worker.

В тесте давал 80000 соединений по 40000 c двух серверов.
Затем отправил сообщение всем для проверки глобальных реконнектов.

При иследовании зоны насыщения оказалось, что при привышении 100K сервер перестает отвечать на запросы.
В логах на этот раз ничего нет. Тут надо копать дальше.

loadaverage: 0.05
Каждый worker отъел ~ -60-115 Mb.
Всего workers: 8.

Кто что скажет по этому вопросу?
Что еще можно проанализировать?
Жду конструктивной критики.
P.S. Характеристики сервера во вложении
--
Best Regards, Eugene Batogov
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Nginx & comet: Как принять более 64K одновременных соединений ...

JohnBat26 December 03, 2010 04:58AM

Re: Nginx & comet: Как принять более 64K одновременных соединений ...

Victor Antonovich December 03, 2010 05:02AM

Re: Nginx & comet: Как принять более 64K одновременных соединений ...

JohnBat26 December 03, 2010 05:14AM

Re: Nginx & comet: Как принять более 64K одновременных соединений ...

Victor Antonovich December 03, 2010 05:30AM

Re: Nginx & comet: Как принять более 64K одновременных соединений ...

JohnBat26 December 03, 2010 05:44AM

Re: Nginx & comet: Как принять более 64K одновременных соединений ...

Илья Шипицин December 03, 2010 07:28AM

Re: Nginx & comet: Как принять более 64K одновременных соединений ...

JohnBat26 December 03, 2010 07:38AM

Re: Nginx & comet: Как принять более 64K одновременных соединений ...

Anton Gorlov December 03, 2010 07:44AM

Re: Nginx & comet: Как принять более 64K одновременных соединений ...

JohnBat26 December 03, 2010 10:28AM

Re: Nginx & comet: Как принять более 64K одновременных соединений ...

Alex Vorona December 03, 2010 10:32AM

Re: Nginx & comet: Как принять более 64K одновременных соединений ...

Илья Шипицин December 05, 2010 02:36PM

Re: [РЕШЕНО] Nginx & comet: Как принять более 64K одновременных соединений ...

JohnBat26 December 07, 2010 08:06AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 323
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready