其实就是这个KernelPCC,这玩意是几年前一个老外放出来的,实际效果应该是没有BBR好,但是也可以解决某些问题。
比如OneProvider的某些垃圾独立服务器安装的CentOS7无法换内核,一换内核就宕机。再者换内核本身就是极具风险的一件事,不乏很多VPS换内核就起不来的情况。
KernelPCC编译出来的模块可以在3.X系列的内核上面工作,所以CentOS7不换内核也可以用。下面我在一台CentOS7.6X64的机器上测试。
首先查看当前的系统内核版本:
uname -r
1 | uname - r |
我这个是目前CentOS7.6最新的版本,记住这个待会会用到:
3.10.0-957.1.3.el7.x86_64
1 | 3.10.0 - 957.1.3.el7.x86_64 |
安装内核头文件:
yum -y install kernel-headers-$(uname -r) kernel-devel-$(uname -r)
1 | yum - y install kernel - headers - $ ( uname - r ) kernel - devel - $ ( uname - r ) |
重启:
reboot
1 | reboot |
重新登录上来安装开发工具包:
yum -y groupinstall "Development Tools"
1 | yum - y groupinstall "Development Tools" |
安装CentOS的SCL源:
yum -y install centos-release-scl
1 | yum - y install centos - release - scl |
安装高版本的GCC:
yum -y install devtoolset-7-gcc*
1 | yum - y install devtoolset - 7 - gcc* |
切换GCC版本:
scl enable devtoolset-7 bash
1 | scl enable devtoolset - 7 bash |
拉取项目源码:
cd git clone https:<span class="com">//github.com/giltu/KernelPCC.git cd <span class="typ">KernelPCC</span></span>
1 2 3 | cd git clone https : < span class = "com" > //github.com/giltu/KernelPCC.git cd < span class = "typ" > KernelPCC < / span > < / span > |
编辑Makefile:
vi <span class="typ">Makefile</span>
1 | vi < span class = "typ" > Makefile < / span > |
把路径改为你之前查询到的内核版本号:
KVERSION := /usr/src/kernels/3.10.0-957.1.3.el7.x86_64
1 | KVERSION : = / usr / src / kernels / 3.10.0 - 957.1.3.el7.x86_64 |
修改位置:
然后编译:
make
1 | make |
如果正常的话,就可以把模块加载到内核了:
insmod tcp_TA.ko
1 | insmod tcp_TA . ko |
查看这个模块是否加载成功:
lsmod | grep TA
1 | lsmod | grep TA |
如果能够回显出类似下面的内容就说明模块加载正常:
修改TCP算法为TA:
echo "net.ipv4.tcp_congestion_control=TA" >> /etc/sysctl.conf sysctl -p
1 2 | echo "net.ipv4.tcp_congestion_control=TA" & gt ; & gt ; / etc / sysctl . conf sysctl - p |
查看是否生效:
sysctl net.ipv4.tcp_congestion_control
1 | sysctl net . ipv4 . tcp_congestion_control |
回显如果如下图就说明模块正常工作了:
开机启动:
echo "insmod ~/KernelPCC/tcp_TA.ko" >> /etc/rc.d/rc.local chmod +x /etc/rc.d/rc.local
1 2 | echo "insmod ~/KernelPCC/tcp_TA.ko" & gt ; & gt ; / etc / rc . d / rc . local chmod + x / etc / rc . d / rc . local |
简单的下载测试:
未启用KernelPCC的下载速度:
启用KernelPCC的下载速度:
油管的话不启用看1080都成问题,启用后看个4K没什么压力。总而言之这个没有BBR稳定。
《CentOS7不换内核体验类似BBR的单边加速》留言数:0