The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Уменьшение TIME_WAIT на нагруженных серверах"
Вариант для распечатки  
Пред. тема | След. тема 
Форум WEB технологии (Построение хостинга)
Изначальное сообщение [ Отслеживать ]

"Уменьшение TIME_WAIT на нагруженных серверах"  +/
Сообщение от obl (ok) on 04-Фев-10, 12:28 
На сервере крутится апач + php, отдает динамический контент, стоит nginx для отдачи статики, но ее мало.
скрипты PHP работают с мускулем и мемкешем, все на сторонних серверах


Ось Open SUSE 11.1:
# uname  -a
Linux 24x42 2.6.27.42-0.1-default #1 SMP 2010-01-06 16:07:25 +0100 x86_64 x86_64 x86_64 GNU/Linux


Проблема в том что time-wait больше половины.  
# netstat -na | grep TIME_WAIT |wc
   1847   11082  149607
# netstat -na |wc
   2290   13986  182157


локально так вообще мистика:
# netstat -na |grep 127.0.0.1 | wc
    851    5106   68931
# netstat -na |grep 127.0.0.1 | grep TIME_WAIT| wc
    829    4974   67149


в конфиге нжиникса:
    send_timeout   15s;
    sendfile       on;
    tcp_nopush     on;
    tcp_nodelay    on;
    keepalive_timeout 1;
    reset_timedout_connection on;


в апаче keep-alive выключен.

что уже поменяно в sysctl:
net.ipv4.tcp_fin_timeout=3
net.ipv4.tcp_retries2=3
net.ipv4.tcp_keepalive_time=72

net.ipv4.neigh.default.base_reachable_time_ms = 1500
net.ipv4.neigh.lo.base_reachable_time_ms = 1500
net.ipv4.neigh.eth2.base_reachable_time_ms = 1500
net.ipv4.neigh.eth3.base_reachable_time_ms = 1500

net.ipv4.tcp_syncookies=1
net.ipv4.tcp_max_syn_backlog=1024
net.ipv4.tcp_fin_timeout=3
net.ipv4.tcp_keepalive_time=72
net.ipv4.tcp_keepalive_probes=3
net.ipv4.tcp_orphan_retries=1


сделать это надо без перезагрузок и тем более пересборок ядра

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Уменьшение TIME_WAIT на нагруженных серверах"  +/
Сообщение от Michael (??) on 04-Фев-10, 12:56 
>[оверквотинг удален]
>net.ipv4.neigh.lo.base_reachable_time_ms = 1500
>net.ipv4.neigh.eth2.base_reachable_time_ms = 1500
>net.ipv4.neigh.eth3.base_reachable_time_ms = 1500
>
>net.ipv4.tcp_syncookies=1
>net.ipv4.tcp_max_syn_backlog=1024
>net.ipv4.tcp_fin_timeout=3
>net.ipv4.tcp_keepalive_time=72
>net.ipv4.tcp_keepalive_probes=3
>net.ipv4.tcp_orphan_retries=1

поиск рулит http://www.opennet.me/base/dev/socket_timeout.txt.html

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

2. "Уменьшение TIME_WAIT на нагруженных серверах"  +/
Сообщение от obl (ok) on 04-Фев-10, 13:08 
>поиск рулит http://www.opennet.me/base/dev/socket_timeout.txt.html

а еще рулит мозг :)
знаете почему оно мне не подходит? потому что у меня линукс! а параметр MSL есть ТОЛЬКО во FreeBSD )))

забыл добавить - сделать это надо без перезагрузок и тем более пересборок ядра

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

3. "Уменьшение TIME_WAIT на нагруженных серверах"  +/
Сообщение от Michael (??) on 04-Фев-10, 14:24 
>>поиск рулит http://www.opennet.me/base/dev/socket_timeout.txt.html
>
>а еще рулит мозг :)
>знаете почему оно мне не подходит? потому что у меня линукс! а
>параметр MSL есть ТОЛЬКО во FreeBSD )))
>
>забыл добавить - сделать это надо без перезагрузок и тем более пересборок
>ядра

на линуксе такой параметр тоже есть, но он захардкожен в ядре

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

4. "Уменьшение TIME_WAIT на нагруженных серверах"  +/
Сообщение от obl (ok) on 04-Фев-10, 15:37 

>на линуксе такой параметр тоже есть, но он захардкожен в ядре

ок пусть она есть в ядре, но как называется?
в той ссылке что мы обсуждаем мельком упоминается то что возможно работает, а такого параметра в текущем .config уже и нету :)

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

5. "Уменьшение TIME_WAIT на нагруженных серверах"  +/
Сообщение от Michael (??) on 04-Фев-10, 15:51 
>
>>на линуксе такой параметр тоже есть, но он захардкожен в ядре
>
>ок пусть она есть в ядре, но как называется?
> в той ссылке что мы обсуждаем мельком упоминается то что возможно
>работает, а такого параметра в текущем .config уже и нету :)
>

#define TCP_TIMEWAIT_LEN (60*HZ)
в include/net/tcp.h

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

6. "Уменьшение TIME_WAIT на нагруженных серверах"  +/
Сообщение от Аноним (??) on 04-Фев-10, 20:44 
>>
>>>на линуксе такой параметр тоже есть, но он захардкожен в ядре
>>
>>ок пусть она есть в ядре, но как называется?
>> в той ссылке что мы обсуждаем мельком упоминается то что возможно
>>работает, а такого параметра в текущем .config уже и нету :)
>>
>
>#define TCP_TIMEWAIT_LEN (60*HZ)
>в include/net/tcp.h

Если не секрет, чем Вам мешают эти TIME_WAIT? Ну есть они, ну и бог с ними.
Если уж очень хочется уменьшить их число, то можно попробовать подкрутить tcp_tw_recycle/tcp_tw_reuse

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

8. "Уменьшение TIME_WAIT на нагруженных серверах"  +/
Сообщение от obl (ok) on 05-Фев-10, 22:10 

>Если не секрет, чем Вам мешают эти TIME_WAIT? Ну есть они, ну
>и бог с ними.
>Если уж очень хочется уменьшить их число, то можно попробовать подкрутить tcp_tw_recycle/tcp_tw_reuse
>

не секрет, когда их несколько тысяч это нормально, когда десятки тысяч они и память кушают и лимиты оси подходят к тому месту, которое в культурном обществе лучше не упоминать :)

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

9. "Уменьшение TIME_WAIT на нагруженных серверах"  +/
Сообщение от Аноним (??) on 05-Фев-10, 23:22 
>
>>Если не секрет, чем Вам мешают эти TIME_WAIT? Ну есть они, ну
>>и бог с ними.
>>Если уж очень хочется уменьшить их число, то можно попробовать подкрутить tcp_tw_recycle/tcp_tw_reuse
>>
>
>не секрет, когда их несколько тысяч это нормально, когда десятки тысяч они
>и память кушают и лимиты оси подходят к тому месту, которое
>в культурном обществе лучше не упоминать :)

Десятков тысяч - в посте автора не видно, те пара тысяч, что у него есть, по-моему вполне нормально и можно не заморачиваться по этому поводу, если конечно у него не какой-нибудь VDS (в этом случае у него все равно мало шансов что-то существенно подкрутить).

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

10. "Уменьшение TIME_WAIT на нагруженных серверах"  +/
Сообщение от obl (ok) on 06-Фев-10, 01:10 
>[оверквотинг удален]
>>>
>>
>>не секрет, когда их несколько тысяч это нормально, когда десятки тысяч они
>>и память кушают и лимиты оси подходят к тому месту, которое
>>в культурном обществе лучше не упоминать :)
>
>Десятков тысяч - в посте автора не видно, те пара тысяч, что
>у него есть, по-моему вполне нормально и можно не заморачиваться по
>этому поводу, если конечно у него не какой-нибудь VDS (в этом
>случае у него все равно мало шансов что-то существенно подкрутить).

а что крутить чтобы было существенно? ;)

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

11. "Уменьшение TIME_WAIT на нагруженных серверах"  +/
Сообщение от Аноним (??) on 06-Фев-10, 03:10 
>>Десятков тысяч - в посте автора не видно, те пара тысяч, что
>>у него есть, по-моему вполне нормально и можно не заморачиваться по
>>этому поводу, если конечно у него не какой-нибудь VDS (в этом
>>случае у него все равно мало шансов что-то существенно подкрутить).
>
>а что крутить чтобы было существенно? ;)

Наверно тогда стоит подкрутить тарифный план на VDS ну или выделенный сервер :)

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

7. "Уменьшение TIME_WAIT на нагруженных серверах"  +/
Сообщение от obl (ok) on 05-Фев-10, 22:07 
>>
>>>на линуксе такой параметр тоже есть, но он захардкожен в ядре
>>
>>ок пусть она есть в ядре, но как называется?
>> в той ссылке что мы обсуждаем мельком упоминается то что возможно
>>работает, а такого параметра в текущем .config уже и нету :)
>>
>
>#define TCP_TIMEWAIT_LEN (60*HZ)
>в include/net/tcp.h

большое спасибо!
рецепт можно выложить в "рецепты" :)
ибо когда искал не нашел ничего похожего

#define TCP_RETR2       5  
#define TCP_SYN_RETRIES  3
#define TCP_SYNACK_RETRIES 3
#define TCP_ORPHAN_RETRIES 5
#define TCP_TIMEWAIT_LEN (5*HZ)

#define TCP_PAWS_MSL    5
#define TCP_KEEPALIVE_PROBES    5

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

12. "Уменьшение TIME_WAIT на нагруженных серверах"  +/
Сообщение от alfamayonez (ok) on 15-Июл-10, 13:32 
>[оверквотинг удален]
>ибо когда искал не нашел ничего похожего
>
>#define TCP_RETR2       5
>#define TCP_SYN_RETRIES  3
>#define TCP_SYNACK_RETRIES 3
>#define TCP_ORPHAN_RETRIES 5
>#define TCP_TIMEWAIT_LEN (5*HZ)
>
>#define TCP_PAWS_MSL    5
>#define TCP_KEEPALIVE_PROBES    5

/proc/sys/net/ipv4/tcp_fin_timeout
http://alfamayonez.ru/2010/07/11/time_wait/

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру