centos7.0修改内核中tcp拥塞控制算法的方法

目前tcp拥塞控制算法已有很多种,典型的如tcp_reno,tcp_vegas,tcp_cubic等,很多拥塞控制算法是针对都是相应网络情况的优化,比如tcp_bic和tcp_cubic就很适合长距离且高速低丢包的网络情况,我们可以针对我们自己的网络需求开启相应的拥塞控制算法,下面介绍在centos中修改tcp拥塞控制算法的方法(具体拥塞控制算法的针对场景以及支持的内核版本请自行查阅)       

首先是一种简单的办法

终端输入:cat /proc/sys/net/ipv4/tcp_allowed_congestion_control

可以产看到当前可用的拥塞控制算法,本机显示为cubic   reno

输入:cat /proc/sys/net/ipv4/tcp_congestion_control

可以看到当前使用的拥塞控制算法,本机显示为cubic

输入:sysctl net.ipv4.tcp_congestion_control = reno

修改当前拥塞控制算法为tcp_reno

下面演示添加hybla拥塞控制算法的过程

运行
sysctl net.ipv4.tcp_available_congestion_control

会得到 net.ipv4.tcp_available_congestion_control = cubic reno

这时我们来添加一个hybla拥塞控制算法

运行
/sbin/modprobe tcp_hybla

sysctl net.ipv4.tcp_available_congestion_control
得到net.ipv4.tcp_available_congestion_control = cubic reno hybla
这时表明hybla已经可以使用了。

运行
cp /etc/sysctl.conf /root/
这个是复制sysctl.conf文件,作个备份


修改sysctl.conf文件,优化TCP参数
vi /etc/sysctl.conf
按键盘i建进入编辑模式,光标移到刚才复制的net.ipv4.tcp_fastopen = 3的下面一行,复制以下内容。
————————————————复制以下内容————————
fs.file-max = 51200
#提高整个系统的文件限制
net.core.rmem_max = 67108864
net.core.wmem_max = 67108864
net.core.netdev_max_backlog = 250000
net.core.somaxconn = 3240000

net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.ip_local_port_range = 10000 65000
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_fastopen = 3
net.ipv4.tcp_rmem = 4096 87380 67108864
net.ipv4.tcp_wmem = 4096 65536 67108864
net.ipv4.tcp_mtu_probing = 1
net.ipv4.tcp_congestion_control = hybla
————————————————复制以上内容————————
复制完成后,回个车,为底部再留下空行,按键盘Esc 键退出编辑模式,输入:wq回车,保存并退出。

运行

sysctl -p

使上面的配置生效。

至此,优化也完成了。你可以尽情使用。

注:如需要检查TCP Fast Open有没有生效运行
sysctl net.ipv4.tcp_fastopen
得到 net.ipv4.tcp_fastopen = 3,表示已经成功生效了。

你可能感兴趣的:(网络学习)