Назад | Перейти на главную страницу

ip_conntrack_count имеет слишком много соединений

В таблице conntrack на моем сервере более 1,2 миллиона подключений, я продолжаю увеличивать лимит, но таблица продолжает расти (но не монотонно - иногда она падает).

$ cat /proc/sys/net/ipv4/netfilter/ip_conntrack_count
1278865

Это правда, несмотря на то, что netstat вполне разумен:

$ netstat -ant | wc -l
908

Я запускаю Debian с ядром 2.6.32-5-amd64. Я понимаю, что таблица conntrack хранит информацию о последних соединениях, поэтому ожидается, что она будет больше, чем netstat, но это поведение все еще кажется довольно экстремальным! Коробка используется в основном как веб-сервер, а mod_python в Apache используется для обработки соединений. Вне них не должно быть никаких связей. Не работает лишних потоков mod_python (ps -ef выглядит нормально, top выглядит нормально), а журналы ошибок из Apache и mod_python выглядят нормально. (Я не могу публиковать подробную информацию журнала ошибок по соображениям конфиденциальности).

В ip_conntrack IP-адреса кажутся справедливо распределенными и на порте 443 (как и следовало ожидать от веб-сервера, обслуживающего исключительно HTTPS). Я не уверен, что может вызывать сбой IP-соединений, и я не могу найти в Интернете информацию, предполагающую, что это известная проблема. Есть ли конфигурация Apache или что-то еще, что может быть причиной? Другие идеи? Большое спасибо.

Чтобы ответить на ваш вопрос, вы можете установить net.netfilter.nf_conntrack_tcp_timeout_established в sysctl.conf. По умолчанию это 5 дней, которые можно значительно уменьшить, не влияя на какой-либо вероятный трафик 443. net.ipv4.netfilter.ip_conntrack_max также можно увеличить.

Чтобы увидеть отслеживание в новых ядрах, вам необходимо установить пакет conntrack и выполнить conntrack -L. Вы увидите список conntrack table. Файл "/ proc / net / ip_conntrack" устарел.