Eu tenho o roteador do FreeBSD:
#uname
9.1-STABLE FreeBSD 9.1-STABLE #0: Fri Jan 18 16:20:47 YEKT 2013
É um computador poderoso com muita memória
#top -S
last pid: 45076; load averages: 1.54, 1.46, 1.29 up 0+21:13:28 19:23:46
84 processes: 2 running, 81 sleeping, 1 waiting
CPU: 3.1% user, 0.0% nice, 32.1% system, 5.3% interrupt, 59.5% idle
Mem: 390M Active, 1441M Inact, 785M Wired, 799M Buf, 5008M Free
Swap: 8192M Total, 8192M Free
PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND
11 root 4 155 ki31 0K 64K RUN 3 71.4H 254.83% idle
13 root 4 -16 - 0K 64K sleep 0 101:52 103.03% ng_queue
0 root 14 -92 0 0K 224K - 2 229:44 16.55% kernel
12 root 17 -84 - 0K 272K WAIT 0 213:32 15.67% intr
40228 root 1 22 0 51060K 25084K select 0 20:27 1.66% snmpd
15052 root 1 52 0 104M 22204K select 2 4:36 0.98% mpd5
19 root 1 16 - 0K 16K syncer 1 0:48 0.20% syncer
Suas tarefas são: NAT via ng_nat e servidor PPPoE via mpd5.
Tráfego através de - cerca de 300Mbit / s, cerca de 40kpps no pico.
Sessões de Pppoe criadas - 350 max.
ng_nat é configurado pelo script:
/usr/sbin/ngctl -f- <<-EOF
mkpeer ipfw: nat %s out
name ipfw:%s %s
connect ipfw: %s: %s in
msg %s: setaliasaddr 1.1.%s
Existem 20 ng_nat, com cerca de 150 clientes.
Às vezes, o tráfego via nat pára. Quando isso acontece, o vmstat reporta muitas contagens FAIL
vmstat -z | grep -i netgraph
ITEM SIZE LIMIT USED FREE REQ FAIL SLEEP
NetGraph items: 72, 10266, 1, 376,39178965, 0, 0
NetGraph data items: 72, 10266, 9, 10257,2327948820,2131611,4033
Eu tentei aumentar
net.graph.maxdata=10240
net.graph.maxalloc=10240
mas isso não funciona.
É um novo problema (1-2 semanas). A configuração estava funcionando bem por cerca de 5 meses e nenhuma alteração de configuração foi feita antes dos problemas serem iniciados.
Nas últimas semanas, aumentamos ligeiramente o tráfego (de 270 para 300 mbits) e pouco mais de sessões pppoe (300- > 350).
Ajude-me por favor, como encontrar e resolver meu problema?
Upd:
Informações sobre placas de rede:
# pciconf -lv | grep -B3 network
em0@pci0:0:25:0: class=0x020000 card=0x35788086 chip=0x15028086 rev=0x05 hdr=0x00
vendor = 'Intel Corporation'
device = '82579LM Gigabit Network Connection'
class = network
--
em1@pci0:2:0:0: class=0x020000 card=0x35788086 chip=0x10d38086 rev=0x00 hdr=0x00
vendor = 'Intel Corporation'
device = '82574L Gigabit Network Connection'
class = network
UPD:
Há 2 "top" de saída
link
quando eu abro net.isr.dispatch para híbrido.
Depois disso, eu tenho toneladas de processos de mpd (não sei por que) e uma CPU a 100% de interrupção, e depois de 10 minutos de trabalho ela foi reinicializada, devido ao grande pacote perdido.
UPD:
Aconteceu novamente
Há saída "superior" antes da reinicialização e depois
link
parece um problema no processo ng_queue, que consome muita CPU.
Desde o meu primeiro post, há muito mais sessões e tráfegos.
Cerca de 400 pppoe e 450Mbit / s