|
|
TCP BBR从Linux 4.9 内核开始,就作为它内核的一部分存在了,如果想使用BBR,那么首先就是判断内核版本是否大于4.9,如果符合版本标准,那么直接启动BBR就可以了,如果低于4.9,升级内核之后启动就行了。
7 B& R: U+ E' C. K4 a8 [一,使用一键脚本安装和启动BBR。
: T. P/ p7 a' F% R9 B w: f 推荐使用秋水逸冰的一键脚本,具体可以参考:2 n' H- V5 }9 K! r6 s7 M
https://www.cnblogs.com/sunylat/p/9521562.html
9 b2 D; W0 ?) h! H8 P/ J" @ 如果一键脚本不能访问,那么可以下载我在这里保存的秋水逸冰的一键脚本:
9 w9 D& p& Y2 P0 z ^! q# H https://www.cnblogs.com/sunylat/p/9521561.html
: _$ {5 t$ i: a" t6 p5 e& R6 ] y 一键脚本,大大简化了手动处理的过程,大致的升级过程如下:& z* G% |* Q2 _0 \. d3 [* [
1,安装ELRepo库。
9 g7 N' _6 n. I9 K+ g) b: H* K5 y 2,启动TCP BBR。
8 b: C: W* W. w* V: m: P: p7 x 3,更新系统默认启动内核为新内核。, `/ I3 [/ D8 l4 q8 s+ R2 Z/ B
二,手动升级内核安装和启动BBR。4 A5 D; r) ^, I: m J! j+ j! {
1,手动升级内核。我在Cent OS 6 中升级内核的整个过程,见下面博客:
$ e# p3 {8 \# i' m [url]https://www.cnblogs.com/sunylat/p/9518563.html[/url]
. U4 K. L: {9 s2 R9 T# K 2,启动BBR。依次执行下面命令就可以了。 M; X# Y" F; Y: t$ |+ l
sed -i '/net.core.default_qdisc/d' /etc/sysctl.conf
: F# ^- M( u/ { sed -i '/net.ipv4.tcp_congestion_control/d' /etc/sysctl.conf # W; C( A' m/ @. v6 V
echo "net.core.default_qdisc = fq" >> /etc/sysctl.conf ( n/ a' U9 ~' z5 }9 S4 E$ ^
echo "net.ipv4.tcp_congestion_control = bbr" >> /etc/sysctl.conf
4 U6 f& O+ n# p# q sysctl -p 5 v' C5 S; {( H
reboot
5 I* [/ S9 |* k. V0 z0 y( _ 当系统重新启动后,BBR就已经可以使用了!
( ~; p; k1 C& ]) H" H/ \ 3,验证BBR是否已经可用。
) C3 O, f1 D9 A A,验证当前TCP控制算法的命令:
5 d- I9 H, z/ Y0 {4 C2 w+ C sysctl net.ipv4.tcp_available_congestion_control 8 A" t* g K' I
返回值一般为:4 e. @) c9 }" T9 B& c( X
net.ipv4.tcp_available_congestion_control = bbr cubic reno+ ]. I! _2 o( t* C- f- W/ r( ~8 G
或者为:7 Q( E& i. x1 j9 K& K+ z8 h
net.ipv4.tcp_available_congestion_control = reno cubic bbr6 ^! P1 Z) i+ K7 [
B,验证BBR是否已经启动。
6 _0 M. n" Q# e; j; J sysctl net.ipv4.tcp_congestion_control 0 O1 w7 ]* w7 Z
返回值一般为:
! }" |0 J1 ^: v" _- N. h4 p/ ~( ] net.ipv4.tcp_congestion_control = bbr
" n: o) a N. M lsmod | grep bbr 1 ^3 f- Y! Q" c' e8 X# l2 A! w" a5 d
返回值有 tcp_bbr 模块即说明 bbr 已启动。注意:并不是所有的 VPS 都会有此返回值,若没有也属正常。
6 ?$ k9 g' L; U( e三,停止BBR。依次执行下面命令就可以了。
, }3 n6 c2 q. r sed -i '/net.core.default_qdisc/d' /etc/sysctl.conf 2 {* ?+ {$ F* z" I
sed -i '/net.ipv4.tcp_congestion_control/d' /etc/sysctl.conf # q. H# I* a: g3 i$ g- e- m% b9 u
sysctl -p t3 ?0 z4 a+ F
reboot 8 l' t$ `$ l2 s2 ]( L# V' \4 p: ~ P" P
! G e( j3 n8 S# X) B: M& S
& ]" h! s7 j3 M9 u |
|