Problems with netgraph
Oleksandr Samoylyk
oleksandr at samoylyk.sumy.ua
Tue May 6 19:43:44 UTC 2008
Julian Elischer wrote:
> Oleksandr Samoylyk wrote:
>> Dear developers,
>>
>> Please read this thread:
>> http://lists.freebsd.org/pipermail/freebsd-net/2008-May/017891.html
>>
>> I'm using no encryption and no compression in mpd, so netgraph should
>> fly.
>> It seems to get bad after 500 sessions...
>>
>> In FreeBSD 6 - it's swi1: net - 100% CPU
>> In FreeBSD 7 - it's em0 taskq - 100% CPU
>
> unfortunatly I've been totally ignoring this thread because it said
> "trouble with em" in the topic..
> If you'd said
> trouble with mpd then maybe I'd have looked earlier..
>
>>
>> After playing with it I can make guess that's a netgraph problem.
>>
>> Maybe it's a poor design in netgraph the way it handle its tables and
>> it's is probably not designed to add so many interfaces.
>
> how many?
>
# vmstat -m | grep netgraph
netgraph_msg 0 0K - 1355522 64,128,256,512,1024
netgraph_node 12110 3028K - 28829 256
netgraph_hook 29648 3706K - 66104 128
netgraph 8076 12663K - 15209 64,256,1024,4096
netgraph_sock 4 1K - 5489 128
netgraph_path 1 1K - 728112 16,32
netgraph_mppc 0 0K - 1 1024
netgraph_ksock 1349 169K - 3414 128
netgraph_iface 1346 169K - 2367 128
netgraph_ppp 1346 16152K - 2367
netgraph_bpf 16020 2003K - 33296 128
# ifconfig -a | grep ng | wc -l
1341
I saw a peak with about 1900 ng interfaces. That was tooo sloowwww....
last pid: 39304; load averages: 1.12, 1.23, 1.20
up 0+01:15:38 22:39:04
93 processes: 10 running, 70 sleeping, 13 waiting
CPU states: 0.3% user, 0.0% nice, 15.3% system, 3.1% interrupt, 81.3%
idle
Mem: 46M Active, 7772K Inact, 109M Wired, 128K Cache, 16M Buf, 7756M Free
Swap: 4096M Total, 4096M Free
PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND
819 root 23 50 0 92764K 36424K select 1 0:00 207.18% mpd5
17 root 1 171 ki31 0K 16K RUN 1 71:41 100.00%
idle: cpu1
14 root 1 171 ki31 0K 16K CPU4 4 69:16 100.00%
idle: cpu4
15 root 1 171 ki31 0K 16K CPU3 3 68:11 100.00%
idle: cpu3
29 root 1 -68 - 0K 16K CPU6 6 60:50 100.00% em0
taskq
18 root 1 171 ki31 0K 16K CPU0 0 71:58 97.17% idle:
cpu0
16 root 1 171 ki31 0K 16K CPU2 2 68:13 95.65% idle:
cpu2
11 root 1 171 ki31 0K 16K CPU7 7 66:23 86.38% idle:
cpu7
13 root 1 171 ki31 0K 16K CPU5 5 65:28 71.97% idle:
cpu5
19 root 1 -44 - 0K 16K WAIT 5 19:53 31.59% swi1: net
30 root 1 -68 - 0K 16K - 7 8:41 12.89% em1 taskq
12 root 1 171 ki31 0K 16K RUN 6 12:41 0.00% idle:
cpu6
20 root 1 -32 - 0K 16K WAIT 3 1:12 0.00% swi4:
clock
# uname -v
FreeBSD 7.0-STABLE #0: Mon May 5 01:11:23 EEST 2008
CPU: Intel(R) Xeon(R) CPU E5335 @ 2.00GHz (2000.01-MHz
K8-class CPU)
Origin = "GenuineIntel" Id = 0x6f7 Stepping = 7
Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
Features2=0x4e33d<SSE3,RSVD2,MON,DS_CPL,VMX,TM2,SSSE3,CX16,xTPR,PDCM,DCA>
AMD Features=0x20100800<SYSCALL,NX,LM>
AMD Features2=0x1<LAHF>
Cores per package: 4
FreeBSD/SMP: Multiprocessor System Detected: 8 CPUs
usable memory = 8580038656 (8182 MB)
avail memory = 8292810752 (7908 MB)
# ngctl list
ngctl: send msg: No buffer space available
# cat /boot/loader.conf
loader_logo="beastie"
autoboot_delay="3"
hw.em.rxd="1024"
hw.em.txd="1024"
net.inet.tcp.tcbhashsize="4096"
kern.ipc.maxpipekva="32000000"
net.graph.recvspace="128000"
net.graph.maxdgram="128000"
Linux with poptop was running quit smoothly. I thought that netgraph
would be fast as hell.
--
Oleksandr Samoylyk
OVS-RIPE
More information about the freebsd-net
mailing list