Что это за соединения такие?

12
B
На сайте с 05.03.2007
Offline
171
2267

Вопрос к гуру-администраторам ))

# netstat -na | grep 80 выдает гигантское кол-во таких вот соединений, на вдс стоит apache+ nginx. Что они вообще значат, надо ли избавляться от таких, и если надо то как?

tcp 0 0 ::ffff:85.25.217.17:8080 ::ffff:85.25.217.17:46117 TIME_WAIT

tcp 0 0 ::ffff:85.25.217.17:8080 ::ffff:85.25.217.17:45861 TIME_WAIT

tcp 0 0 ::ffff:85.25.217.17:8080 ::ffff:85.25.217.17:45607 TIME_WAIT

tcp 0 0 ::ffff:85.25.217.17:8080 ::ffff:85.25.217.17:45601 TIME_WAIT

tcp 0 0 ::ffff:85.25.217.17:8080 ::ffff:85.25.217.17:46113 TIME_WAIT

tcp 0 0 ::ffff:85.25.217.17:8080 ::ffff:85.25.217.17:45916 TIME_WAIT

tcp 0 0 ::ffff:85.25.217.17:8080 ::ffff:85.25.217.17:45657 TIME_WAIT

tcp 0 0 ::ffff:85.25.217.17:8080 ::ffff:85.25.217.17:45913 TIME_WAIT

tcp 0 0 ::ffff:85.25.217.17:8080 ::ffff:85.25.217.17:46170 TIME_WAIT

tcp 0 0 ::ffff:85.25.217.17:8080 ::ffff:85.25.217.17:46171 TIME_WAIT

tcp 0 0 ::ffff:85.25.217.18:8080 ::ffff:85.25.217.18:47707 TIME_WAIT

tcp 0 0 ::ffff:85.25.217.17:8080 ::ffff:85.25.217.17:46167 TIME_WAIT

V
На сайте с 05.01.2009
Offline
105
#1

гигантское это сколько примерно?

Hosterbox.ru - хостинг, серверы и cloud (http://hosterbox.ru)
O
На сайте с 13.08.2008
Offline
26
#2

1. Погуглите про TIME_WAIT

2. В обычной ситуации - не надо, в данном конкретном случае - стоит озаботится.

3. Если отказаться от уродской манеры проксировать запросы на внешний адрес, и перевесить апач на 127.0.0.1 - проблема скорее всего решится.

Outsourcenow.ru: оттюним ваш веб-сервер. 100 млн. запросов в сутки - наш размерчик!
N
На сайте с 06.05.2007
Offline
419
#3
Outsourcenow:
3. Если отказаться от уродской манеры проксировать запросы на внешний адрес, и перевесить апач на 127.0.0.1 - проблема скорее всего решится

Никуда они не исчезнут. Можно время сократить через sysctl net.ipv4.tcp_fin_timeout

Вот во freebsd есть sysctl net.inet.tcp.fast_finwait2_recycle, это поинтересней.

Кнопка вызова админа ()
O
На сайте с 13.08.2008
Offline
26
#4
netwind:
Никуда они не исчезнут. Можно время сократить через sysctl net.ipv4.tcp_fin_timeout
Вот во freebsd есть sysctl net.inet.tcp.fast_finwait2_recycle, это поинтересней.

FIN_WAIT от TIME_WAIT немножко так отличаются :-)

Кроме того, в линуксовом ip-стеке по-дефолту работает nolocaltimewait, если мне не изменяет память.

ps/2: Во фре вообще говоря есть net.inet.tcp.msl :-) А REUSE у сокетов работает во всех операционных системах, достаточно, чтобы у инициатора tcp-сессии в опциях сокета этот флаг стоял.

N
На сайте с 06.05.2007
Offline
419
#5

Outsourcenow, факт в том, что на bsd после такой настройки вообще пропадают из netstat локальные соединения в состоянии TIME_WAIT.

ну, я попробовал в линуксе и смотрю

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_tw_reuse = 1

тоже помогают. Раньше никогда не беспокоило. Для обычного "тяжелого" сайта разбираться с сокетами - это экономия на спичках. Может какие-нибудь баннерные системы с объемом кода 1 мб так загоняются.

Кстати, как я понимаю, у ТС зачем то ipv6-сокеты. для них настройки с таким же названием не видно.

M
На сайте с 16.09.2009
Offline
278
#6
netwind:
Никуда они не исчезнут. Можно время сократить через sysctl net.ipv4.tcp_fin_timeout
Вот во freebsd есть sysctl net.inet.tcp.fast_finwait2_recycle, это поинтересней.

reuse && recycle для time_wait есть и в линукс:

/proc/sys/net/ipv4/tcp_tw_reuse

/proc/sys/net/ipv4/tcp_tw_recycle

Outsourcenow:
FIN_WAIT от TIME_WAIT немножко так отличаются :-)

ага, совсем немножко :D

в общем, ТС стоит забить на это, если сокетов в таком состоянии

не слижком уж много. а если много (порядка

/proc/sys/net/ipv4/ip_local_port_range) - еще можно раскидать сайты

по нескольким IP-адресам. плюс - включить reuse&recycle.

Outsourcenow:

Кроме того, в линуксовом ip-стеке по-дефолту работает nolocaltimewait, если мне не изменяет память.

изменяет.

netwind:

Кстати, как я понимаю, у ТС зачем то ipv6-сокеты. для них настройки с таким же названием не видно.

так это фича апача - Listen 80 слушает на _всех_ ip, в том числе и ipv6 (настройки

reuse/recycle отдельной для ipv6-сокетов нет).

если нафиг не нужно IPv6 - советую прописать в Listen явно слушаемые IP-адреса.

Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
N
На сайте с 06.05.2007
Offline
419
#7
myhand:
reuse && recycle для time_wait есть и в линукс:
/proc/sys/net/ipv4/tcp_tw_reuse
/proc/sys/net/ipv4/tcp_tw_recycle

ну вот что-то не работает это на другом сайте, где соединений побольше. Стало меньше,но не пропали совсем. Так что настройка не аналогичная как в bsd net.inet.tcp.nolocaltimewait (соврал, по другому она называется на самом деле )

Там правда апач привязан НЕ на 127.0.0.1. Это так принципиально?

O
На сайте с 13.08.2008
Offline
26
#8
netwind:
ну вот что-то не работает это на другом сайте, где соединений побольше. Стало меньше,но не пропали совсем.

И не должны пропасть. Так и задумано.

N
На сайте с 06.05.2007
Offline
419
#9

Outsourcenow, тогда почему на bsd их нет ? правильный процесс завершения вообще ведь не имеет смысла при локальных соединениях. и еще номера портов там продолжают расти, но на другом сервере повторно используются и я вижу только ESTABLISHED.

O
На сайте с 13.08.2008
Offline
26
#10
netwind:
Outsourcenow, тогда почему на bsd их нет ? правильный процесс завершения вообще ведь не имеет смысла при локальных соединениях. и еще номера портов там продолжают расти, но на другом сервере нет.

Потому что у бсд сетевая подсистема написана прямыми руками :-)

Если серьезно - ну, вот так тут заведено. У бсд есть ручка, который выставляется таймаут на time_wait, у линукса - нет. У бсд есть nolocaltimewait - у линукса, как оказывается, нет.

Я предполагаю, что есть некая ручка, отвечающая за политику выбора нового сокета. В линуксе reuse используется, только когда нету свободных сокетов, а в бсд, похоже, наоборот - новый сокет создается только когда реюзать нечего. Не знаю точно, надо в код

смотреть.

Но вобщем, вот это вот все - одна из причин, почему идеологически верно держать бэкэнд/fastcgi-сервер на лупбэке.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий