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

Много FIN_WAIT2, CLOSE_WAIT, LAST_ACK и TIME_WAIT в Haproxy

Мы запускаем haproxy в производстве для более 10 тысяч одновременных пользователей. Но мы видим много FIN_WAIT2, CLOSE_WAIT, LAST_ACK и TIME_WAIT в выводе netstat. Этот вывод находится на узле 8G ubuntu-12.04.

   8046 CLOSE_WAIT  
      1 CLOSING  
      1 established)  
  40869 ESTABLISHED  
   1212 FIN_WAIT1  
   7575 FIN_WAIT2  
      1 Foreign  
   2252 LAST_ACK  
      7 LISTEN  
    143 SYN_RECV  
   4920 TIME_WAIT  

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

tcp_fin_timeout = 30  
tcp_keepalive_time = 1800

Сейчас приложение работает нормально. Но интересно, будут ли какие-то проблемы, когда мы добавим больше пользователей к этому узлу haproxy.

Соединения, которые вы указали в первом абзаце, либо УСТАНОВЛЕНЫ, либо находятся в процессе очистки после использования. Установленный означает то, что следует из названия. Между одним из ваших пользователей и HAProxy устанавливается соединение. Использование по назначению.

Все остальные состояния, упомянутые в первом абзаце, указывают на то, что ранее установленное соединение завершило передачу данных. Лучше всего я могу объяснить это с помощью диаграммы.

Вкратце: если у вас много FIN_WAIT 1 и FIN_WAIT 2, то с сервером все в порядке. Вы просто ждете, пока клиенты закончат работу.

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