我之前介绍过关于 TCP 一些优化,包括安装使用 TCP 优化软件,这些适用于较低版本的 CentOS 系统,例如 CentOS 6,详细可参考《Linux 下的一些简单的 TCP 优化》与《TCP 优化利器——TetaTCP(锐速、LotServer)》。
对于 CentOS 7,更推荐开启 BBR 算法来解决网络问题(优化丢包率、延迟、提升直连效率),特别适合于用于国内访问使用的国外服务器网络优化,最好的优化效果能从直连几百 kb/s 速度提升至 38MB/s(数据为亲测,实际优化效果取决于机房及线路)。
由于 BBR 算法需要 4.9 以上版本 Kernel 支持,所以需要先升级内核。
升级内核
1、yum 系统升级,将所有软件包先升级至最新版本
- yum update -y
2、重启系统,让系统内核及所需环境运行在最新版本下
- root
3、查看当前系统版本、内核版本。如果已经是 4.9 以上版本,则无需进行内核升级。
- cat /etc/redhat-release
- uname -a
4、 导入 elrepo 软件源的 GPG 公钥
- rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
5、导入 elrepo 软件源
- rpm -Uvh https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
6、启用 elrepo 软件源并下载安装最新稳定版内核
- yum --enablerepo=elrepo-kernel install kernel-ml -y
7、设定 Grub 默认启动新内核
- grub2-set-default 0
8、重启,系统会自动运行到新内核上
- reboot
9、重启后,再次查看内核版本。确认是否已经升级为 4.X 内核
- uname -a
10、删除旧内核(防止 yum 更新旧版内核之后覆盖了 grub 默认启动项)
- yum -y remove kernel kernel-tools
开启 BBR
1、修改系统配置文件
- vim /etc/sysctl.conf
在结尾添加如下内容:
- net.core.default_qdisc = fq
- net.ipv4.tcp_congestion_control = bbr
保存,退出 VIM。(若未安装 vim 可使用 vi)
2、加载新配置
- sysctl -p
3、查看当前使用的拥塞算法
- sysctl net.ipv4.tcp_available_congestion_control
- lsmod | grep bbr
两条命令均返回带有 bbr 的信息则已开启 BBR 算法。