10Gbps Ethernet is gradually into the various application fields.The actual performance of 10Gbps Ethernet is interesting subject. Ideally, through 10Gbps Ethernet whether or not can reach speeds of 10000MpbsBased on this question,recently our engineer used two pieces 10G Ethernet network card to made a practical test :
Test with the method of double machine directly connected, without switches. Use of the network card is two pieces of LR-Link LREC9802BF-2SFP + 10G card, each card has two 10G sfp+ port, but the following test using only one port.
Test environment for Linux operating system, the kernel version is 3.1.1. The test software, in order to achieve the highest transmission rate, is the socket programming, the method of directly between the two machines to send/receive data through TCP/IP protocol. Real-time traffic is by reading the Linux/proc/net/dev device file. The resulting flow contains a TCP/IP packet header data, is more accurate than seen in the program.
Test before use ethtool to check the working state of the network card, confirmed has been in a state of 10000 MB/s:
rootpc2:~# ./ethtool eth2
Settings for eth2:
Supported ports: [ TP ]
Supported link modes: 1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: 1000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Port: Twisted Pair
Supports Wake-on: d
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes
Basically all network parameters are the system default values.The only optimization is changed mtu parameters of the network card, mtu value is set to 6000 in this test.
Here are some specific test results (here 1 MB means 1000000 bytes) :
1. One-way single thread transmission test (from pc1 to pc2 single thread sends the data)
Test results: pc1 out flow of the measured speed is about 1036 MB/s (fluctuation < 2 MB/s).
The transmission speed is equivalent to about 8288Mbps, bandwidth and some gap from 10G network theory.
2. one-way double thread transmission test (from pc1 to pc2 with two threads at the same time to send data)
Test results: pc1 out flow of the measured speed is about 1245 MB/s (fluctuation < 1 MB/s). The transmission speed (9960 MBPS) is very good, has reached the bandwidth 10G theory of more than 99%.
After some optimization, finally the measured steady speed limit to 1248 MB/s (9984 MBPS)]
3. The one-way multithreaded transmission test (from pc1 sends data with multiple threads at the same time to the pc2)
Test results: transmission rate little ascension, but smaller fluctuation amplitude, reduced from 1 MB/s to 0.1 MB/s level.
4. Two-way single thread transmission test (from pc1 to pc2 single thread to send data, sends data to pc1 and pc2 single thread)
Test results: the sum of the flow and the flow on pc1 measured speed is about 1700 MB/s, the fluctuation is large, there are 100 MB/s level.
5. Two-way double thread transmission test (from pc1 to pc2 double thread to send data, double thread to send data to pc1 and pc2)
Test results: the sum of the flow and the flow on pc1 measured speed is about 2330 MB/s, smaller fluctuation, and only about 10 MB/s.
6. Two-way multithreaded transmission test (from pc1 to pc2 multi-threaded to send data, sends data to pc1 and pc2 multithreaded)
Test results: from the previous one-way multithreading, continue to increase the number of threads of transmission speed could further slow. 10 threads in two-way transmission speed of up to 2476 MB/s (19808 MBPS), also more than 99% of the theoretical bandwidth, while the fluctuation down to about 1 MB/s.
From these test results can be seen, both unidirectional transmission and two-way transmission, actual 10G Ethernet bandwidth can be easily achieved 99% above. The result is a bit not anticipated in advance. Test results confirmed that the theory 10G Ethernet bandwidth is not empty mark, after some optimization in real applications is completely can be achieved.