новости
статьи
.sysadmin

тюнинг TCP-стека в Linux

Увеличиваем максимальный размер памяти отводимой для TCP буферов (16Мб на порядок больше, чем нужно, следует экспериментальным путем подобрать оптимальные значения, понемногу увеличивая параметры, заданные по умолчанию):

sysctl -w net.core.rmem_max = 16777216
sysctl -w net.core.wmem_max = 16777216


Увеличиваем лимиты автотюнинга (min, default, max bytes):

sysctl -w net.ipv4.tcp_rmem = "4096 87380 16777216"
sysctl -w net.ipv4.tcp_wmem = "4096 65536 16777216"


Увеличиваем размер очереди пакетов на сетевом интерфейсе, что особенно полезно для Gigabit Ethernet:

ifconfig eth0 txqueuelen 1000

особенности Linux-ядра 2.4.x

Для предотвращения проблем, связанных с уменьшением размера окна из-за повторов передачи пакетов, для одного соединения, уменьшать на 10 минут размер окна для всех остальных соединений к тому же хосту:

sysctl -w net.ipv4.route.flush=1

особенности Linux-ядра 2.6.x

Запрещаем кэширование статуса ssthresh (были ретрансмиты) для других соединений:

sysctl -w net.ipv4.tcp_no_metrics_save = 1

Рекомендуется увеличить размер backlog до 1000 или выше (для 10-гигабитного линка можно поставить 30000):

sysctl -w net.core.netdev_max_backlog = 2500

Начиная с ядра 2.6.13, можно менять алгоритм обработки ситуации перегрузки:

sysctl -w net.ipv4.tcp_congestion_control=htcp

Другие возможные значения:

- reno - традиционный TCP;

- bic - BIC-TCP (для высокоскоростных сетей, быстрое восстановление после потери);

- highspeed - HighSpeed TCP, алгоритм, предложенный Sally Floyd для высокоскоростных протяженных линков;

- htcp - Hamilton TCP (для высокоскоростных сетей);

- hybla – Hybla TCP для спутниковых линков и гетерогенных сетей;

- scalable - Scalable TCP для высокоскоростных (более 1 Мбит/с) сетей$

- vegas: TCP Vegas;

- westwood – алгоритм для сетей с большой потерей пакетов.

Значения параметров тюнинга подробно описаны в документе ip-sysctl.txt в комплекте ядра, можно также скачать этот документ по адресу http://www- didc.lbl.gov/TCP-tuning/ip-sysctl-2.6.txt.



По материалам Lawrence Berkeley National Laboratory
обсудить статью
© сетевые решения
.
.