FastNetMon

Saturday, 9 January 2010

nf_conntrack: table full, dropping packet в dmesg

Чем чреваты такие записи? Потерей сетевых соединений, то есть те соединения, что не помещаются в таблицу для хранения статуса соединений будут просто-напросто сброшены, для клиента это, скорее всего, будет выглядеть как connection refused.

Имеем до:
# sysctl -a | grep conntrack_max
net.ipv4.netfilter.ip_conntrack_max = 65536
net.netfilter.nf_conntrack_max = 65536
net.nf_conntrack_max = 65536


Открываем конфиг ядра:
vi /etc/sysctl.conf


Вносим туда (все три выше указанных опции, как я понял, являются алиясами и изменяя один, изменяются все другие):

net.ipv4.netfilter.ip_conntrack_max=1548576


Применяем настройки:
sysctl -p


В итоге имеем увеличенное число отслеживаемых соединений:

sysctl -a | grep conntrack_max
net.ipv4.netfilter.ip_conntrack_max = 1548576
net.netfilter.nf_conntrack_max = 1548576
net.nf_conntrack_max = 1548576

6 comments :

  1. net.ipv4.netfilter.ip_conntrack_max
    Нет в федоре. Аккуратнее

    ReplyDelete
  2. Хм, не сталкивался. Тогда sysctl все же должен вывалить ошибку.

    ReplyDelete
  3. CentOS 6 не знает net.ipv4.netfilter.ip_conntrack_max
    Клоны тоже не знают.
    но при выполнении sysctl -a | grep conntrack_max
    видно правильное написание.

    ReplyDelete
  4. Спасибо автору, прям то что доктор прописал. Помогло, а то прям полный журнал таких сообщений был!!!

    ReplyDelete
  5. centOS
    net.netfilter.nf_conntrack_max

    ReplyDelete
  6. net.ipv4.netfilter.ip_conntrack_max актуально для ядер <2.9
    Для ядер старше актуально:
    net.netfilter.nf_conntrack_max =
    net.nf_conntrack_max =
    После перезагрузки значения не применяются, для решения необходимо добавить модуль nf_conntrack при загрузке системы, командой:
    echo "nf_conntrack" >> /etc/modules

    ReplyDelete

Note: only a member of this blog may post a comment.