Jump to content

Recommended Posts

Posted (edited)

Добрый вечер.

Может кто-нибудь поделиться тюнингом под dummynet + freebsd 8.2 на скоростаях порядка 1G в каждую сторону? (Это брас с mpd5.5, но от тунелей нагрузка мала).

Последнее время пользователи начали потихоньку жаловаться на скорость, хотя по нагрузке проблем не вижу (меньше 50% все cpu, HT убит в биосе).

Система: SR1600UR + 2xX5650 + 82598 (10G).

 

Забыл добавить тафифы скоростные 8, 16, 32, 64... и прочие мелкие.

Edited by Hawk128
  • Replies 53
  • Created
  • Last Reply

Top Posters In This Topic

Posted (edited)

    1 users    Load  2.79  2.72  2.83                  Jan 12 23:47

Mem:KB    REAL            VIRTUAL                       VN PAGER   SWAP PAGER
       Tot   Share      Tot    Share    Free           in   out     in   out
Act  421996    8892   821288     8624 6906068  count
All  569804    8892 1074676k     8624          pages
Proc:                                                            Interrupts
 r   p   d   s   w   Csw  Trp  Sys  Int  Sof  Flt    221 cow    157k total
            34      618k 2110  11k 133k 1055  986    471 zfod        atapci0 18
                                                         ozfod       uhci0 uhci
16.2%Sys  11.4%Intr  0.4%User  0.0%Nice 72.0%Idle        %ozfod  2000 cpu0: time
|    |    |    |    |    |    |    |    |    |    |       daefr 12144 ix0:que 0
========++++++                                        355 prcfr 16580 ix0:que 1
                                       39 dtbuf     1183 totfr 17517 ix0:que 2
Namei     Name-cache   Dir-cache    222953 desvn          react 16653 ix0:que 3
  Calls    hits   %    hits   %    162508 numvn          pdwak 18207 ix0:que 4
    604     604 100                 55736 frevn          pdpgs 18797 ix0:que 5
                                                         intrn 16650 ix0:que 6
Disks   ad4                                       1308124 wire  16740 ix0:que 7
KB/t  16.00                                        330768 act         ix0:link 2
tps       0                                       3537560 inact  2000 cpu2: time
MB/s   0.01                                            24 cache  2000 cpu7: time
%busy     0                                       6906036 free   2000 cpu4: time
                                                 1260528 buf    2000 cpu11: tim
                                                                2000 cpu5: time
                                                                2000 cpu10: tim
                                                                2000 cpu1: time
                                                                2000 cpu3: time
                                                                2000 cpu8: time
                                                                2000 cpu6: time
                                                                2000 cpu9: time

 

Чуть позже ЧНН.

Пробовал отключать шейпер - немного падает общая нагрузка, каналы оба в потолок (раза в полтора в ЧНН).

Edited by Hawk128
Posted

gw01# uname -a
FreeBSD gw01.local 8.2-STABLE FreeBSD 8.2-STABLE #0: Mon Oct 10 10:30:08 MSD 2011     hawk@gw01.local:/usr/obj/usr/src/sys/Hawk  amd64

 

gw01# cat /etc/sysctl.conf
# $FreeBSD: src/etc/sysctl.conf,v 1.8.34.1.6.1 2010/12/21 17:09:25 kensmith Exp $
#
#  This file is read when going to multi-user and its contents piped thru
#  ``sysctl'' to adjust kernel values.  ``man 5 sysctl.conf'' for details.
#

# Uncomment this to prevent users from seeing information about processes that
# are being run under another UID.
#security.bsd.see_other_uids=0
# net.inet.ip.fw.one_pass=0
net.inet.icmp.icmplim=20000
# net.inet.tcp.blackhole=1
# net.inet.udp.blackhole=1
net.inet.ip.fastforwarding=1
net.inet.ip.dummynet.io_fast=1
kern.threads.max_threads_per_proc=5000
kern.ipc.nmbclusters=500000
kern.ipc.maxsockbuf=83886080
kern.maxfiles=2048000
kern.maxfilesperproc=200000
net.inet.tcp.sendspace=3217968
net.inet.tcp.recvspace=3217968
kern.ipc.somaxconn=32768
# net.graph.maxdgram=1024000
# net.graph.recvspace=1024000
net.graph.maxdgram=8388608
net.graph.recvspace=8388608
# for rtsock
net.route.netisr_maxqlen=4096
# for other protocols (IP & PPPoE?)
net.isr.defaultqlimit=4096
dev.ix.0.rx_processing_limit=4096
dev.ix.1.rx_processing_limit=4096
net.inet.ip.dummynet.hash_size=65535
net.inet.ip.fw.dyn_buckets=65535

 

gw01# cat /boot/loader.conf 
autoboot_delay="3"
# alias_ftp_load="YES"
net.isr.maxthreads=12
hw.igb.rx_process_limit=4096
hw.ix.rx_process_limit=4096
net.graph.maxalloc=65536
net.graph.maxdata=32768
vm.kmem_size=1G
hw.igb.rxd=4096
hw.igb.txd=4096
hw.ix.rxd=4096
hw.ix.txd=4096
hw.igb.max_interrupt_rate=32000

 

ix0@pci0:2:0:0: class=0x020000 card=0xa01f8086 chip=0x10ec8086 rev=0x01 hdr=0x00
   vendor     = 'Intel Corporation'
   class      = network
   subclass   = ethernet
ix1@pci0:2:0:1: class=0x020000 card=0xa01f8086 chip=0x10ec8086 rev=0x01 hdr=0x00
   vendor     = 'Intel Corporation'
   class      = network
   subclass   = ethernet

 

джамбо-фрейм на свитче включен?

Глобально выключен:

DGS-3627G:admin#show jumbo_frame   
Command: show jumbo_frame

Jumbo Frame Global State : Disable

Maximum Jumbo Frame Size : 1536 Bytes

Port       Jumbo Frame State        
-------    --------------------     
1          Enable                    
2          Enable                    
3          Enable                    
4          Enable                    
5          Enable                    
6          Enable                    
7          Enable                    
8          Enable                    
9          Enable                    
10         Enable                    
11         Enable                    
12         Enable                    
13         Enable                    
14         Enable                    
15         Enable                    
16         Enable                    
17         Enable                                                              
18         Enable                    
19         Enable                    
20         Enable                    
21         Enable                    
22         Enable                    
23         Enable                    
24         Enable                    
25         Enable                    
26         Enable                    
27         Enable               

Posted (edited)

Добавьте это:

 

# увеличиваем диапазон портов
net.inet.ip.portrange.first=1024
net.inet.ip.portrange.last=65535

 

А с этими опциями поаккуратнее, может потребоваться ручное вмешательство:

 

# увеличиваем число сетевых буферов
# на тот случай, если работу netisr стабилизируют в будущем, увеличиваем длину очереди под входящие пакеты:
net.inet.ip.intr_queue_maxlen=10240

 

 

включаем джамбофрейм на сетевухах, выставив MTU 8000-9000

Edited by vlad11
Posted (edited)

Добавьте это:

 

# увеличиваем диапазон портов
net.inet.ip.portrange.first=1024
net.inet.ip.portrange.last=65535

 

НАТа нет, диапазон вроде как ни при чем. Тем не менее вот что стоит по умолчанию:

net.inet.ip.portrange.last: 65535
net.inet.ip.portrange.first: 10000
net.inet.ip.portrange.lowlast: 600
net.inet.ip.portrange.lowfirst: 1023

 

А с этими опциями поаккуратнее, может потребоваться ручное вмешательство:

 

# увеличиваем число сетевых буферов
# на тот случай, если работу netisr стабилизируют в будущем, увеличиваем длину очереди под входящие пакеты:
net.inet.ip.intr_queue_maxlen=10240

 

А какие именно проблемы могут быть? Как выражаются? (Изначально 50 вроде было, малова-то...)

 

 

включаем джамбофрейм на сетевухах, выставив MTU 8000-9000

 

Попробую.

Edited by Hawk128
Posted (edited)

На какой хрен jumbo frame вы собираетесь включать на BRAS'е?! Вас не смущает, что от клиентов будут приходить пакеты средним размером эдак в 1000 байт, и уходить в мир с его ~1450 байтным ограничением на MTU?

 

Автору настоятельно рекомендую уходить от dummynet и использовать "родной" механизм ограничения скорости mpd5 через ng_car.

 

И кстати, раскрыть тему жалоб пользователей на скорость. В чём конкретно проблемы?

 

 

 

Edited by Dyr
Posted

Джамбо фреймы то причем ? на транзите то в интернет ?

 

top -PSH ?

прибить думинет к процессору не помогает ?

 

http://forum.nag.ru/forum/index.php?showtopic=61738&view=findpost&p=555850

 

И, кстати, на некоторых машинах получался странный фифект, что не безразлично к какому именно ядру прибито. поиграйтесь с разными ядрами.

Posted
top -PSH ?

 

А ещё лучше top - aSCHIP. Запоминается ещё легче, и информации нужной поболе. ;)

 

 

Posted

Вечером ТОП сделаю. Но там все чисто.

Дамми к процу конечно прибит, без этого он на гораздо меньшем трафике выделывался. Пробовал к 10-му, 4-му, 0-му прибивать, везде одинаково работает.

Жалуются на сильно недостающуюю скорость, 1.5 мбита вместо 20, например...

Насчет джамбо все так, конечно, но ради спортивного интереса между серверами сделаю, погоняю...

Posted

Жалуются только те, что через dummynet пробегают, или и остальные тоже?

 

sysctl net.inet.ip.dummynet покажете?

 

 

Posted

И пример пайпа ? гредов/размеров очередей каких потюнить ? чтобы меньше трафика в очередях сидело.

 

еще где-то видел жалобы что

 

net.inet.ip.dummynet.io_fast=1

 

на 8 работает хуже чем

 

net.inet.ip.dummynet.io_fast=0

Posted

Да они все через него бегают. Не бегают 2 чела всего - не показатель.

 

gw01# sysctl net.inet.ip.dummynet
net.inet.ip.dummynet.io_pkt_drop: 7367354387
net.inet.ip.dummynet.io_pkt_fast: 320461723403
net.inet.ip.dummynet.io_pkt: 475880924954
net.inet.ip.dummynet.queue_count: 0
net.inet.ip.dummynet.fsk_count: 42
net.inet.ip.dummynet.si_count: 1918
net.inet.ip.dummynet.schk_count: 84
net.inet.ip.dummynet.tick_lost: 0
net.inet.ip.dummynet.tick_diff: 103804
net.inet.ip.dummynet.tick_adjustment: 154190
net.inet.ip.dummynet.tick_delta_sum: 514
net.inet.ip.dummynet.tick_delta: 0
net.inet.ip.dummynet.red_max_pkt_size: 1500
net.inet.ip.dummynet.red_avg_pkt_size: 512
net.inet.ip.dummynet.red_lookup_depth: 256
net.inet.ip.dummynet.expire_cycle: 0
net.inet.ip.dummynet.expire: 1
net.inet.ip.dummynet.debug: 0
net.inet.ip.dummynet.io_fast: 1
net.inet.ip.dummynet.pipe_byte_limit: 1048576
net.inet.ip.dummynet.pipe_slot_limit: 100
net.inet.ip.dummynet.hash_size: 65535

 

ng_car пробовал, но он начал как-то плохо себя вести. Такое впечатлениие было, что слишком много нетграфовских нод в системе было... Ушел на дамминет с него, стало лучше заметно.

 

net.inet.ip.dummynet.io_fast=0 пробовал - проц сразу забивает на 100%

Posted

Примерно так:

 

#!/bin/sh

fw=/sbin/ipfw
ng=/usr/sbin/ngctl
# nat1_ip=178.217.96.1

${fw} -f flush
${fw} -f pipe flush
${fw} -f table all flush

${fw} pipe 107 config bw 1M mask dst-ip 0xffffffff
${fw} pipe 207 config bw 1M mask src-ip 0xffffffff
${fw} pipe 108 config bw 2M mask dst-ip 0xffffffff
${fw} pipe 208 config bw 2M mask src-ip 0xffffffff
${fw} pipe 109 config bw 512K mask dst-ip 0xffffffff
${fw} pipe 209 config bw 512K mask src-ip 0xffffffff
${fw} pipe 112 config bw 4M mask dst-ip 0xffffffff
${fw} pipe 212 config bw 4M mask src-ip 0xffffffff
${fw} pipe 113 config bw 6M mask dst-ip 0xffffffff
${fw} pipe 213 config bw 6M mask src-ip 0xffffffff
${fw} pipe 114 config bw 8M mask dst-ip 0xffffffff
${fw} pipe 214 config bw 8M mask src-ip 0xffffffff
${fw} pipe 115 config bw 10M mask dst-ip 0xffffffff
${fw} pipe 215 config bw 10M mask src-ip 0xffffffff
${fw} pipe 116 config bw 16M mask dst-ip 0xffffffff
${fw} pipe 216 config bw 16M mask src-ip 0xffffffff
${fw} pipe 117 config bw 20M mask dst-ip 0xffffffff
${fw} pipe 217 config bw 20M mask src-ip 0xffffffff
${fw} pipe 118 config bw 32M mask dst-ip 0xffffffff
${fw} pipe 218 config bw 32M mask src-ip 0xffffffff
${fw} pipe 119 config bw 64M mask dst-ip 0xffffffff
${fw} pipe 219 config bw 64M mask src-ip 0xffffffff

${fw} pipe 302 config bw 1M mask dst-ip 0xffffffff
${fw} pipe 402 config bw 1M mask src-ip 0xffffffff
${fw} pipe 303 config bw 1M mask dst-ip 0xffffffff
${fw} pipe 403 config bw 1M mask src-ip 0xffffffff
${fw} pipe 304 config bw 3M mask dst-ip 0xffffffff
${fw} pipe 404 config bw 3M mask src-ip 0xffffffff
${fw} pipe 305 config bw 5M mask dst-ip 0xffffffff
${fw} pipe 405 config bw 5M mask src-ip 0xffffffff
${fw} pipe 306 config bw 512K mask dst-ip 0xffffffff
${fw} pipe 406 config bw 512K mask src-ip 0xffffffff
${fw} pipe 307 config bw 1M mask dst-ip 0xffffffff
${fw} pipe 407 config bw 1M mask src-ip 0xffffffff
${fw} pipe 308 config bw 2M mask dst-ip 0xffffffff
${fw} pipe 408 config bw 2M mask src-ip 0xffffffff
${fw} pipe 309 config bw 3M mask dst-ip 0xffffffff
${fw} pipe 409 config bw 3M mask src-ip 0xffffffff
${fw} pipe 310 config bw 5M mask dst-ip 0xffffffff
${fw} pipe 410 config bw 5M mask src-ip 0xffffffff
${fw} pipe 310 config bw 10M mask dst-ip 0xffffffff
${fw} pipe 410 config bw 10M mask src-ip 0xffffffff


${fw} table 20 add 178.217.96.0/21
${fw} table 20 add 46.149.64.0/20
${fw} table 20 add 176.98.176.0/20

${fw} add 25 deny ip from 'table(25)' to any 25
${fw} add 50 fwd 10.11.0.4 ip from 200.9.1.0/24 to not 10.11.0.0/16
${fw} add 100 deny ip from 'table(0)' to any
${fw} add 105 allow ip from 'table(20)' to 'table(20)'
${fw} add 110 pipe tablearg ip from any to 'table(110)' in
${fw} add 120 pipe tablearg ip from 'table(120)' to any in

${fw} add 65530 allow ip from any to any

 

HZ=?

 

gw01# sysctl -a | grep hz
kern.clockrate: { hz = 1000, tick = 1000, profhz = 2000, stathz = 133 }
kern.dcons.poll_hz: 25
kern.hz: 1000
debug.psm.hz: 20

Posted

 

HZ=?

 

gw01# sysctl -a | grep hz
kern.clockrate: { hz = 1000, tick = 1000, profhz = 2000, stathz = 133 }
kern.dcons.poll_hz: 25
kern.hz: 1000
debug.psm.hz: 20

А он точно с таким HZ шейпит скорости больше 12 Мбит?

Попробуйте 5000-8000 выставить?

Posted (edited)

В ipfw лучше явным образом указать интерфейсы, и шейпить на выходе, а не на входе, как-то так:

 

$ipfw add 01000 pipe tablearg all from any to 'table(110)' xmit "ng*" // Incoming traffic shaping
$ipfw add 02000 pipe tablearg all from 'table(120)' to any xmit $ext_if        // Outgoing traffic shaping

Edited by Dyr
Posted

Размеры очередей бы потюнить надоть.. Причем мне так кажется, что для 2-3 мегабит и быстрее очередь укоротить бы надо до почти 0, чтобы почти полисер вышел. и гред какой настроить, чтобы намекнуть клиенту притормозить.

 

типа для мегабита было так

 

... queue 99 gred 0.002/24/49/0.1

что приведет к включению греда и незаполняемости в большинстве случаев очереди больше половины.

 

 

net.inet.ip.dummynet.expire: 1

 

Мне кажется что оно зло, и приводит к фрагментированию памяти и не более.

 

$ipfw add 01000 pipe tablearg all from any to 'table(110)' xmit "ng*" // Incoming traffic shaping

 

xmit "ng*" - ЗЛО!!! звездОчки в сад

 

И правила 110 и 120, они точно видят IP разначенные ?

Posted
xmit "ng*" - ЗЛО!!! звездОчки в сад

 

Дык mpd же, по другому интерфейсы не задашь.

 

Мне проще, у меня mpd нет ;)

 

 

Posted

А чего, не пофиксили ещё этот обход всех интерфейсов при звезде? Ну ок, убрать. Оставить только направление выхода (out вместо in).

 

 

Posted

Напрявление пробовал. Погоды не делало.

Про HZ может кто-нибудь ссулку кинуть как оно с DUMMYNET связанно и как работает?

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.