Comparison of FreeBSD/Linux TCP Throughput performance

Hongtao Yin htyin at huawei.com
Thu Oct 15 01:57:46 UTC 2009


Hi,

 

I compared TCP performance between FreeBSD and Linux by running test tools
Netperf and Iperf with Intel NIC. 

The kernels are full version and default values are used in the testing
except TCP Congestion Control algorithm set to Reno.

>From the test results we can see Linux TCP performance in throughput is
better than FreeBSD. The worst case (send msg size 128) shows that FreeBSD
throughput is only 43% of Linux's.

 

I like to get some feedback if anyone did similar comparison test, or knows
any issues with kernels or drivers. Thanks lot.

 

FreeBSD and Linux Sysctl captures are attached for reference.

 

Regards,

Hongtao

 

 

 

Test Environments:

PC: Dell Precision T3400 (same 4 PCs)

CPU: Intel Core 2 Duo CPU E4600 at 2.4Ghz

FreeBSD: V7.1 (full version) (TCP CC: newReno)

Linux: V2.6.31.1 (full version) (TCP CC: Reno)

Ethernet card: Intel Pro/1000 PWLA8492 MT Dual Port Server Adapter (Gigabit)
chip 82546EB (only one port used for each PC)

Switch: Netgear ProSafe 8 port Gigabit Switch (model GS108)

Iperf: V2.0.4

Netperf: V2.4.4

 

Setup:

 

 

                                  ----------

                                  | switch |

                                  ----------

               ---------------------| | | |--------------------

               |                      | |                     |

               |              --------| |--------             |

               |              |                 |             | 

               |              |                 |             |

        --------------  --------------  --------------  --------------

        |     PC1    |  |    PC2     |  |    PC3     |  |    PC4     |

        |   FreeBSD  |  |   FreeBSD  |  |   Linux    |  |   Linux    |

        |192.168.1.10|  |192.168.1.20|  |192.168.1.30|  |192.168.1.40|

        --------------  --------------  --------------  --------------

 

 

 

 

 

================================

     Netperf Test Results   

================================

 

TCP Throughput Test

-------------------

 

PC2/4: #netserver -p 22113

PC1/3: #netperf -H 192.168.1.20 -p 22113 -l 10

 

          Recv             Send            Send           Elapsed
Throughput

          Socket           Socket          Message        Time
10^6 bits/sec

          Size             Size            Size           Sec.

          bytes            bytes           bytes

FreeBSD:  65536            32768           32768          10.34
598.11 

Linux:    87380            16384           16384          10.04
779.02 

 

 

PC1/3: #netperf -t TCP_STREAM -H 192.168.1.20 -p 22113 -- -m
64/128/256/512/1024/2048/4096

 

          Recv             Send            Send           Elapsed
Throughput

          Socket           Socket          Message        Time
10^6 bits/sec

          Size             Size            Size           Sec.

          bytes            bytes           bytes

FreeBSD:  65536            32768           64              10.19
417.10 

          65536            32768           128             10.35
336.63 

          65536            32768           256             10.36
576.99 

          65536            32768           512             10.35
569.79 

          65536            32768           1024            10.35
553.70 

          65536            32768           2048            10.35
584.20 

          65536            32768           4096            10.35
602.45 

 

Linux:    87380            16384           64              10.03
778.21 

          87380            16384           128             10.03
779.72 

          87380            16384           256             10.04
780.16 

          87380            16384           512             10.03
776.85 

          87380            16384           1024            10.04
777.52 

          87380            16384           2048            10.04
777.83 

          87380            16384           4096            10.03
780.17 

 

 

 

 

===============================

      Iperf Test Results

===============================

 

Bandwidth Test

--------------

 

PC2/4: #iperf -s

PC1/3: #iperf -c 192.168.1.20

 

           Interval        Transfer        Bandwidth

           sec             MBytes          Mbits/sec

FreeBSD:   0.0-10.3        740             600

Linux:     0.0-10.0        972             815

 

 

PC1/3: #iperf -c 192.168.1.20 -d

 

           Interval        Transfer        Bandwidth

           sec             MBytes          Mbits/sec

FreeBSD:   0.0-10.0        402             337

           0.0-10.0        404             338

 

Linux:     0.0-10.0        926             776

           0.0-10.0        44.1            36.9

 

 

Parallel Test

-------------

 

PC2/4: #iperf -s

PC1/3: #iperf -c 192.168.1.20 -P 2

 

           Interval        Transfer        Bandwidth

           sec             MBytes          Mbits/sec

FreeBSD:   0.0-10.3        370             300

           0.0-10.3        370             300

      SUM: 0.0-10.3        739             600

 

Linux:     0.0-10.0        479             402

           0.0-10.0        473             396

      SUM: 0.0-10.0        952             797

 

 

 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: FreeBSD_sysctl
Type: application/octet-stream
Size: 44503 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-performance/attachments/20091015/6be13f7f/FreeBSD_sysctl.obj
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Linux_sysctl
Type: application/octet-stream
Size: 20177 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-performance/attachments/20091015/6be13f7f/Linux_sysctl.obj


More information about the freebsd-performance mailing list