Дропаются пакеты: различия между версиями
Bond (обсуждение | вклад) (Новая: Если сеть начала тормозить и в syslog мы видим следующее tail /var/log/syslog Jun 18 01:09:44 mednet-server kernel: [1415532.823592] printk:...) |
Bond (обсуждение | вклад) |
||
(не показаны 2 промежуточные версии этого же участника) | |||
Строка 11: | Строка 11: | ||
Jun 18 01:09:59 mednet-server kernel: [1415547.660866] nf_conntrack: table full, dropping packet. | Jun 18 01:09:59 mednet-server kernel: [1415547.660866] nf_conntrack: table full, dropping packet. | ||
− | Это означает что переполнена таблица значений iptables, вероятнее всего для решения проблемы достаточно просто выделить больше памяти для этой таблицы. | + | Это означает, что переполнена таблица значений iptables, вероятнее всего для решения проблемы достаточно просто выделить больше памяти для этой таблицы. |
В Ubuntu 8.04 по умолчанию это значение равно 32 мегабайтам (32768) | В Ubuntu 8.04 по умолчанию это значение равно 32 мегабайтам (32768) | ||
Изменить значение можно выполнив команду | Изменить значение можно выполнив команду | ||
echo "65536" > /proc/sys/net/netfilter/nf_conntrack_max | echo "65536" > /proc/sys/net/netfilter/nf_conntrack_max | ||
Этим самым мы увеличили таблицу до 64мб | Этим самым мы увеличили таблицу до 64мб | ||
+ | |||
+ | ==Насколько уже заполнена таблица== | ||
+ | Проверить, насколько уже заполнена таблица, используемая для отслеживания соединений, можно следующим образом: | ||
+ | /sbin/sysctl net.netfilter.nf_conntrack_count | ||
+ | |||
+ | ==Увеличение объема hash-таблицы== | ||
+ | Увеличение объема hash-таблицы. Соответственно необходимо увеличить и хэш-таблицу, где записываются списки conntrack-записей. | ||
+ | |||
+ | echo 65536 > /sys/module/nf_conntrack/parameters/hashsize | ||
+ | |||
+ | При этом используется следующее правило: | ||
+ | hashsize = nf_conntrack_max / 8 | ||
+ | |||
+ | Разумеется, все соответствующие изменения необходимо сохранить в | ||
+ | /etc/sysctl.conf и /etc/rc.local | ||
+ | |||
+ | ==Уменьшение значений time-out== | ||
+ | Текущие значения можно посмотреть, например, так: | ||
+ | sysctl -a | grep conntrack | grep timeout | ||
+ | Это значения тайм-аутов в секундах <br/> | ||
+ | |||
+ | Всё лежит тут:/proc/sys/net/netfilter/ |
Текущая версия на 13:55, 4 октября 2011
Если сеть начала тормозить и в syslog мы видим следующее
tail /var/log/syslog
Jun 18 01:09:44 mednet-server kernel: [1415532.823592] printk: 263 messages suppressed. Jun 18 01:09:44 mednet-server kernel: [1415532.823604] nf_conntrack: table full, dropping packet. Jun 18 01:09:50 mednet-server kernel: [1415538.467105] printk: 167 messages suppressed. Jun 18 01:09:50 mednet-server kernel: [1415538.467118] nf_conntrack: table full, dropping packet. Jun 18 01:09:54 mednet-server kernel: [1415543.033402] printk: 173 messages suppressed. Jun 18 01:09:54 mednet-server kernel: [1415543.033417] nf_conntrack: table full, dropping packet. Jun 18 01:09:59 mednet-server kernel: [1415547.660853] printk: 142 messages suppressed. Jun 18 01:09:59 mednet-server kernel: [1415547.660866] nf_conntrack: table full, dropping packet.
Это означает, что переполнена таблица значений iptables, вероятнее всего для решения проблемы достаточно просто выделить больше памяти для этой таблицы. В Ubuntu 8.04 по умолчанию это значение равно 32 мегабайтам (32768) Изменить значение можно выполнив команду
echo "65536" > /proc/sys/net/netfilter/nf_conntrack_max
Этим самым мы увеличили таблицу до 64мб
Насколько уже заполнена таблица
Проверить, насколько уже заполнена таблица, используемая для отслеживания соединений, можно следующим образом:
/sbin/sysctl net.netfilter.nf_conntrack_count
Увеличение объема hash-таблицы
Увеличение объема hash-таблицы. Соответственно необходимо увеличить и хэш-таблицу, где записываются списки conntrack-записей.
echo 65536 > /sys/module/nf_conntrack/parameters/hashsize
При этом используется следующее правило: hashsize = nf_conntrack_max / 8
Разумеется, все соответствующие изменения необходимо сохранить в /etc/sysctl.conf и /etc/rc.local
Уменьшение значений time-out
Текущие значения можно посмотреть, например, так:
sysctl -a | grep conntrack | grep timeout
Это значения тайм-аутов в секундах
Всё лежит тут:/proc/sys/net/netfilter/