LINUX.ORG.RU
ФорумAdmin

tcp TIME_WAIT

 ,


1

3

помогите разобраться плиз

есть сервак

net.ipv4.tcp_tw_reuse=0
net.ipv4.tcp_tw_recycle=0
net.ipv4.tcp_fin_timeout = 60
nginx -proxy-> jboss

кеширование отключено

натравлиаю на все это ab

ab -n 500000 -c 500

и вот что удевляет, все 500 тыщ запросов отлично отрабатывают за 60 секунд, хотя казалось бы на каждый запрос nginx-jboss открывается сокет, который повисает в состоении time_wait так как реюз запрещен

но вот чудо

netstat -na | grep TIME_WAIT | grep 8080 | wc -l

стабильно показывает 32k и после снятия нагрузки планомерно за минуту стекает в ноль..

собственно вопрос, почему могут реюзаться порты если я это не разрешал?



Последнее исправление: beastie (всего исправлений: 2)

А что в net.ipv4.tcp_max_tw_buckets?

Ещё посмотрите в tcpdump'е как nginx закрывает соединение от nginx к jboss, если я правильно понял про порт 8080. Если отправляется RST, а не FIN, то при net.ipv4.tcp_rfc1337 сокет сразу удаляется, не дожидаясь окончания TIME_WAIT.

P.S. Модератор, занимающися оформлением чужих тем, это что-то новенькое для ЛОРа :-)

mky ★★★★★
()

А почему бы сервису не переопределить флаг, когда он открывает сокет и биндится к нему?

anto215 ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.