|
|
TCP BBR从Linux 4.9 内核开始,就作为它内核的一部分存在了,如果想使用BBR,那么首先就是判断内核版本是否大于4.9,如果符合版本标准,那么直接启动BBR就可以了,如果低于4.9,升级内核之后启动就行了。
8 C g' l, q3 }' y* C一,使用一键脚本安装和启动BBR。
, H5 s: L. _+ H0 g" { 推荐使用秋水逸冰的一键脚本,具体可以参考:1 a: e5 B- [* h' N
https://www.cnblogs.com/sunylat/p/9521562.html
& [ i. R4 K% `9 D 如果一键脚本不能访问,那么可以下载我在这里保存的秋水逸冰的一键脚本:
9 A' W' |3 @7 L- t+ u$ x https://www.cnblogs.com/sunylat/p/9521561.html9 g. [0 q; r: h: A$ y
一键脚本,大大简化了手动处理的过程,大致的升级过程如下:9 \$ F1 [6 n- c
1,安装ELRepo库。
! W# ^1 j, P# H+ r/ I; H& E 2,启动TCP BBR。
8 B! X) f* V4 o* a$ i9 F3 g 3,更新系统默认启动内核为新内核。
$ i) k2 i7 b, M/ L" G* }二,手动升级内核安装和启动BBR。
; X9 f6 F) o& y( d! Y 1,手动升级内核。我在Cent OS 6 中升级内核的整个过程,见下面博客:9 F3 z2 P% w! |3 z2 A. A8 z
[url]https://www.cnblogs.com/sunylat/p/9518563.html[/url]
2 _! |1 k. t- I0 p- E; v 2,启动BBR。依次执行下面命令就可以了。
s: R& B+ l: C% ^1 A6 ` sed -i '/net.core.default_qdisc/d' /etc/sysctl.conf
* y& P3 m' [1 s; g" E, f sed -i '/net.ipv4.tcp_congestion_control/d' /etc/sysctl.conf , ?- ~0 o) h/ w$ G+ s; s c
echo "net.core.default_qdisc = fq" >> /etc/sysctl.conf
0 w) e8 u) n2 l+ y2 U echo "net.ipv4.tcp_congestion_control = bbr" >> /etc/sysctl.conf
% V! t8 S' L1 D/ T* @! R sysctl -p ) v T2 u/ R/ [: a& Y
reboot - c6 X& m; m1 H% G" ^
当系统重新启动后,BBR就已经可以使用了!( ?7 l; Q) {, v7 j
3,验证BBR是否已经可用。
2 U; I- d, u/ U0 N9 m% |) z A,验证当前TCP控制算法的命令:- Q1 @) }% Z5 `& G1 T% V8 }
sysctl net.ipv4.tcp_available_congestion_control
1 l" Z" E* ^; h. U8 X) e 返回值一般为:* X, X9 _2 U6 l: Q, K: W- y" a* S
net.ipv4.tcp_available_congestion_control = bbr cubic reno
# L7 y3 R7 z8 d' z, N- B5 l- j# i 或者为:5 X" @2 V9 E/ H( B, j4 @/ q: p
net.ipv4.tcp_available_congestion_control = reno cubic bbr+ ]8 m/ w8 @6 ]# ^/ z4 g/ p" o
B,验证BBR是否已经启动。
0 [% V% G' Y) K" |3 f; K sysctl net.ipv4.tcp_congestion_control
- |6 o! L. { S" b9 m7 A/ A 返回值一般为:
4 u" H5 E: J1 O1 D0 q" }; J net.ipv4.tcp_congestion_control = bbr# D0 b; M! d+ i& J+ A
lsmod | grep bbr
3 m" |( V; \( A; S 返回值有 tcp_bbr 模块即说明 bbr 已启动。注意:并不是所有的 VPS 都会有此返回值,若没有也属正常。
9 j# ?5 t& \3 T& F& H# w$ l三,停止BBR。依次执行下面命令就可以了。
& s. ?5 @: n0 E' j1 D sed -i '/net.core.default_qdisc/d' /etc/sysctl.conf
* F K8 M$ M% k, m3 l7 c sed -i '/net.ipv4.tcp_congestion_control/d' /etc/sysctl.conf
- Z4 U' F. C w9 ^. p: B sysctl -p
2 J2 l m% `5 F/ W' h reboot ; |* S: R2 v' ~" D$ k9 |
) m; Z% h. Q* z- k E0 I
" w4 J1 g0 E) L" r |
|