The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Раздел полезных советов: Оптимизация TCP/IP стека в Linux дл..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Раздел полезных советов: Оптимизация TCP/IP стека в Linux дл..."  +/
Сообщение от auto_tips on 23-Авг-04, 23:41 
/usr/src/linux/Documenation/filesystems/proc.txt
/usr/src/linux/Documenation/networking/ip-sysctl.txt
Далее в скобках указаны значения по умолчанию для 2.2.x/2.4.x ядер.
Если ядро собрано с CONFIG_SYNCOOKIES для защиты от syn флуда (net.ipv4.tcpsyn_cookies)
   echo 1 > /proc/sys/net/ipv4/tcp_syncookies #(0/0)
Увеличиваем размер backlog очереди (аналог sysctl net.ipv4.tcp_max_syn_backlog).  
   echo 1280 > /proc/sys/net/ipv4/tcp_max_syn_backlog  #(128/1024)
Число начальных SYN и SYNACK пересылок для TCP соединения (лучше не трогать).
   echo 4 > /proc/sys/net/ipv4/tcp_synack_retries #(x/5)
   echo 4 > /proc/sys/net/ipv4/tcp_syn_retries #(10/5)
Какие порты использовать в качестве локальных TCP и UDP портов (sysctl net.ipv4.ip_local_port_range).
   echo "16384 61000" > /proc/sys/net/ipv4/ip_local_port_range #(1024 4999/32768 61000)
Сколько секунд ожидать приема FIN до полного закрытия сокета.
   echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout #(180/60)
Как часто посылать сообщение о поддержании keep alive соединения.
   echo 1800 > /proc/sys/net/ipv4/tcp_keepalive_time #(7200/7200)
Сколько пакетов проверки keepalive посылать, прежде чем соединение будет закрыто.
   echo 2 > /proc/sys/net/ipv4/tcp_keepalive_probes #(9/9)
Запрещаем TCP window scaling (net.ipv4.tcp_window_scaling)
   echo 0 > /proc/sys/net/ipv4/tcp_window_scaling #(1/1)
Запрещаем selective acknowledgements, RFC2018 (net.ipv4.tcp_sack).
   echo 0 > /proc/sys/net/ipv4/tcp_sack #(1/1)
Запрещаем TCP timestamps, RFC1323 (net.ipv4.tcp_timestamps)
   echo 0  > /proc/sys/net/ipv4/tcp_timestamps #(1/1)
Увеличиваем размер буфера для приема и отправки данных через сокеты.
   echo 1048576 > /proc/sys/net/core/rmem_max #(65535/autotune)
   echo 1048576 > /proc/sys/net/core/rmem_default #(65535/autotune)
   echo 1048576 > /proc/sys/net/core/wmem_max #(65535/autotune)
   echo 1048576 > /proc/sys/net/core/wmem_default #(65535/autotune)
Если не требуется форвадинг пакетов (машина не рутер) выключаем.
(net.ipv4.ip_forward и  net.ipv4.conf.all.forwarding)
   echo 0 /proc/sys/net/ipv4/ip_forward #(0/0)
   echo 0 /proc/sys/net/ipv4/conf/all/forwarding #(0/0)
Через какое время убивать соединеие закрытое на нашей стороне (net.ipv4.tcp_orphan_retries)
   echo 1 > /proc/sys/net/ipv4/tcp_orphan_retries #(x/7)


URL:
Обсуждается: http://www.opennet.me/tips/info/273.shtml

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

Оглавление

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


1. "Оптимизация TCPIP стека в Linux для нагруженного сервера."  +/
Сообщение от Michael Shigorin email on 23-Авг-04, 23:41 
А за что порубили TCP window scaling, selective ACKs и TCP timestamps?  Понятно, что сетевая прокачка при этом в среднем ухудшится и нагрузка на сервер снизится, но тот ли это результат, которого хотелось добиться?

Тогда уж проще грубо лимитировать полосу или SYN rate.

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

2. "Оптимизация TCP/IP стека в Linux для нагруженного сервера."  +/
Сообщение от Michael Shigorin email on 24-Авг-04, 00:58 
Хотя... _нагрузку_-то, конечно, оно несколько убавит.  But still
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

3. "Оптимизация TCP/IP стека в Linux для нагруженного сервера."  +/
Сообщение от Ekzorcist (ok) on 26-Июл-10, 12:39 
##
Число начальных SYN и SYNACK пересылок для TCP соединения (лучше не трогать).
   echo 4 > /proc/sys/net/ipv4/tcp_synack_retries #(x/5)
##

Под высокие нагрузки (и даже под DDoS)
net.ipv4.tcp_synack_retries = 2 - пойдет очень хорошо (CentOS release 5.3 (Final), 2.6.18-128.1.16.el5 )

##
Сколько секунд ожидать приема FIN до полного закрытия сокета.
   echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout #(180/60)
##
Понижал до 15. Работает как часы и при этом значительно снижается нагрузка за счет уменьшения полузакрытых коннектов.

P.S. То, что испытывал:
http://mega-admin.com/showthread.php?t=42

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

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

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




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

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