Тюнинг 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 или выше
(для 10Gb линка можно поставить 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's suggested algorithm
htcp: Hamilton TCP (для высокоскоростных сетей)
hybla: для спутниковых линков
scalable: Scalable TCP
vegas: TCP Vegas
westwood: для сетей с большой потерей пакетов
Когда стандартный reno не устраивает рекомендуется попробовать bic или htcp.
Значения параметров тюнинга подробно описаны в документе ip-sysctl.txt в комплекте ядра:
http://www-didc.lbl.gov/TCP-tuning/ip-sysctl-2.6.txt
|
|
|
|
Раздел: Корень / Администратору / Система / Linux специфика / Оптимизация и тюнинг в Linux |
1.3, arruah (??), 20:37, 02/06/2007 [ответить]
| +/– |
А как посмотреть нужно ли это делать вообще ? :) | |
|
|
3.7, мя (?), 23:30, 08/07/2007 [^] [^^] [^^^] [ответить]
| +/– |
это конечно не нужно, а то что нужно - не сказали - по умолчанию so.maxconn равен 128 соединений - на сервере надо естественно раз в 100 больше | |
|
|
1.9, birdie (?), 12:18, 09/08/2007 [ответить]
| +/– |
Нельзя было написать "Тонкая настройка"? Русофобы, *ля.
| |
|