- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Вопрос к гуру-администраторам ))
# 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
гигантское это сколько примерно?
1. Погуглите про TIME_WAIT
2. В обычной ситуации - не надо, в данном конкретном случае - стоит озаботится.
3. Если отказаться от уродской манеры проксировать запросы на внешний адрес, и перевесить апач на 127.0.0.1 - проблема скорее всего решится.
3. Если отказаться от уродской манеры проксировать запросы на внешний адрес, и перевесить апач на 127.0.0.1 - проблема скорее всего решится
Никуда они не исчезнут. Можно время сократить через sysctl net.ipv4.tcp_fin_timeout
Вот во freebsd есть sysctl net.inet.tcp.fast_finwait2_recycle, это поинтересней.
Никуда они не исчезнут. Можно время сократить через 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-сессии в опциях сокета этот флаг стоял.
Outsourcenow, факт в том, что на bsd после такой настройки вообще пропадают из netstat локальные соединения в состоянии TIME_WAIT.
ну, я попробовал в линуксе и смотрю
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
тоже помогают. Раньше никогда не беспокоило. Для обычного "тяжелого" сайта разбираться с сокетами - это экономия на спичках. Может какие-нибудь баннерные системы с объемом кода 1 мб так загоняются.
Кстати, как я понимаю, у ТС зачем то ipv6-сокеты. для них настройки с таким же названием не видно.
Никуда они не исчезнут. Можно время сократить через 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
FIN_WAIT от TIME_WAIT немножко так отличаются :-)
ага, совсем немножко :D
в общем, ТС стоит забить на это, если сокетов в таком состоянии
не слижком уж много. а если много (порядка
/proc/sys/net/ipv4/ip_local_port_range) - еще можно раскидать сайты
по нескольким IP-адресам. плюс - включить reuse&recycle.
Кроме того, в линуксовом ip-стеке по-дефолту работает nolocaltimewait, если мне не изменяет память.
изменяет.
Кстати, как я понимаю, у ТС зачем то ipv6-сокеты. для них настройки с таким же названием не видно.
так это фича апача - Listen 80 слушает на _всех_ ip, в том числе и ipv6 (настройки
reuse/recycle отдельной для ipv6-сокетов нет).
если нафиг не нужно IPv6 - советую прописать в Listen явно слушаемые IP-адреса.
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. Это так принципиально?
ну вот что-то не работает это на другом сайте, где соединений побольше. Стало меньше,но не пропали совсем.
И не должны пропасть. Так и задумано.
Outsourcenow, тогда почему на bsd их нет ? правильный процесс завершения вообще ведь не имеет смысла при локальных соединениях. и еще номера портов там продолжают расти, но на другом сервере повторно используются и я вижу только ESTABLISHED.
Outsourcenow, тогда почему на bsd их нет ? правильный процесс завершения вообще ведь не имеет смысла при локальных соединениях. и еще номера портов там продолжают расти, но на другом сервере нет.
Потому что у бсд сетевая подсистема написана прямыми руками :-)
Если серьезно - ну, вот так тут заведено. У бсд есть ручка, который выставляется таймаут на time_wait, у линукса - нет. У бсд есть nolocaltimewait - у линукса, как оказывается, нет.
Я предполагаю, что есть некая ручка, отвечающая за политику выбора нового сокета. В линуксе reuse используется, только когда нету свободных сокетов, а в бсд, похоже, наоборот - новый сокет создается только когда реюзать нечего. Не знаю точно, надо в код
смотреть.
Но вобщем, вот это вот все - одна из причин, почему идеологически верно держать бэкэнд/fastcgi-сервер на лупбэке.