|
|
TCP BBR从Linux 4.9 内核开始,就作为它内核的一部分存在了,如果想使用BBR,那么首先就是判断内核版本是否大于4.9,如果符合版本标准,那么直接启动BBR就可以了,如果低于4.9,升级内核之后启动就行了。' d! R4 U% \! s; y& o* s
一,使用一键脚本安装和启动BBR。
; R4 @! L! U8 O7 G7 I. n 推荐使用秋水逸冰的一键脚本,具体可以参考:
! i4 k0 Q+ j( x: i l; r } https://www.cnblogs.com/sunylat/p/9521562.html
. ]7 x0 I( ?5 t M0 w( i 如果一键脚本不能访问,那么可以下载我在这里保存的秋水逸冰的一键脚本:
6 p$ x: d- t, O s https://www.cnblogs.com/sunylat/p/9521561.html
& i: \/ D/ n+ f. Q; T 一键脚本,大大简化了手动处理的过程,大致的升级过程如下:
; d% Z8 D( I: q3 P! h2 y4 U 1,安装ELRepo库。; M, x, U t1 o1 b' }
2,启动TCP BBR。
& Y6 a0 m3 F: P; V# W0 z. P: v 3,更新系统默认启动内核为新内核。, q7 \$ J3 S$ N4 `! a
二,手动升级内核安装和启动BBR。
+ D1 W4 g6 A, m+ Y! A 1,手动升级内核。我在Cent OS 6 中升级内核的整个过程,见下面博客:% x, P5 k# @8 u2 O ]) O. Y
[url]https://www.cnblogs.com/sunylat/p/9518563.html[/url]
. q3 X7 X l0 L& p 2,启动BBR。依次执行下面命令就可以了。1 F( i9 ^0 z( o1 h3 J
sed -i '/net.core.default_qdisc/d' /etc/sysctl.conf + ~) p! y3 K0 g+ {% k2 M
sed -i '/net.ipv4.tcp_congestion_control/d' /etc/sysctl.conf 7 H& w% ?; z8 v; L5 n& t' `
echo "net.core.default_qdisc = fq" >> /etc/sysctl.conf
9 p* ]3 H# s3 |4 N echo "net.ipv4.tcp_congestion_control = bbr" >> /etc/sysctl.conf
3 T0 O5 T& t& k/ W/ D9 Y8 U sysctl -p # r/ d6 T f. b7 J1 C( i
reboot 9 j+ A, i! L3 f: p$ V. p
当系统重新启动后,BBR就已经可以使用了!
5 I4 g2 U0 N- j* p0 N! Y 3,验证BBR是否已经可用。
2 L9 ]6 \' h0 z A,验证当前TCP控制算法的命令:) K- F7 G" o! e
sysctl net.ipv4.tcp_available_congestion_control ( b+ N$ ] b0 U+ I
返回值一般为:
% p6 [: E! ^ l K1 B" I( T& ] net.ipv4.tcp_available_congestion_control = bbr cubic reno
/ B: P- m# N; B6 C 或者为:
$ G* b2 _; I$ z) B5 J net.ipv4.tcp_available_congestion_control = reno cubic bbr
! k8 A- o+ S6 C' c! u3 a a$ S; a( s B,验证BBR是否已经启动。
; U x$ H8 c, |+ M4 j$ [2 U9 K sysctl net.ipv4.tcp_congestion_control 5 J- F0 [& y# |& F& z& ?9 w# t% _
返回值一般为:2 d% V9 [0 s/ s) h
net.ipv4.tcp_congestion_control = bbr
. o' T3 r" M, g6 B0 q lsmod | grep bbr
3 ]+ z; d- p* Y; v+ y 返回值有 tcp_bbr 模块即说明 bbr 已启动。注意:并不是所有的 VPS 都会有此返回值,若没有也属正常。- z9 k1 H3 H6 H5 Q ]1 U% Z% u
三,停止BBR。依次执行下面命令就可以了。 : q2 a, Z: D$ c7 l! a' p: A9 |. s
sed -i '/net.core.default_qdisc/d' /etc/sysctl.conf 9 z# B5 s2 C* [1 J. d9 z. r
sed -i '/net.ipv4.tcp_congestion_control/d' /etc/sysctl.conf - [$ _ S9 F" D* Q. `/ r/ p* P" i
sysctl -p . N+ n& |7 Q, f( ~' F
reboot
+ K- w+ {) v# F- b: j" ~$ l
0 r# m9 R' }, S: I6 U* D+ k
3 q# @$ P% \# ?9 r: g |
|