patch for test (Was: tcp_output starving -- is due to mbuf
get delay?)
Borje Josefsson
bj at dc.luth.se
Mon Apr 21 02:24:32 PDT 2003
On Mon, 21 Apr 2003 10:27:59 +0200 Borje Josefsson wrote:
> This patch definitively works, and gives much higher PPS (32000
> instead of 19000). This is on a low-end system (PIII 900MHz with
> 33MHz bus), I'll test one of my larger systems later today.
OK. I have now tested on a larger system.
Result is better than without the patch, but *not* as good as (for
example) NetBSD or Linux.
Value Before patch After patch NetBSD
Mbit/sec 617 838 921
PPS (MTU=4470) 20000 27500 28000
The problem is (still) that I run out of CPU on the FreeBSD *sender*. This
doesn't happen on NetBSD (same hardware). The hardware is Xeon 2,8GHz,
PCI-X bus, connected directly to the core routers of a 10 Gbps network.
RTT=21 ms, MTU=4470. OS=FreeBSD 4.8RC with Your patch applied.
wilma % vmstat 1 (edited to shorten lines)
memory page faults cpu
avm fre flt re pi po fr sr in sy cs us sy id
8608 977836 4 0 0 0 0 0 233 20 7 0 2 98
12192 977836 4 0 0 0 0 0 237 59 16 0 1 99
12192 977836 4 0 0 0 0 0 233 20 8 0 2 98
12636 977608 78 0 0 0 7 0 2377 870 241 0 28 72
12636 977608 4 0 0 0 0 0 6522 1834 19 0 100 0
12636 977608 4 0 0 0 0 0 6531 1816 19 0 100 0
12636 977608 4 0 0 0 0 0 6499 1827 19 0 100 0
12636 977608 4 0 0 0 0 0 6575 1821 21 0 100 0
13044 977608 6 0 0 0 0 0 6611 1825 21 0 100 0
top(1) shows:
CPU states: 0.0% user, 0.0% nice, 93.4% system, 6.6% interrupt, 0.0%
idle
Mem: 6136K Active, 8920K Inact, 34M Wired, 64K Cache, 9600K Buf, 954M Free
Swap: 2048M Total, 2048M Free
PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND
215 root 43 0 1024K 652K RUN 0:11 92.37% 39.11% ttcp
Compare that to when I use NetBSD as sender:
CPU states: 0.0% user, 0.0% nice, 6.5% system, 5.5% interrupt, 88.1%
idle
Memory: 39M Act, 12K Inact, 628K Wired, 2688K Exec, 5488K File, 399M Free
Swap: 1025M Total, 1025M Free
PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND
17938 root 2 0 204K 688K netio 0:00 7.80% 1.42% ttcp
The "slow ramping" effect that I described in my earlier letter is not at
all as visible here, so that might be something else (my small test system
has some switches between itself and the core).
bge0 in bge0 out total in total out
packets errs packets errs colls packets errs packets errs colls
6 0 4 0 0 7 0 4 0 0
18364 0 12525 0 0 18364 0 12525 0 0
27664 0 18861 0 0 27665 0 18861 0 0
27511 0 18749 0 0 27511 0 18749 0 0
27281 0 18572 0 0 27282 0 18572 0 0
Net result: Much better, but not as good as the "competitors"...
--Börje
More information about the freebsd-performance
mailing list