| Оптимизация TCP/IP стека в Linux для нагруженного сервера. | [исправить] | 
| /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)
 | 
|  | 
| 
 | 
26.06.2002
 
Ключи: tcp, win, proc, subnet, tune, linux, sysctl, forward, port, ip, time, x, udp, config, window, buffer, file, coredump, timeout, fault, sync, select 
/ Лицензия: CC-BY
 | | Раздел:    Корень / Администратору / Система / Linux специфика / Оптимизация и тюнинг в Linux |