Оптимизация 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 |