На сервере крутится апач + 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=72net.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 = 1500net.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
сделать это надо без перезагрузок и тем более пересборок ядра
>[оверквотинг удален]
>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
>поиск рулит http://www.opennet.me/base/dev/socket_timeout.txt.htmlа еще рулит мозг :)
знаете почему оно мне не подходит? потому что у меня линукс! а параметр MSL есть ТОЛЬКО во FreeBSD )))забыл добавить - сделать это надо без перезагрузок и тем более пересборок ядра
>>поиск рулит http://www.opennet.me/base/dev/socket_timeout.txt.html
>
>а еще рулит мозг :)
>знаете почему оно мне не подходит? потому что у меня линукс! а
>параметр MSL есть ТОЛЬКО во FreeBSD )))
>
>забыл добавить - сделать это надо без перезагрузок и тем более пересборок
>ядрана линуксе такой параметр тоже есть, но он захардкожен в ядре
>на линуксе такой параметр тоже есть, но он захардкожен в ядреок пусть она есть в ядре, но как называется?
в той ссылке что мы обсуждаем мельком упоминается то что возможно работает, а такого параметра в текущем .config уже и нету :)
>
>>на линуксе такой параметр тоже есть, но он захардкожен в ядре
>
>ок пусть она есть в ядре, но как называется?
> в той ссылке что мы обсуждаем мельком упоминается то что возможно
>работает, а такого параметра в текущем .config уже и нету :)
>#define TCP_TIMEWAIT_LEN (60*HZ)
в include/net/tcp.h
>>
>>>на линуксе такой параметр тоже есть, но он захардкожен в ядре
>>
>>ок пусть она есть в ядре, но как называется?
>> в той ссылке что мы обсуждаем мельком упоминается то что возможно
>>работает, а такого параметра в текущем .config уже и нету :)
>>
>
>#define TCP_TIMEWAIT_LEN (60*HZ)
>в include/net/tcp.hЕсли не секрет, чем Вам мешают эти TIME_WAIT? Ну есть они, ну и бог с ними.
Если уж очень хочется уменьшить их число, то можно попробовать подкрутить tcp_tw_recycle/tcp_tw_reuse
>Если не секрет, чем Вам мешают эти TIME_WAIT? Ну есть они, ну
>и бог с ними.
>Если уж очень хочется уменьшить их число, то можно попробовать подкрутить tcp_tw_recycle/tcp_tw_reuse
>не секрет, когда их несколько тысяч это нормально, когда десятки тысяч они и память кушают и лимиты оси подходят к тому месту, которое в культурном обществе лучше не упоминать :)
>
>>Если не секрет, чем Вам мешают эти TIME_WAIT? Ну есть они, ну
>>и бог с ними.
>>Если уж очень хочется уменьшить их число, то можно попробовать подкрутить tcp_tw_recycle/tcp_tw_reuse
>>
>
>не секрет, когда их несколько тысяч это нормально, когда десятки тысяч они
>и память кушают и лимиты оси подходят к тому месту, которое
>в культурном обществе лучше не упоминать :)Десятков тысяч - в посте автора не видно, те пара тысяч, что у него есть, по-моему вполне нормально и можно не заморачиваться по этому поводу, если конечно у него не какой-нибудь VDS (в этом случае у него все равно мало шансов что-то существенно подкрутить).
>[оверквотинг удален]
>>>
>>
>>не секрет, когда их несколько тысяч это нормально, когда десятки тысяч они
>>и память кушают и лимиты оси подходят к тому месту, которое
>>в культурном обществе лучше не упоминать :)
>
>Десятков тысяч - в посте автора не видно, те пара тысяч, что
>у него есть, по-моему вполне нормально и можно не заморачиваться по
>этому поводу, если конечно у него не какой-нибудь VDS (в этом
>случае у него все равно мало шансов что-то существенно подкрутить).а что крутить чтобы было существенно? ;)
>>Десятков тысяч - в посте автора не видно, те пара тысяч, что
>>у него есть, по-моему вполне нормально и можно не заморачиваться по
>>этому поводу, если конечно у него не какой-нибудь VDS (в этом
>>случае у него все равно мало шансов что-то существенно подкрутить).
>
>а что крутить чтобы было существенно? ;)Наверно тогда стоит подкрутить тарифный план на VDS ну или выделенный сервер :)
>>
>>>на линуксе такой параметр тоже есть, но он захардкожен в ядре
>>
>>ок пусть она есть в ядре, но как называется?
>> в той ссылке что мы обсуждаем мельком упоминается то что возможно
>>работает, а такого параметра в текущем .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
>[оверквотинг удален]
>ибо когда искал не нашел ничего похожего
>
>#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/