|
|
TCP BBR从Linux 4.9 内核开始,就作为它内核的一部分存在了,如果想使用BBR,那么首先就是判断内核版本是否大于4.9,如果符合版本标准,那么直接启动BBR就可以了,如果低于4.9,升级内核之后启动就行了。 Q" G1 I8 L' L: |( U9 d$ o
一,使用一键脚本安装和启动BBR。
$ Z/ W2 f2 O# k3 m& R 推荐使用秋水逸冰的一键脚本,具体可以参考:3 z! B3 |3 X3 M5 Q+ s: B
https://www.cnblogs.com/sunylat/p/9521562.html+ d5 r/ N8 f5 r. w
如果一键脚本不能访问,那么可以下载我在这里保存的秋水逸冰的一键脚本:( X1 e. v9 d# ~* d! \$ O, I% k
https://www.cnblogs.com/sunylat/p/9521561.html& i* `+ `; ~; ]8 h. d: e7 y
一键脚本,大大简化了手动处理的过程,大致的升级过程如下:! S, j+ v4 p4 M
1,安装ELRepo库。
7 [% u) U9 H, _% A, i* @, d! N5 y 2,启动TCP BBR。
( R5 n6 h8 G( ]7 L3 g. b 3,更新系统默认启动内核为新内核。
: [' K; H- t7 J二,手动升级内核安装和启动BBR。3 J5 { V+ S& Q5 h. W* C
1,手动升级内核。我在Cent OS 6 中升级内核的整个过程,见下面博客:! S+ ]& w, z( `' A' x. v2 N# k
[url]https://www.cnblogs.com/sunylat/p/9518563.html[/url]: A# e! Z8 E) |* t& z1 L
2,启动BBR。依次执行下面命令就可以了。
* y- F6 u) h; U3 ^( u- C3 r8 I sed -i '/net.core.default_qdisc/d' /etc/sysctl.conf 5 c* E* n; t; R9 L
sed -i '/net.ipv4.tcp_congestion_control/d' /etc/sysctl.conf
. E! ]9 p; `, T8 ~; M$ `7 b$ T echo "net.core.default_qdisc = fq" >> /etc/sysctl.conf
, E& v7 v+ v/ v: S echo "net.ipv4.tcp_congestion_control = bbr" >> /etc/sysctl.conf
# Q+ O# q' V; u! Z sysctl -p a8 {& }5 t; K0 Z/ g0 q$ p
reboot
4 a7 g H2 \% p8 l8 r, } 当系统重新启动后,BBR就已经可以使用了!( p- \3 }) e V& H# v% F
3,验证BBR是否已经可用。
# P! i5 j9 \! I l6 P. n A,验证当前TCP控制算法的命令:
$ r6 r1 E; z9 o sysctl net.ipv4.tcp_available_congestion_control
0 W4 X; d C5 ~& w' v 返回值一般为:
4 ]3 _* _* Z7 O& L. K net.ipv4.tcp_available_congestion_control = bbr cubic reno
& p* t! o; Z( P, s# t7 l 或者为:. _, ` Z! y' s8 M2 ]2 ^( a* ~
net.ipv4.tcp_available_congestion_control = reno cubic bbr
' [( Z* z: U7 \5 M3 T+ N. w' q d" B, ` B,验证BBR是否已经启动。7 b! d( f6 I& c+ I
sysctl net.ipv4.tcp_congestion_control C, T2 n# h2 E5 t M G
返回值一般为:
/ \& [* q' C, n6 K% s net.ipv4.tcp_congestion_control = bbr/ Y* e; Q( } R; ]& ?9 M8 t% c
lsmod | grep bbr 2 Y$ n U; H; Z* h( D. E* w
返回值有 tcp_bbr 模块即说明 bbr 已启动。注意:并不是所有的 VPS 都会有此返回值,若没有也属正常。8 R: q: Z, W( A- G' M! X& Z
三,停止BBR。依次执行下面命令就可以了。
8 S& {& Y4 m) h- C3 R sed -i '/net.core.default_qdisc/d' /etc/sysctl.conf ' O. s4 C; C5 d* a! P, b1 u. U9 F* I
sed -i '/net.ipv4.tcp_congestion_control/d' /etc/sysctl.conf
3 Z% ]# N6 [3 r- g sysctl -p
" R7 O3 M0 y C0 s1 L+ P reboot
! y5 `, x- i9 `& u6 }! @% K/ E F8 b$ U- ^6 t! [6 x
a+ f* X K2 p4 D: M |
|