Страница 1 из 1

FreeBSD тюнинг сетевых и dummynet

Добавлено: 2015-01-22 22:12:44
Lgo
Уважаемые форумчане,

Появилась необходимость сделать тюнинг сетевой подсистемы FreeBSD и шейпера Dummynet в частности. В интернете на эту тему куча информации, но история использования FreeBSD растянута уже на много лет, и не совсем понятно какие методы актуальны а какие нет. Я собрал самые интересные на мой взгляд советы и прошу коротко прокомментировать, что есть что.

Да, система FreeBSD-10.1 Stable (сейчас обновляю как раз), сетевые igb Intel 82575EB, процессор Xeon E5620 2.40GHz 4 ядра, года этак 2012, Памяти 6 Гб.

1. Polling. Актуальна ли эта техника? Если да, то какое значение options HZ= нужно выставлять?

2. Рекоммендация исправить #define HASHSIZE 16 в /usr/src/sys/netinet/ip_dummynet.c. Такого файла не нашел. Это уже исправили или как то можно настроить через системные переменные?

3. Привязка dummynet к 1 ядру. Стоит ли это делать?

4. Параметры net.inet.ip.dummynet.io_fast=1 и net.inet.ip.fastforwarding=0. Встречал много советов «обязательно включать» и «ни в коем случае не включать». Кому верить?

5. Прокомментируйте пожалуйста другие рекомендованные тюны:

Код: Выделить всё

dev.igb.0.rx_processing_limit=4096
dev.igb.1.rx_processing_limit=4096
hw.igb.rxd=4096
hw.igb.txd=4096
hw.igb.max_interrupt_rate=32000

net.isr.defaultqlimit=4096
net.link.ifqmaxlen=10240
net.route.netisr_maxqlen=4096

sysctl kern.ipc.nmbclusters=400000
sysctl kern.ipc.maxsockbuf=83886080
sysctl kern.ipc.shmmax=67108864

sysctl net.inet.ip.dummynet.hash_size=65535 (встречал также 64) Такая большая разница?
sysctl net.inet.ip.dummynet.max_chain_len=16
sysctl net.inet.ip.dummynet.pipe_slot_limit=2048
sysctl net.inet.ip.intr_queue_maxlen=8192
sysctl net.inet.ip.fw.dyn_buckets=1024
sysctl net.inet.ip.intr_queue_maxlen=10240

sysctl net.inet.ip.fw.curr_dyn_buckets=256
sysctl net.inet.ip.fw.dyn_buckets=256

sysctl kern.ipc.somaxconn=32768
sysctl kern.ipc.nmbclusters=524288
sysctl kern.ipc.maxsockbuf=83886080

sysctl net.local.stream.recvspace=65535
sysctl net.local.stream.sendspace=65535

sysctl net.inet.ip.dummynet.expire=0
Относится ли к сети?

Код: Выделить всё

sysctl kern.maxfiles=204800
sysctl kern.maxfilesperproc=200000
sysctl kern.random.sys.harvest.ethernet=0
sysctl kern.random.sys.harvest.interrupt=0
Заранее спасибо!

FreeBSD тюнинг сетевых и dummynet

Добавлено: 2015-01-23 8:07:32
Alex Keda
А потестить и выяснить - не?

FreeBSD тюнинг сетевых и dummynet

Добавлено: 2015-01-23 9:32:16
Alvares
Собственно тюнинг-то для чего? Ради тюнинга или что-то с чем-то не справляется?

FreeBSD тюнинг сетевых и dummynet

Добавлено: 2015-01-23 12:30:13
skeletor
1) Актуально было до 8.Х, в 9.Х и выше - нет.
2) Для чего?
3) Только если реально нужно. Смотреть по нагрузке на CPU
4) Только тестам на своём сервере
5) Это базовые рекомендации, можно использовать.

FreeBSD тюнинг сетевых и dummynet

Добавлено: 2015-01-23 22:17:17
Lgo
Тюн нужен потому что машина не справляется с относительно простыми задачами. При ~300Мегабитах трафика, у пользователей которые ходят через dummynet скорость ниже плинтуса. При меньшей нагрузке такого не было, в какие то параметры думинет и упирается. Загрузка процессора - %20.

1.) Polling. Понятно.
2.) hashsize 16. Пишут что помогает ускорить dummynet. Вероятно устарело.
3.) Привязка к 1 процессору. Опять же, пишут что ускоряет dummynet.
4,5.) Буду пробовать. Возможно какие то параметры стоит увеличить? Или наоборот, не трогать?

p.s.: Просто все попробовать - не с руки. За роутером около 1000 пользователей, и любое падение - критично.
И тестить по принципу "Сколько людей позвонит с жалобами на инет" тоже не вариант.

p.p.s: Я пробовал применить несколько тюнов в sysctl, какая то комбинация привела к тому, что через dummynet вообще трафик не бегал.

FreeBSD тюнинг сетевых и dummynet

Добавлено: 2015-01-23 23:20:25
_skeletor
3) Нужно это делать грамотно и обязательно понять, стоит ли делать или нет. Можно как мануал использовать это http://muff.kiev.ua/content/dummynet-pr ... ssa-k-cpu0 , но если нагрузка значительная. А если у вас до 10%, то нет смысла этим заниматься.
4.5) Да, можно попробовать. В своё время были проблемы с em/igb и, поэтому, собрал не мало ссылок http://skeletor.org.ua/?p=3976 , каждую из которых следует внимательно прочесть.
Касательно sysctl, можно конечно много рассуждать. Мне когда-то помогли значения http://skeletor.org.ua/?p=179 .

PS. Тут единого рецепта нет. Нужно много читать, пробовать.

FreeBSD тюнинг сетевых и dummynet

Добавлено: 2015-01-25 14:57:11
Lgo
Я, в общем, этого и просил, толкового совета и направление дальше.
Буду читать, разбираться. Спасибо!