Guo-Fu Tseng: Implement and Port Ethernet Drivers for gPXE

Notes: TCP Window Size and RX Csum Offload Benchmark

I've done some benchmark with imgfetch a 500MByte image via HTTP. The test was done by directly connect two computer with a CAT.6 cable:

  • Server:
    • Processor: Intel® Core™2 Quad CPU Q8400 @ 2.66GHz
    • RAM: 8G DDRII-800
    • MB Chip: G965 (ICH8)
    • NIC: Marvell 88E8056 PCI-E Gigabit Ethernet Controller
    • OS: Gentoo (Linux 2.6.33.3)
    • HTTP Server: Lighttpd 1.4.26
  • Client:
    • Processor: AMD Athlon™ 64 Processor 3000+ (1.8HGz)
    • RAM: 2G DDR400
    • MB Chip: nVidia CK804
    • NIC: JMicron JMC250 PCI Express Gigabit Ethernet Controller
    • OS: gPXE latest

The RX checksum offload source tree

The following table shows the result of different TCP_MAX_WINDOW_SIZE and with or without RX checksum offloading.

HTTP imgfetch benchmark
WinSize Without RX Offload With RX Offload
Window Size 1024 byte step
4096 136Mbit/s 136Mbit/s
5120 200Mbit/s 208Mbit/s
6114 224Mbit/s 264Mbit/s
7168 264Mbit/s 288Mbit/s
8192 256Mbit/s 272Mbit/s
9216 368Mbit/s 416Mbit/s
10240 368Mbit/s 400Mbit/s
11264 424Mbit/s 496Mbit/s
12288 448Mbit/s 536Mbit/s
13312 496Mbit/s 616Mbit/s
14436 496Mbit/s 592Mbit/s
15360 528Mbit/s 704Mbit/s
Window Size 2048 byte step
16384 528Mbit/s 696Mbit/s
18432 768Mbit/s
20480 824Mbit/s
22528 880Mbit/s
24576 896Mbit/s
Full Speed
32768 536Mbit/s 896Mbit/s
65532 536Mbit/s 896Mbit/s

QR Code
QR Code soc:2010:cooldavid:notes:benchmark (generated for current page)