Dragon
主机之家测评主机之家测评  2019-08-20 14:14 主机之家测评 隐藏边栏 |   抢沙发  128 
文章评分 0 次,平均分 0.0

其实就是这个 KernelPCC,这玩意是几年前一个老外放出来的,实际效果应该是没有 BBR 好,但是也可以解决某些问题。

比如 OneProvider 的某些垃圾独立服务器安装的 CentOS7 无法换内核,一换内核就宕机。再者换内核本身就是极具风险的一件事,不乏很多 VPS 换内核就起不来的情况。

KernelPCC 编译出来的模块可以在 3.X 系列的内核上面工作,所以 CentOS7 不换内核也可以用。下面我在一台 CentOS7.6X64 的机器上测试。

首先查看当前的系统内核版本:

 

1
uname -r

我这个是目前 CentOS7.6 最新的版本,记住这个待会会用到:

 

1
3.10.0-957.1.3.el7.x86_64

安装内核头文件:

 

1
yum -y install kernel-headers-$(uname -r) kernel-devel-$(uname -r)

重启:

 

1
reboot

重新登录上来安装开发工具包:

 

1
yum -y groupinstall "Development Tools"

安装 CentOS 的 SCL 源:

 

1
yum -y install centos-release-scl

安装高版本的 GCC:

 

1
yum -y install devtoolset-7-gcc*

切换 GCC 版本:

 

1
scl enable devtoolset-7 bash

拉取项目源码:

 

1
2
3
cd
git clone https:<span class="com">//github.com/giltu/KernelPCC.git
cd <span class="typ">KernelPCC</span></span>

编辑 Makefile:

 

1
vi <span class="typ">Makefile</span>

把路径改为你之前查询到的内核版本号:

 

1
KVERSION := /usr/src/kernels/3.10.0-957.1.3.el7.x86_64

修改位置:

CentOS7 不换内核体验类似 BBR 的单边加速

然后编译:

 

1
make

如果正常的话,就可以把模块加载到内核了:

 

1
insmod tcp_TA.ko

查看这个模块是否加载成功:

 

1
lsmod | grep TA

如果能够回显出类似下面的内容就说明模块加载正常:

CentOS7 不换内核体验类似 BBR 的单边加速

修改 TCP 算法为 TA:

 

1
2
echo "net.ipv4.tcp_congestion_control=TA" &gt;&gt; /etc/sysctl.conf
sysctl -p

查看是否生效:

 

1
sysctl net.ipv4.tcp_congestion_control

回显如果如下图就说明模块正常工作了:

CentOS7 不换内核体验类似 BBR 的单边加速

开机启动:

 

1
2
echo "insmod ~/KernelPCC/tcp_TA.ko" &gt;&gt; /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local

简单的下载测试:

未启用 KernelPCC 的下载速度:

CentOS7 不换内核体验类似 BBR 的单边加速

启用 KernelPCC 的下载速度:

CentOS7 不换内核体验类似 BBR 的单边加速

油管的话不启用看 1080 都成问题,启用后看个 4K 没什么压力。总而言之这个没有 BBR 稳定。

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

发表评论

扫一扫二维码分享