2012-06-07 3 views
1

У меня была проблема, когда у меня заканчивались соединения из-за того, что все они находились в состоянии TIME_WAIT. Установка таймаута в 1 секунду все еще вызывала проблему. Мы используем балансировщик нагрузки, поэтому вместо утилизации я пошел с tcp_tw_reuse. Я собираюсь выпустить код, который требует включения tcp_tw_reuse.Почему tcp_tw_reuse отключен по умолчанию?

Однако, я предполагаю, что существует некоторый потенциал для отрицательного воздействия на tcp_tw_reuse, но я не могу придумать, что это может быть. Кто-нибудь знает, почему это не включено по умолчанию в установках Linux?

Или может ли кто-нибудь указать любые потенциальные негативные последствия? Я предполагаю, что это не оказывает никакого влияния на систему, пока не закончится соединение, и в этом случае необходимость в этом кажется очевидной.

Спасибо.

ответ

0

Видел большую статью на этом сегодня, что обеспечивает действительно в глубине ответ, что я думал, что кто-нибудь, что натыкался на этот вопрос должен быть:

http://vincent.bernat.im/en/blog/2014-tcp-time-wait-state-linux.html

Просмотрев его, это выглядит как изменение I сделанный для использования tcp_tw_reuse, даже не влияет на входящие соединения, поэтому кажется, что мое первоначальное решение было бесплодным с моей стороны.

0

Состояние TIME_WAIT является составной частью протокола TCP. Это мера безопасности/целостности данных, чтобы предотвратить смешивание данных из двух последовательных соединений между номерами одних и тех же номеров портов. Вы должны обязательно не беспорядок вокруг него. Единственной проблемой, которая может возникнуть, является ошибка привязки при создании исходящих соединений. В конечном итоге это вызвано приложениями, которые должны использовать пул соединений и не являются.

Смежные вопросы