LVS on FreeBSD Performance Measure

The experiments used an ordinary Ienovo PC box with Pentium IV 2.4GHz uniprocessor, 496MB SDRAM, and two Realtek RTL8139 Family PCI Fast 100MB Ethernet NICs. The host was running standard FreeBSD-5.3 Release with no performance tuning. The host connected with Spirent AX4000 network testing apparatus. The testing result is shown as follows:

Table 1. Throughput of LVS on FreeBSD/DR

Packet length(bytes) Packet throughput(packets/s) Data throughput(KBits/s) Bandwidth using(%)
60 73,382 45,790.624 45.79
100 68,456 64,622.394 64.62
150 59,671 80,198.282 80.20
200 50,768 88,538.537 88.54
250 43,403 93,055.470 93.06
300 36,883 93,831.593 93.83
500 23,133 95,863.080 95.86
1000 12,009 97,797.493 97.80

Table 2. Throughput of LVS on FreeBSD/TUN

Packet length(bytes) Packet throughput(packets/s) Data throughput(KBits/s) Bandwidth using(%)
60 62,223 48,782.893 48.78
100 63,595 70,208.757 70.21
500 22,304 95,996.299 96.00
1000 11,781 97,829.021 97.83

As the result shown,when the packet length increases to larger than 200 bytes, the bandwidth using of 100MB ethernet is larger than 90%. That means the bottleneck exists in network other than LVS on FreeBSD software. Considering those popular internet services such as HTTP, SMTP, Telnet, SSH, FTP, the packet length is larger than 200 bytes usually. Further more, the hardware we used for measure is very ordinary, and we didn't tuning the FreeBSD kernel. So the scalability of LVS on FreeBSD is very good.

Note:

  • The schedule algorithm we used is Round Robin(rr).
  • To LVS On FreeBSD/TUN, an additional IP header(usually 20 bytes) will be added to every packet be forwarded, the load will increase slightly. So as the data shown, the packet throughput is slightly lower than LVS On FreeBSD/DR, but the data throughput is higher contrarily.