BBR
BBR is a TCP network congestion optimization algorithm open source by Google, which is committed to solving two problems: making full use of bandwidth on network links with a certain packet loss rate. Reduce buffer occupancy on network links to reduce latency. The goal of TCP congestion control is to maximize the bandwidth of the bottleneck links on the network.
TCP BBR is a set of TCP congestion control algorithms designed and published by Google. Due to the slow delay in providing support for the new kernel, and the default support for TCP BBR since the Linux 4.9 kernel, it has gradually become the first choice for server unilateral acceleration. BBRplus is an enhanced version of the original BBR modified by CSDN netizen dog250. BBRv2, on the other hand, is a follow-up iteration of the original BBR and is still in beta.
However, in the face of a wide variety of BBR derivatives, it is rare to see horizontal comparison reviews of them on the Internet. Some of the existing evaluations are often based on experience and subjective impressions, or off-site testing with uncontrollable variables. So reizhi decided to take the time to do a local horizontal test of BBR BBRplus and BBR2 to find out.
Test environment
Use VMware workstation to open two Debian virtual machines, of which machine A is the server, set up a web service through Nginx and place a 100mb file for download speed testing; Machine B is a client machine, and you use wget to download. The two virtual machines are connected via a virtual internal network and are both on SSD SSDs.
Test methodology
The network card of machine A is set to a delay of 150ms ± 15ms (random fluctuations) through the tc command, and 8% packet loss is used to simulate a general network environment. After installing different BBR branch acceleration, download the 100MB test file on machine B through wget several times (≥5 times), and get the average speed of the fastest 3 times.
Test results
Let's look directly at the test results, BBRv2, which is still in beta, is the slowest in this test, with almost the same speed as the default cubic algorithm in the 4.19 kernel. Surprisingly, BBRplus, although significantly faster than the original BBR, is far behind the BBR with 5.5 cores.
What was very surprising in my testing was that the BBRplus branch climbed very quickly after initiating the download. But for some reason, when the download progresses to about 50% ~ 60%, the speed will drop suddenly. The following graph fully records the speed changes of BBRplus 4.14.129.
BBRplus 4.14.129
At first, Reizhi thought it was a test error or other reasons, but after rebooting, reinstalling the system, reinstalling the kernel, manually compiling the kernel and turning on BBRplus, etc., it did not improve. Under the same test environment, the speed performance of BBR 5.5 is much more stable.
BBR 5.5.10
Although BBR 5.5.10 is not as fast as BBRplus in terms of starting acceleration and peak speed, it maintains a very good speed throughout the download process, and the overall time consumption is much lower than BBRplus. Does this mean that BBRplus is better suited for bursts of small traffic, while BBR excels at large volumes and sustained throughput?
annotations
In this test, we also tried Sharp Speed and Net-speeder, but similar to BBR2, their overall speed is only in the double digits, so the results are not included here.
BBR2 5.4.0-rc6
The above is the speed of BBR2, which was not fully downloaded due to slow speed.
Original link:The hyperlink login is visible.
|