FreeBSD Network Performance Test

Tests by: Pawel Jakub Dawidek <pjd@FreeBSD.org>
Graphics by: Maciej Kucharz <qk@wheel.pl>

Tested system is FreeBSD-CURRENT (22.04.2004) + NETPERF patches (20.04.2004).

Kernels minimal as possible: No INET6, KTRACE, PFIL_HOOKS, INVARIANTS,
INVARIANT_SUPPORT, WITNESS, WITNESS_SKIPSPIN, ACPI, USB, etc.
(I can provide kernel configs on request.)

Machines were connected via cross-link cable.

All tests done with netperf software:
TCP Stream test:
% netperf -c -l 60 -H server -t TCP_STREAM -i 10,2 -I 99,5 -- -m 64 -s 57344 -S 57344
% netperf -c -l 60 -H server -t TCP_STREAM -i 10,2 -I 99,5 -- -m 4096 -s 57344 -S 57344
% netperf -c -l 60 -H server -t TCP_STREAM -i 10,2 -I 99,5 -- -m 32768 -s 57344 -S 57344
UDP Stream test:
% netperf -c -l 60 -H server -t UDP_STREAM -i 10,2 -I 99,5 -- -m 64 -s 57344 -S 57344
% netperf -c -l 60 -H server -t UDP_STREAM -i 10,2 -I 99,5 -- -m 4096 -s 57344 -S 57344
% netperf -c -l 60 -H server -t UDP_STREAM -i 10,2 -I 99,5 -- -m 16384 -s 57344 -S 57344
TCP Request/Response test:
% netperf -c -l 60 -H server -t TCP_RR -i 10,3 -I 99,5 -- -r 1,1 -s 0 -S 0 -D
% netperf -c -l 60 -H server -t TCP_RR -i 10,3 -I 99,5 -- -r 1024,1024 -s 0 -S 0 -D
% netperf -c -l 60 -H server -t TCP_RR -i 10,3 -I 99,5 -- -r 8192,8192 -s 0 -S 0 -D
UDP Request/Response test:
% netperf -c -l 60 -H server -t UDP_RR -i 10,3 -I 99,5 -- -r 1,1 -s 0 -S 0 -D
% netperf -c -l 60 -H server -t UDP_RR -i 10,3 -I 99,5 -- -r 1024,1024 -s 0 -S 0 -D
% netperf -c -l 60 -H server -t UDP_RR -i 10,3 -I 99,5 -- -r 8192,8192 -s 0 -S 0 -D

Netperf server and client launched in single-user mode.

If some position is missing on graph it means that there were problems with test.

Machines:

BEAST (connected to CZORT):

CPU(s): 2x AMD Opteron(tm) Processor 240 (1403.19-MHz K8-class CPU)
FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
Motherboard: K8T Master 2
RAM: 1GB (2x512MB, Dual-Channel, 266MHz)
NIC(s): on-board bge(4), em(4) in PCI slot (both on 32bit PCI bus)

CZORT (connected to LCF):

CPU(s): 1x Intel(R) Pentium(R) 4 CPU 3.00GHz (3042.63-MHz 686-class CPU)
Hyperthreading: 2 logical CPUs
FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
Motherboard: MSI 865PE/G Neo2 (MS-6728)
RAM: 1GB (2x512MB, Dual-Channel, 400MHz)
NIC(s): on-board em(4) (on 64bit PCI bus), em(4) in 32bit PCI slot

HADES (connected to LCF):

CPU(s): 1x AMD Athlon(tm) XP 3000+ (2104.79-MHz 686-class CPU)
Motherboard: EPoX EP-8RDA3+
RAM: 1GB (2x512MB, Dual-Channel, 400MHz)
NIC(s): on-board rl(4) (not used), em(4) in 32bit PCI slot

LCF (connected to CZORT):

CPU(s): 2x Intel(R) Xeon(TM) CPU 2.40GHz (2392.04-MHz 686-class CPU)
Hyperthreading: 2 logical CPUs
FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs
Motherboard: Intel Server Board SE7505VB2
RAM: 1GB (2x512MB, Dual-Channel, 266MHz)
NIC(s): on-board em(4) (on 64bit PCI bus), em(4) in 32bit PCI slot

Important problems detected:
Important notes:

NETPERF patches (debug.mpsafenet=1)

This is the main test. All other tests should be compared to this one.

NETPERF patches (debug.mpsafenet=0)

Here you can see overhead introduced by NETPERF patches when you

No NETPERF patches (net.isr.enable=0)

No NETPERF patches (net.isr.enable=1)

em(4) card in 32bit PCI slot

DEVICE_POLLING (HZ=10000)

No SMP/APIC

No Hyperthreading

ULE Scheduler

MAC + mac_biba(4)

ADAPTIVE_MUTEXES Option

FAST_IPSEC

IPSEC