FastNetMon

воскресенье, 31 января 2010 г.

OpenVZ, TCP: time wait bucket table overflow

Столкнулись с такой проблемой в dmesg:
TCP: time wait bucket table overflow


Среди возможной причины предполагаем огромное число TIME_WAIT соединений:
netstat -npt | grep TIME_WAIT | wc -l
710


Вот один из вариантов фикса от Red Hat: http://kbase.redhat.com/faq/docs/DOC-1253

Как я понял, число TIME WAIT можно увеличить, увеличив следующую переменную:

cat /proc/sys/net/ipv4/tcp_max_tw_buckets

720000


Увеличим вдвое:

echo 1440000 > /proc/sys/net/ipv4/tcp_max_tw_buckets


Предположительно, проблема решилась (ну или просто мессаджи перестали сыпаться в dmesg) :)

3 комментария :

  1. Я так навскидку не помню, но вроде это лечилось путем _уменьшения_ времени TIME_WAIT, а не увеличения числа buckets. Насколько я помню устройство TCP, TIME_WAIT сознательно сделано очень избыточным, чтобы после закрытия соединения запоздавшие пакеты не вызывали отправку RST. 120 секунд, кажется? За это время можно установить и тут же завершить много миллионов соединений... Думаю, в реальной жизни секунд 5 должно хватить с запасом ;)
    За подробностями не ко мне, а в Google =)

    ОтветитьУдалить
  2. Да, вот только как я понимаю, в Linux нет нормального средства для уменьшения TIME_WAIT.

    ОтветитьУдалить
  3. Более обширные советы по настройке:
    http://centos.ultra-sr.ru/optimization-network-nginx/

    ОтветитьУдалить

Примечание. Отправлять комментарии могут только участники этого блога.