|
|
TCP BBR从Linux 4.9 内核开始,就作为它内核的一部分存在了,如果想使用BBR,那么首先就是判断内核版本是否大于4.9,如果符合版本标准,那么直接启动BBR就可以了,如果低于4.9,升级内核之后启动就行了。
7 }# f4 J! X& q1 K0 ?# l一,使用一键脚本安装和启动BBR。
2 b: J! X8 |4 ?: f! B! V 推荐使用秋水逸冰的一键脚本,具体可以参考: D3 M6 {/ H4 y C) @
https://www.cnblogs.com/sunylat/p/9521562.html. \! N. t1 M/ J4 X& p
如果一键脚本不能访问,那么可以下载我在这里保存的秋水逸冰的一键脚本:0 z+ ]5 Y9 l7 V2 z, k5 g
https://www.cnblogs.com/sunylat/p/9521561.html9 {7 [; |. ] k h6 n
一键脚本,大大简化了手动处理的过程,大致的升级过程如下:
8 v8 ]: N6 r1 t( ^ 1,安装ELRepo库。
6 Q I! d0 }+ \ 2,启动TCP BBR。
" q: K3 a5 [6 m! o 3,更新系统默认启动内核为新内核。
! g( k5 J$ |1 a/ f/ ]二,手动升级内核安装和启动BBR。+ k+ n: B* j& N
1,手动升级内核。我在Cent OS 6 中升级内核的整个过程,见下面博客:% S: ?( P# ] v1 R/ O1 ~
[url]https://www.cnblogs.com/sunylat/p/9518563.html[/url]$ i; q$ z0 R& ]/ l; \( ~$ G
2,启动BBR。依次执行下面命令就可以了。5 W& u4 b# B$ g, R) z8 e9 J
sed -i '/net.core.default_qdisc/d' /etc/sysctl.conf
9 |; A6 y& [3 l( S8 C* J sed -i '/net.ipv4.tcp_congestion_control/d' /etc/sysctl.conf 1 {4 Q- o: |# g( L
echo "net.core.default_qdisc = fq" >> /etc/sysctl.conf
5 q5 y/ T6 p* f2 V6 X6 \$ v echo "net.ipv4.tcp_congestion_control = bbr" >> /etc/sysctl.conf . Z( r4 v9 Y. {3 r
sysctl -p # |1 u# r' V7 S3 Y2 n% @& V9 O& d
reboot 2 Q0 V& _9 D0 r9 _# s* @9 h
当系统重新启动后,BBR就已经可以使用了!
3 X9 Q* X2 @0 E% i4 t 3,验证BBR是否已经可用。0 V- D$ V w# E2 P5 H
A,验证当前TCP控制算法的命令:
) g/ h& ^& ]# G3 K- m8 B sysctl net.ipv4.tcp_available_congestion_control ) h4 H9 D( p% Z+ W0 V. ]7 P. C' M5 g
返回值一般为:3 Z4 w- Q; }( p* Y; G) R6 j/ ~" ?
net.ipv4.tcp_available_congestion_control = bbr cubic reno2 U& w0 S4 V( P7 t1 d- t
或者为:- }3 n0 M1 T. T: f7 v( L' J
net.ipv4.tcp_available_congestion_control = reno cubic bbr/ x, ]: A# Z) [" b
B,验证BBR是否已经启动。
1 X% `; _2 k9 w5 f7 g! p* X3 P* k sysctl net.ipv4.tcp_congestion_control 6 E6 Z" K j: w( H; e- v: ^7 [4 P
返回值一般为:1 \5 d& g3 g" ]- B
net.ipv4.tcp_congestion_control = bbr6 a2 T5 ]3 E. f4 M
lsmod | grep bbr
+ k7 z- d2 s6 {4 b1 x4 m- J 返回值有 tcp_bbr 模块即说明 bbr 已启动。注意:并不是所有的 VPS 都会有此返回值,若没有也属正常。
) ~, K+ H; @7 k三,停止BBR。依次执行下面命令就可以了。 $ I! n+ G9 X( _
sed -i '/net.core.default_qdisc/d' /etc/sysctl.conf " p9 d' l* s; @+ I C* _( n0 x
sed -i '/net.ipv4.tcp_congestion_control/d' /etc/sysctl.conf
+ p* U) T( @ i- [: o, `( H sysctl -p
, k. E, B4 r( _" E( K- U reboot
5 p- Y- w% e) | m' c& d( d% ?4 ?. _! l1 C `) t6 N
, n6 ~0 A9 m, y- @3 x2 b+ M$ U |
|