Re: [FUG-BR] RES: tuning de rede - FreeBSD 7.3

2011-02-24 Por tôpico kmkz bleh
Pessoal,

fiz um teste aqui pingando o ip que está na placa bce0, ou seja, pingando
dentro do servidor, e apresentou perda de pacote:

gw# ping 10.20.0.1
PING 10.20.0.1 (10.20.0.1): 56 data bytes
64 bytes from 10.20.0.1: icmp_seq=0 ttl=64 time=0.277 ms
64 bytes from 10.20.0.1: icmp_seq=1 ttl=64 time=0.032 ms
64 bytes from 10.20.0.1: icmp_seq=2 ttl=64 time=0.043 ms
64 bytes from 10.20.0.1: icmp_seq=3 ttl=64 time=0.066 ms
64 bytes from 10.20.0.1: icmp_seq=4 ttl=64 time=0.160 ms
64 bytes from 10.20.0.1: icmp_seq=5 ttl=64 time=0.090 ms
64 bytes from 10.20.0.1: icmp_seq=6 ttl=64 time=0.076 ms
64 bytes from 10.20.0.1: icmp_seq=7 ttl=64 time=0.032 ms
64 bytes from 10.20.0.1: icmp_seq=8 ttl=64 time=0.144 ms
64 bytes from 10.20.0.1: icmp_seq=27 ttl=64 time=8.071 ms
64 bytes from 10.20.0.1: icmp_seq=32 ttl=64 time=58.667 ms
64 bytes from 10.20.0.1: icmp_seq=35 ttl=64 time=21.965 ms
64 bytes from 10.20.0.1: icmp_seq=36 ttl=64 time=6.982 ms
64 bytes from 10.20.0.1: icmp_seq=44 ttl=64 time=12.355 ms
64 bytes from 10.20.0.1: icmp_seq=45 ttl=64 time=44.653 ms
64 bytes from 10.20.0.1: icmp_seq=57 ttl=64 time=36.951 ms
64 bytes from 10.20.0.1: icmp_seq=61 ttl=64 time=8.009 ms
64 bytes from 10.20.0.1: icmp_seq=71 ttl=64 time=7.947 ms
64 bytes from 10.20.0.1: icmp_seq=73 ttl=64 time=7.985 ms
64 bytes from 10.20.0.1: icmp_seq=76 ttl=64 time=76.018 ms
^C
--- 10.20.0.1 ping statistics ---
82 packets transmitted, 20 packets received, 75.6% packet loss
round-trip min/avg/max/stddev = 0.032/14.526/76.018/21.564 ms

gw# ifconfig bce0
bce0: flags=8843 metric 0 mtu 1500

options=1bb
ether 1c:c1:de:08:de:90
inet 10.20.0.1 netmask 0xfffc broadcast 10.20.0.3
media: Ethernet 1000baseTX 
status: active


Em 23 de fevereiro de 2011 14:29, kmkz bleh  escreveu:

> Oi Eduardo,
>
> Obrigado pela atenção.
>
> Já tentei usar FreeBSD série 8. Melhorou em alguns aspectos mas tive uma
> série de problemas. O bgp demorava fechar sessão, máquina travando
> constantemente com PANIC, na hora de rebootar tinha que tirar cabo de rede
> da placa senão voltava o PANIC, e na hora que ela estava no ar com tudo
> funcionando, após algumas horas o named simplesmente parava de responder. O
> processo continuava ativo e não morria em hipótese alguma (tentei kill,
> restart, stop, etc). Somente reiniciando o servidor causando mais transtorno
> ainda.
>
> Enfim, a experiência não foi boa.
>
> Quando coloquei o 7.3 pararam todos esses problemas, mas começou a
> apresentar esse desempenho ruim logo em seguida. É a única coisa que tenho a
> queixar.
>
> Verifiquei as variávies para o netisr e tenho as seguintes:
>
> gw# sysctl -a |grep net.isr
> net.isr.swi_count: -1834575374
> net.isr.drop: 0
> net.isr.queued: 752912
> net.isr.deferred: 1770919304
> net.isr.directed: 477816393
> net.isr.count: -2046394068
> net.isr.direct: 0
>
> A respeito do flowtable não tem ele no 7.3. Inclusive quando usei a série
> 8, uma dos problemas que fazia a máquina travar depois que ativava o bgp era
> exatamente o flowtable. Até pensei que os problemas estavam resolvidos
> depois que desativei esta opção e vi o bgp rodando, mas, a alegria durou
> pouco.
>
> O kernel não foi compilado com ZERO_COPY_SOCKETS. Usei as opções abaixo
> para compilar:
>
> device  pf
> device  pflog
> device  pfsync
> device  carp
>
> options IPFIREWALL  #firewall
> options IPFIREWALL_VERBOSE  #enable logging to syslogd(8)
> options IPFIREWALL_VERBOSE_LIMIT=1000#limit verbosity
> options IPFIREWALL_DEFAULT_TO_ACCEPT
> options IPDIVERT
> options IPSTEALTH
> options IPFIREWALL_FORWARD
> options DUMMYNET
> options HZ=1000
>
> options ALTQ
> options ALTQ_CBQ
> options ALTQ_RED
> options ALTQ_RIO
> options ALTQ_HFSC
> options ALTQ_CDNR
> options ALTQ_PRIQ
>
> Desde já agradeço.
>
> Em 23 de fevereiro de 2011 12:30, Eduardo Schoedler <
> eschoed...@viavale.com.br> escreveu:
>
> A parte de network do Freebsd 8.2-PRERELEASE está bem melhor que a do 7.x.
>> Tomei uma surra dos drivers bce e igb, mas agora está funcionando.
>> As bce não são grande coisa, não aceitam polling e também a moderação de
>> interrupção dela não é muito boa.
>> As Intel são muito melhores.
>>
>> Você pode tentar mexer no netisr:
>>
>> # Some useful netisr tunables. See sysctl net.isr
>> #net.isr.bindthreads=1
>> #net.isr.numthreads=4
>> #net.isr.defaultqlimit=4096
>>
>> Tome cuidado com o flowtable, não sei se tem na versão 7.x:
>> # Flowtable - flow caching mechanism
>> net.inet.flowtable.enable=0
>>
>> você compilou o kernel com a opção:
>> options   ZERO_COPY_SOCKETS
>>
>> Algumas urls para ajuda:
>>
>> http://serverfault.com/questions/64356/freebsd-performance-tuning-sysctls-lo
>> ader-conf-kernel
>>
>> http://www.cymru.com/Documents/ip-stack-tuning.html
>>
>> http://lists.freebsd.org/pipermail/freebsd-performance/2009-December/

Re: [FUG-BR] RES: tuning de rede - FreeBSD 7.3

2011-02-23 Por tôpico kmkz bleh
Oi Eduardo,

Obrigado pela atenção.

Já tentei usar FreeBSD série 8. Melhorou em alguns aspectos mas tive uma
série de problemas. O bgp demorava fechar sessão, máquina travando
constantemente com PANIC, na hora de rebootar tinha que tirar cabo de rede
da placa senão voltava o PANIC, e na hora que ela estava no ar com tudo
funcionando, após algumas horas o named simplesmente parava de responder. O
processo continuava ativo e não morria em hipótese alguma (tentei kill,
restart, stop, etc). Somente reiniciando o servidor causando mais transtorno
ainda.

Enfim, a experiência não foi boa.

Quando coloquei o 7.3 pararam todos esses problemas, mas começou a
apresentar esse desempenho ruim logo em seguida. É a única coisa que tenho a
queixar.

Verifiquei as variávies para o netisr e tenho as seguintes:

gw# sysctl -a |grep net.isr
net.isr.swi_count: -1834575374
net.isr.drop: 0
net.isr.queued: 752912
net.isr.deferred: 1770919304
net.isr.directed: 477816393
net.isr.count: -2046394068
net.isr.direct: 0

A respeito do flowtable não tem ele no 7.3. Inclusive quando usei a série 8,
uma dos problemas que fazia a máquina travar depois que ativava o bgp era
exatamente o flowtable. Até pensei que os problemas estavam resolvidos
depois que desativei esta opção e vi o bgp rodando, mas, a alegria durou
pouco.

O kernel não foi compilado com ZERO_COPY_SOCKETS. Usei as opções abaixo para
compilar:

device  pf
device  pflog
device  pfsync
device  carp

options IPFIREWALL  #firewall
options IPFIREWALL_VERBOSE  #enable logging to syslogd(8)
options IPFIREWALL_VERBOSE_LIMIT=1000#limit verbosity
options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPDIVERT
options IPSTEALTH
options IPFIREWALL_FORWARD
options DUMMYNET
options HZ=1000

options ALTQ
options ALTQ_CBQ
options ALTQ_RED
options ALTQ_RIO
options ALTQ_HFSC
options ALTQ_CDNR
options ALTQ_PRIQ

Desde já agradeço.

Em 23 de fevereiro de 2011 12:30, Eduardo Schoedler <
eschoed...@viavale.com.br> escreveu:

> A parte de network do Freebsd 8.2-PRERELEASE está bem melhor que a do 7.x.
> Tomei uma surra dos drivers bce e igb, mas agora está funcionando.
> As bce não são grande coisa, não aceitam polling e também a moderação de
> interrupção dela não é muito boa.
> As Intel são muito melhores.
>
> Você pode tentar mexer no netisr:
>
> # Some useful netisr tunables. See sysctl net.isr
> #net.isr.bindthreads=1
> #net.isr.numthreads=4
> #net.isr.defaultqlimit=4096
>
> Tome cuidado com o flowtable, não sei se tem na versão 7.x:
> # Flowtable - flow caching mechanism
> net.inet.flowtable.enable=0
>
> você compilou o kernel com a opção:
> options   ZERO_COPY_SOCKETS
>
> Algumas urls para ajuda:
>
> http://serverfault.com/questions/64356/freebsd-performance-tuning-sysctls-lo
> ader-conf-kernel
>
> http://www.cymru.com/Documents/ip-stack-tuning.html
>
> http://lists.freebsd.org/pipermail/freebsd-performance/2009-December/003909.
> html
> http://tunggul.staff.uns.ac.id/2008/08/07/tuning-freebsd-router/
> http://www.fug.com.br/historico/html/freebsd/2010-12/msg00250.html
>
> http://unix.derkeiler.com/Mailing-Lists/FreeBSD/performance/2005-01/0061.htm
> l
>
>
> Rolou também um thread minha aqui no FUG sobre performance de rede... mas
> tudo em 8.x.
>
>
> Abs.
>
> --
> Eduardo Schoedler
>
>
>
>
-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


[FUG-BR] RES: tuning de rede - FreeBSD 7.3

2011-02-23 Por tôpico Eduardo Schoedler
A parte de network do Freebsd 8.2-PRERELEASE está bem melhor que a do 7.x.
Tomei uma surra dos drivers bce e igb, mas agora está funcionando.
As bce não são grande coisa, não aceitam polling e também a moderação de
interrupção dela não é muito boa.
As Intel são muito melhores.

Você pode tentar mexer no netisr:

# Some useful netisr tunables. See sysctl net.isr
#net.isr.bindthreads=1
#net.isr.numthreads=4
#net.isr.defaultqlimit=4096

Tome cuidado com o flowtable, não sei se tem na versão 7.x:
# Flowtable - flow caching mechanism
net.inet.flowtable.enable=0

você compilou o kernel com a opção:
options   ZERO_COPY_SOCKETS

Algumas urls para ajuda:
http://serverfault.com/questions/64356/freebsd-performance-tuning-sysctls-lo
ader-conf-kernel

http://www.cymru.com/Documents/ip-stack-tuning.html
http://lists.freebsd.org/pipermail/freebsd-performance/2009-December/003909.
html
http://tunggul.staff.uns.ac.id/2008/08/07/tuning-freebsd-router/
http://www.fug.com.br/historico/html/freebsd/2010-12/msg00250.html
http://unix.derkeiler.com/Mailing-Lists/FreeBSD/performance/2005-01/0061.htm
l


Rolou também um thread minha aqui no FUG sobre performance de rede... mas
tudo em 8.x.


Abs.

--
Eduardo Schoedler



> -Mensagem original-
> De: freebsd-boun...@fug.com.br [mailto:freebsd-boun...@fug.com.br] Em
> nome de kmkz bleh
> Enviada em: quarta-feira, 23 de fevereiro de 2011 12:19
> Para: freebsd@fug.com.br
> Assunto: [FUG-BR] tuning de rede - FreeBSD 7.3
> 
> Bom dia pessoal.
> 
> Tenho um servidor FreeBSD 7.3 com 8 placas de rede com chipset Intel e
> Broadcom. Este é o servidor gateway da minha rede no qual rodo:
> 
> pf
> named (base)
> snmp
> openbgp
> 
> Possuo três sessões BGP Full e uma Partial.
> 
> O que acontece é que estou tendo uma performance muito ruim com relação
> a placa Broadcom. Possuo um CMTS ligado diretamente na placa sem switch
> no meio, e estou tendo perda de pacote até o CMTS. Já realizei troca de
> cabo e não resolveu.
> 
> gw# ifconfig bce0
> bce0: flags=8843 metric 0 mtu
> 1500
> 
> options=1bb ,TSO4>
> ether 1c:c1:de:08:de:90
> inet 10.20.0.1 netmask 0xfffc broadcast 10.20.0.3
> media: Ethernet 1000baseTX 
> status: active
> 
> Verificando com 'top -S' o uso de interrupção na bce0 é bastante alto.
> O tráfego nesta placa passa dos 100Mbps na maior parte do tempo então
> consequentemente vai consumir mais cpu. Porém, através de uma sysctl
> abaixo consegui fazer com que esse uso fosse reduzido, mas continuo
> perdendo pacote até o CMTS:
> 
> net.isr.direct=0
> 
> No momento o 'top -S' me mostra o seguinte:
> 
>   PID USERNAME  THR PRI NICE   SIZERES STATE   C   TIME   WCPU
> COMMAND
>13 root1 171 ki31 0K 8K CPU11  45.3H 96.48%
> idle:
> cpu1
>12 root1 171 ki31 0K 8K RUN 2  43.0H 90.77%
> idle:
> cpu2
>14 root1 171 ki31 0K 8K RUN 0  40.0H 77.20%
> idle:
> cpu0
>11 root1 171 ki31 0K 8K RUN 3  38.1H 73.00%
> idle:
> cpu3
>15 root1 -44- 0K 8K WAIT3  19.8H 52.49%
> swi1: net
>29 root1 -68- 0K 8K WAIT2 151:40  5.57%
> irq257:
> bce0
>40 root1 -68- 0K 8K WAIT2  85:46  2.10%
> irq265:
> em3
> 
> Se eu ativo a sysctl acima, tenho o seguinte:
> 
>   PID USERNAME  THR PRI NICE   SIZERES STATE   C   TIME   WCPU
> COMMAND
>11 root1 171 ki31 0K 8K CPU33  38.2H 92.87%
> idle:
> cpu3
>13 root1 171 ki31 0K 8K CPU11  45.4H 84.38%
> idle:
> cpu1
>14 root1 171 ki31 0K 8K RUN 0  40.1H 79.39%
> idle:
> cpu0
>12 root1 171 ki31 0K 8K CPU22  43.1H 62.35%
> idle:
> cpu2
>29 root1 -68- 0K 8K WAIT2 151:55 25.59%
> irq257:
> bce0
>40 root1 -68- 0K 8K WAIT2  85:55 21.58%
> irq265:
> em3
> 
> Abaixo, resultado com netstat na interface:
> 
> gw# netstat -I bce0 -w 1
> input (bce0)   output
>packets  errs  bytespackets  errs  bytes colls
>  15311 04469692  20459 0   17440474 0
>  15631 04589699  21200 0   18848188 0
>  15608 04497235  20683 0   17818101 0
>  15529 04446912  20156 0   17090265 0
>  14414 04071791  17597 0   14750674 0
>  14713 04270162  18578 0   15301508 0
>  15030 04332616  18052 0   15021321 0
>  13900 04053945  17033 0   13895997 0
>  14095 04051387  18936 0   16074572 0
>  15515 04518106  20720 0   17377395 0
>  15606 04468322  20386 0   17128122 0
>  15494 04611991  20409 0   17379323 0
>  15375 04584624  20574 0   17758892 0
>  15610 04435950  21340 0   1865