[FUG-BR] RES: freebsd 8.2 - tuning de rede

kmkz bleh jsibsd em gmail.com
Terça Março 15 09:24:25 BRT 2011


Luiz,

Em 15 de março de 2011 08:46, Luiz Otavio O Souza <lists.br em gmail.com>escreveu:

> On Mar 15, 2011, at 12:28 AM, kmkz bleh wrote:
>
> > Pessoal,
> >
> > mais uma informação que acho que pode ajudar:
> >
> > gw# sysctl net.inet.ip.intr_queue_drops
> > net.inet.ip.intr_queue_drops: 36943
>
>
> Esse é o número de pacotes descartados no processamento de "entrada":
>

Certo.


>
> (sys/netinet/ip_input.c)
>    280 SYSCTL_PROC(_net_inet_ip, IPCTL_INTRQDROPS, intr_queue_drops,
>    281     CTLTYPE_INT|CTLFLAG_RD, 0, 0, sysctl_netinet_intr_queue_drops,
> "I",
>    282     "Number of packets dropped from the IP input queue");
>
> E que depende do tamanho máximo da fila, configurado aqui:
>
> # sysctl net.inet.ip.intr_queue_maxlen
> net.inet.ip.intr_queue_maxlen: 256
>
> (256 me parece pouco para um ambiente de alto trafego, com várias
> placas/interfaces)
>
> Esses pacotes são enfileirados para processamento pelo 'netisr' (caso isso
> ajude com os tunings...)
>
> O netisr tem também suas próprias filas (que eu não parei para olhar o que
> cada uma faz...):
>
> # sysctl net.isr
> net.isr.numthreads: 1
> net.isr.maxprot: 16
> net.isr.defaultqlimit: 256
> net.isr.maxqlimit: 10240
> net.isr.bindthreads: 0
> net.isr.maxthreads: 1
> net.isr.direct: 1
> net.isr.direct_force: 1
> # sysctl net.route
> net.route.netisr_maxqlen: 256
>
>
>
> > gw# vmstat -i
> > interrupt                          total       rate
> > irq28: ciss0                       73109         67
> > irq1: atkbd0                          10          0
> > irq17: atapci0+                      242          0
> > irq22: uhci0                           2          0
> > cpu0: timer                      2152906       1998
> > irq256: em0                      2386318       2215
> > irq257: em0                        21311         19
> > irq258: em0                            2          0
> > irq259: em1                          665          0
> > irq260: bce0                    11311742      10503
>
> O rate de interrupcoes nessa placa esta bem alto, experimenta ligar o
> polling nessa interface e faça alguns testes de como ela se comporta.
>

Exatamente. Está muito alto mesmo. Acho que já usei polling a uns tempos
atrás mas parece que a situação piorou... comecei a ter mais perda de
pacote. Não digo com certeza porque já faz algum tempo, mas vou ver se ativo
polling denovo pra ver.

A propósito, bce suporta polling?


>
>
> > irq261: bce1                       59430         55
> > irq262: em2                      1954193       1814
> > irq263: em2                      2460842       2284
> > irq264: em2                            1          0
> > irq265: em3                      6807389       6320
> > irq266: em3                      6870682       6379
> > irq267: em3                           14          0
>
> Aqui também pode compensar...
>
> > irq268: bge0                     1936273       1797
> > irq269: bge1                     1504853       1397
> > cpu2: timer                      2144394       1991
> > cpu3: timer                      2144549       1991
> > cpu1: timer                      2144367       1991
> > Total                           43973294      40829
> > Outra coisa, vi que meu servidor deu PANIC com a msg abaixo:
> >
> > reboot after panic: kmem_malloc(4096): kmem_map too small: 335544320
> total
> > allocated
> >
> > Com 4GB de RAM, o que eu devo fazer pra resolver esse problema? Qual
> valor
> > devo colocar no KVA_PAGES pra compilar o kernel, seria 1024? Meu kernel
> ta
> > compilado com a opção PAE.
>
>
>
> Só uma pergunta... você esta utilizando ZFS nesse servidor ? (esse erro
> "kmem_map too small" é muito comum nessa situação, embora eu não acredite
> que você esteja utilizando ZFS em um router...)
>
> Não faz isso não... O PAE não faz o que você pensa que ele faz... por favor
> remova ele... é melhor você não aproveitar toda a memória em i386 do que
> utilizar o PAE (geralmente). Fiquei com o i386 - sem PAE - ou vá para o
> amd64 de vez.
>
> No amd64 você não terá problemas (ou no máximo, como se faz com o ZFS, será
> preciso limitar o valor máximo para o kernel).
>

Não, não estou usando ZFS não.

Eu vi mesmo que o pessoal que teve esse problema utilizava ZFS. Não é o meu
caso. Vi também que tem uma sysctl pra aumentar via loader.conf, mas que pra
utiliza-la precisa setar o KVA_PAGES no kernel.

O problema é que mesmo sem o PAE ocorre o panic, pelo menos no FreeBSD 8.2
aconteceu...


>
> Att.,
> Luiz
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>


Mais detalhes sobre a lista de discussão freebsd