my blog my blog

Tag: kernel
手动开启BBR方式优化TCP拥堵控制

在Linux的内核中,默认有reno和cubic,还有一些tcp拥堵算法Hybla,比如这里奶牛推荐使用BBR(Bottleneck Bandwidth and RTT)。这里我们需要先将Linux的kenel内核版本升级到4.9+以及5.x,因为kenel 4.9之后才默认加入了bbr的支持。

echo "net.ipv4.tcp_congestion_control = bbr" >> /etc/sysctl.conf
echo "net.core.default_qdisc = fq" >> /etc/sysctl.conf
sysctl -p
reboot

升级内核后执行上面的命令就可以设置bbr为默认了。查看bbr是否设置成功?

sysctl net.ipv4.tcp_available_congestion_control
net.ipv4.tcp_available_congestion_control = bbr cubic reno
sysctl -n net.ipv4.tcp_congestion_control
bbr
lsmod | grep bbr
tcp_bbr                16384  0

 

CentOS 7更新内核至最新版本教程

CentOS跟Ubuntu的使用区别还是有的,比如这个内核,Ubuntu的话直接就可以更新一个比较新的内核了,可是CentOS还是3.1的好像,不知道为啥。好吧,进入教程环节吧。

添加ELRepo源

导入公key

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

添加源,根据系统版本

yum install https://www.elrepo.org/elrepo-release-8.0-1.el8.elrepo.noarch.rpm
yum install https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
yum install https://www.elrepo.org/elrepo-release-6-8.el6.elrepo.noarch.rpm

安装CentOS最新版本kernel内核

yum --enablerepo=elrepo-kernel install kernel-ml -y

这里需要说明一下,ELRepo源有两条内核分支路线,一条是ml(mainline stable),是主线稳定版本,一条是lt(long term support),即长期支持版本,奶牛这里选择的是ml版本,直接更新到kernel5.x了。

最后,就是设置grub和重启了

egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
grub2-set-default 0
reboot
Kernel首页换新颜

 

RT,kernel首页换了新主题,呃,从订阅里面看到的。

很多朋友可能没自己编译过内核,也对内核具体是个什么东东不是很了解。奶牛引用下wiki介绍:

内核(Kernel)在计算机科学中是操作系统最基本的部分,主要负责管理系统资源。它是为众多应用程序提供对计算机硬件的安全访问的一部分软件,这种访问是有限的,并由内核决定一个程序在什么时候对某部分硬件操作多长时间。直接对硬件操作是非常复杂的。所以内核通常提供一种硬件抽象的方法,来完成这些操作。通过进程间通信机制及系统调用,应用进程可间接控制所需的硬件资源(特别是处理器及IO设备)。 

严格地说,内核并不是计算机系统中必要的组成部分。程序可以直接地被调入计算机中执行;这样的设计,说明了设计者不希望提供任何硬件抽象和操作系统的支持;它常见于早期计算机系统的设计中。最终,一些辅助性程序,例如程序加载器和调试器,被设计到机器核心当中,或者写入在只读记忆体里。这些变化发生时,操作系统内核的概念就渐渐明晰起来了。

kernel.org是linux内核的维护页面,感兴趣的朋友可以去看看,话说linux kernel就跟赶着投胎一样,竟然都飙到3.8版本了….