Poor results of network perfomance with 5.2.1-p9.
Nikolay Pavlov
quetzal at roks.biz
Mon Aug 23 02:55:08 PDT 2004
Hi, FreeBSD users.
I have made a smimple test of my network connection and have
received rather modest results of network perfomance. Here is my
test conditions:
------------------------------
|FreeBSD4.10-p2 CUSTOM kernel|
|LANRealTek100Mb/s |
|192.168.35.3 |
------------------------------
|
|
------------------------------
|D-Link DWL-900AP+ |
|Wireless11Mb/s |
------------------------------
|
|
------------------------------
|Wireless11Mb/s |
|D-Link DWL-900AP+ |
------------------------------
|
|
-------------------------------
|192.168.35.4 |
|LANRealTek100Mb/s |
|FreeBSD5.2.1-p9 CUSTOM kernel|
-------------------------------
For my tests I use benchmarks/netperf (TCP client-server model) and net/pchar
(don't need special server on the other side, test based on UDP/ICMP rtt).
Results:
1. From 4.10 side:
1.1. pchar test using UDP
=============================================================================
pathfinder# pchar 192.168.35.4
pchar to 192.168.35.4 (192.168.35.4) using UDP/IPv4
Using raw socket input
Packet size increments from 32 to 1500 by 32
46 test(s) per repetition
32 repetition(s) per hop
0: 192.168.35.3 (pathfinder)
Partial loss: 0 / 1472 (0%)
Partial char: rtt = 1.678817 ms, (b = 0.002133 ms/B), r2 = 0.999667
stddev rtt = 0.004743, stddev b = 0.000006
Partial queueing: avg = 0.000310 ms (145 bytes)
Hop char: rtt = 1.678817 ms, bw = 3750.725109 Kbps
Hop queueing: avg = 0.000310 ms (145 bytes)
1: 192.168.35.4 (pioneer)
Path length: 1 hops
Path char: rtt = 1.678817 ms r2 = 0.999667
Path bottleneck: 3750.725109 Kbps
^^^^^^^^^^^^^^^^
Path pipe: 787 bytes
Path queueing: average = 0.000310 ms (145 bytes)
Start time: Mon Aug 23 11:34:40 2004
End time: Mon Aug 23 11:40:54 2004
1.2. netperf test using TCP_STREAM
============================================================================
pathfinder# /usr/local/netperf/netperf -v 2 -H 192.168.35.4
TCP STREAM TEST to 192.168.35.4 : histogram
Recv Send Send
Socket Socket Message Elapsed
Size Size Size Time Throughput
bytes bytes bytes secs. 10^6bits/sec
131072 131072 131072 10.23 4.25
^^^^^^^^^^^^
Alignment Offset Bytes Bytes Sends Bytes Recvs
Local Remote Local Remote Xfered Per Per
Send Recv Send Recv Send (avg) Recv (avg)
8 8 0 0 5.436e+06 132580.29 41 1492.12 3643
Maximum
Segment
Size (bytes)
1448
Histogram of time spent in send() call.
TENTH_MSEC : 0: 0: 0: 0: 0: 0: 1: 0: 0: 0
UNIT_MSEC : 0: 0: 0: 0: 0: 0: 0: 0: 0: 0
TEN_MSEC : 0: 0: 0: 0: 0: 0: 0: 0: 0: 0
HUNDRED_MSEC : 0: 2: 34: 4: 0: 0: 0: 0: 0: 0
UNIT_SEC : 0: 0: 0: 0: 0: 0: 0: 0: 0: 0
TEN_SEC : 0: 0: 0: 0: 0: 0: 0: 0: 0: 0
>100_SECS: 0
HIST_TOTAL: 41
2. From 5.2.1 side:
2.1. pchar test using UDP
============================================================================
pioneer# pchar 192.168.35.3
pchar to 192.168.35.3 (192.168.35.3) using UDP/IPv4
Using raw socket input
Packet size increments from 32 to 1500 by 32
46 test(s) per repetition
32 repetition(s) per hop
0: 192.168.35.4 (pioneer)
Partial loss: 84 / 1472 (5%)
Partial char: rtt = 1.621225 ms, (b = 0.002300 ms/B), r2 = 0.946789
stddev rtt = 0.066426, stddev b = 0.000082
Partial queueing: avg = 0.002433 ms (1057 bytes)
Hop char: rtt = 1.621225 ms, bw = 3477.844143 Kbps
Hop queueing: avg = 0.002433 ms (1057 bytes)
1: 192.168.35.3 (pathfinder)
Path length: 1 hops
Path char: rtt = 1.621225 ms r2 = 0.946789
Path bottleneck: 3477.844143 Kbps
Path pipe: 704 bytes
Path queueing: average = 0.002433 ms (1057 bytes)
Start time: Mon Aug 23 11:20:24 2004
End time: Mon Aug 23 11:30:39 2004
2.2. netperf test using TCP_STREAM
============================================================================
pioneer# /usr/local/netperf/netperf -v 2 -H 192.168.35.3
TCP STREAM TEST to 192.168.35.3 : histogram
Recv Send Send
Socket Socket Message Elapsed
Size Size Size Time Throughput
bytes bytes bytes secs. 10^6bits/sec
131072 131072 131072 10.75 0.64
^^^^^^^^^^^^^
Alignment Offset Bytes Bytes Sends Bytes Recvs
Local Remote Local Remote Xfered Per Per
Send Recv Send Recv Send (avg) Recv (avg)
8 8 0 0 8.601e+05 143352.00 6 1455.35 591
Maximum
Segment
Size (bytes)
1448
Histogram of time spent in send() call.
TENTH_MSEC : 0: 0: 0: 0: 0: 0: 1: 0: 0: 0
UNIT_MSEC : 0: 0: 0: 0: 0: 0: 0: 0: 0: 0
TEN_MSEC : 0: 0: 0: 0: 0: 0: 0: 0: 0: 0
HUNDRED_MSEC : 0: 0: 0: 0: 0: 0: 0: 1: 3: 0
UNIT_SEC : 0: 0: 0: 0: 0: 0: 1: 0: 0: 0
TEN_SEC : 0: 0: 0: 0: 0: 0: 0: 0: 0: 0
>100_SECS: 0
HIST_TOTAL: 6
As you can see there is almost no diffrence between pchar udp tests
(3750.725109 Kbps against 3477.844143 Kbps), but in netperf test
4.10 in 10.23 sec has made 41 send() (4.25Mb/s) against 6! send() in 10.75 sec
(0.64Mb/s). What is the secret of so poor perfomance? Could you please help me
in correct understanding of this test?
P.S. Some additional information:
There is no WITNESS, INVARIANTS, INVARIANT_SUPPORT, SMP in 5.2.1 kernel.
ipfw_type=OPEN in 5.2.1 and corresponding pass rule in top off firewall
ruleset in 4.10.
tcp.sendspace and recvspace = 131072 in both OS.
In test I use "clear" conditions, but in real work this connection is
ecrypted by IPsec so my working productivity is much more slower.
If you need more info just let me know.
Best regards and sorry for my english,
Nikolay Pavlov.
More information about the freebsd-performance
mailing list