пятница, 1 февраля 2019 г.

Настройка net.netfilter.nf_conntrack_max=1048576


An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full

При длительной работе без перезагрузки сервера, на котором размещен кластер 1С:Предприятия, может наблюдаться проблема, сопровождающаяся следующими симптомами:
 - Пользователи не могут подключиться к информационным базам, опубликованным в кластере серверов 1С:Предприятия;
 - К кластеру серверов 1С:Предприятия невозможно подключиться через консоль администрирования;
 - К серверу, на котором размещен кластер 1С:Предприятия невозможно подключиться терминально;
Помогает только перезапуск ОС, но не помогает перезапуск службы (Точнее перезапуск может помочь, но не сразу, а в течение 4 и более минут).

Вначале нужно firewall или iptables под ubuntu включить и настроить иначе по ssh не пустит после перезагрузки.
$ sudo ufw enable
$ sudo ufw default allow incoming
$ sudo ufw default allow outgoing
$ sudo ufw default allow forward
$ sudo ufw reload
$ sudo reboot

$ sudo sysctl -a | grep conntrack_max
sysctl: reading key "net.ipv6.conf.all.stable_secret"
sysctl: reading key "net.ipv6.conf.default.stable_secret"
sysctl: reading key "net.ipv6.conf.enp0s3.stable_secret"
sysctl: reading key "net.ipv6.conf.lo.stable_secret"
net.netfilter.nf_conntrack_max = 262144
net.nf_conntrack_max = 262144

Только затем
$ sudo nano /etc/rc.local
Добавить перед exit 0 :
sysctl -w net.netfilter.nf_conntrack_max=1048576
Сохранить.

$ sudo reboot

$ sudo sysctl -a | grep conntrack_max
[sudo] пароль для user:
sysctl: reading key "net.ipv6.conf.all.stable_secret"
sysctl: reading key "net.ipv6.conf.default.stable_secret"
sysctl: reading key "net.ipv6.conf.enp0s3.stable_secret"
sysctl: reading key "net.ipv6.conf.lo.stable_secret"
net.netfilter.nf_conntrack_max = 1048576
net.nf_conntrack_max = 1048576


Посмотреть количество соединений:
$ /sbin/sysctl net.netfilter.nf_conntrack_count
net.netfilter.nf_conntrack_count = 23

=======================================================
Технологические вопросы крупных внедрений → kb id=87 An operation on a socket could not be performed
Другой способ правильный с точки зрения идеологии того, как устроен процесс загрузки в Linux :


$ sudo nano /etc/modules-load.d/conntrack.conf
Добавить:
nf_conntrack
nf_conntrack_ipv4
Сохранить.

$ sudo nano /etc/sysctl.d/10-conntrack.conf
Добавить:
net.nf_conntrack_max = 1048576
Сохранить.

$ sudo reboot

$ sudo sysctl -a | grep conntrack_max
[sudo] пароль для user:
sysctl: reading key "net.ipv6.conf.all.stable_secret"
sysctl: reading key "net.ipv6.conf.default.stable_secret"
sysctl: reading key "net.ipv6.conf.enp0s3.stable_secret"
sysctl: reading key "net.ipv6.conf.lo.stable_secret"
net.netfilter.nf_conntrack_max = 1048576
net.nf_conntrack_max = 1048576

Комментариев нет:

Отправить комментарий