|
TCP BBR从Linux 4.9 内核开始,就作为它内核的一部分存在了,如果想使用BBR,那么首先就是判断内核版本是否大于4.9,如果符合版本标准,那么直接启动BBR就可以了,如果低于4.9,升级内核之后启动就行了。/ G+ {/ i" `9 B3 c7 t
一,使用一键脚本安装和启动BBR。
# ]: @# @1 d3 _/ v2 S 推荐使用秋水逸冰的一键脚本,具体可以参考:
5 l% \. ~ {5 K1 K https://www.cnblogs.com/sunylat/p/9521562.html
4 P9 k$ O# }# {0 S: X/ d4 _0 V1 R 如果一键脚本不能访问,那么可以下载我在这里保存的秋水逸冰的一键脚本:
+ c$ J- X9 ?" Z, {# G2 f https://www.cnblogs.com/sunylat/p/9521561.html
4 ^. k5 j) x/ z Y( ~5 y 一键脚本,大大简化了手动处理的过程,大致的升级过程如下:
u* \; m2 z1 P) @* ^ 1,安装ELRepo库。' k4 Q& h$ Z8 J4 w; P+ g* s! }2 |
2,启动TCP BBR。
2 L! H6 p. ^/ o8 l0 X' g 3,更新系统默认启动内核为新内核。& H" _+ e8 H3 b; c3 e
二,手动升级内核安装和启动BBR。( I/ Z2 g0 |! O4 u$ i9 y
1,手动升级内核。我在Cent OS 6 中升级内核的整个过程,见下面博客:+ g# Q }% F# i: K& ?9 B7 H& o4 _
[url]https://www.cnblogs.com/sunylat/p/9518563.html[/url], M* i7 i* @1 ]1 q, x
2,启动BBR。依次执行下面命令就可以了。- F7 K8 z/ Q6 E* }
sed -i '/net.core.default_qdisc/d' /etc/sysctl.conf
4 d; Q1 L6 T" x7 | sed -i '/net.ipv4.tcp_congestion_control/d' /etc/sysctl.conf + V8 V6 U1 h* Y# ^4 n
echo "net.core.default_qdisc = fq" >> /etc/sysctl.conf
' U' Y, W. ~- H7 ~: ]' ^0 b; k+ R echo "net.ipv4.tcp_congestion_control = bbr" >> /etc/sysctl.conf
- w% b9 r' ?$ q/ p: j7 s sysctl -p
' f9 i$ ~$ b; U) {4 W reboot
/ f0 S( }+ w# I% F$ U$ Y4 g! ` 当系统重新启动后,BBR就已经可以使用了!6 C$ i5 M' Y3 [
3,验证BBR是否已经可用。' |) J. y' {; q- s
A,验证当前TCP控制算法的命令:# A. B3 ]2 w1 }6 S1 h
sysctl net.ipv4.tcp_available_congestion_control 9 S% V% ]: x8 x# e; O- @% N
返回值一般为:8 U. Y/ C* s+ C& }+ m4 n
net.ipv4.tcp_available_congestion_control = bbr cubic reno, M; x; ]9 B% s" z' S1 N
或者为:
f! H* p% x4 t' F% ?# ]9 e' ] net.ipv4.tcp_available_congestion_control = reno cubic bbr: A3 u" t( K7 G' y, l) Y
B,验证BBR是否已经启动。+ v* s# g/ ~# N6 f0 V6 J
sysctl net.ipv4.tcp_congestion_control
5 x1 ~9 n/ k' x4 z4 R8 {. k 返回值一般为:6 m" C, }' g4 V* Z/ h) `
net.ipv4.tcp_congestion_control = bbr
$ @% z$ {+ K! ?4 l lsmod | grep bbr 9 P+ v& F. v7 ]
返回值有 tcp_bbr 模块即说明 bbr 已启动。注意:并不是所有的 VPS 都会有此返回值,若没有也属正常。
$ s$ k- ^" t1 Q+ @$ H三,停止BBR。依次执行下面命令就可以了。
- h4 P* Z+ f. x sed -i '/net.core.default_qdisc/d' /etc/sysctl.conf " W" ^5 B k1 r4 {9 [; H& ~
sed -i '/net.ipv4.tcp_congestion_control/d' /etc/sysctl.conf 2 J% m+ q4 o1 E' b
sysctl -p
1 ~& ?; g' s! e# B# r' l reboot
' {$ B) A: |* ?% E3 @* E' |
. P; J; M2 p( J" `% Y" k( ~
3 x, k$ A1 M: }. j$ f* s- q |
|