lotServer+htcp内核算法调优

前言

一次偶然的机会,买了一台伯力机器,第一时间上了BBR和BBRPLUS 可能是因为我是南方电信的缘故上BBR并没有什么卵用;

这让我想起了锐速兴许可以救一下苦海的电信,当然锐速并没有让我失望,不然也不会有此篇博客

/posts/9983e2d9/images/zao-1024x912.jpg

/posts/9983e2d9/images/wan-1024x914.jpg

警告:

首先安装锐速可能会被ban,要有心理准备,但是我的想法是,可能他们没有调整参数,没有做到不适用官方源。
所以第一步我们先把源头换下,使用盟咖大佬的纯净版debian9.

开始

DD系统网络重装

apt-get install net-tools (安装网络工具包)

ifconfig -a (查看本机公网IP地址)

route -n (查看网关地址)

按下图所示,获得相应的参数,留着备用!

/posts/9983e2d9/images/ssh-1024x692.jpg

然后将或得到参数填入对应的位置

bash <(wget –no-check-certificate -qO- ‘https://moeclub.org/attachment/LinuxShell/InstallNET.sh’) -d 9 -v 64 -a –ip-addr 我是ip地址 –ip-gate 我是网关 –ip-mask 我是掩码

如果您的VPS有VNC 可以连接上去看着进度

全自动安装默认root密码:MoeClub.org
安装完成后请立即更改密码.

安装lotServer锐速

更换内核

Debian / Unbuntu自动更换内核(必须,运行后需重启)

bash <(wget –no-check-certificate -qO- ‘https://moeclub.org/attachment/LinuxShell/Debian_Kernel.sh’)

重启后再连接SSH执行锐速安装

bash <(wget –no-check-certificate -qO- https://github.com/xidcn/LotServer_Vicer/raw/master/Install.sh) install

安装完成会显示running

锐速参数调优

锐速配置文件路径:/appex/etc/config

涉及到修改的就几个参数,此次教程我使用伯力为教程对象,其他机器自己调,
利用ping测去程平均数÷相应数,得到当前数值

wankbps=”1000000″ #上行带宽
waninkbps=”1000000″ #下行带宽
initialCwndWan=”45″ #初始拥塞窗口;平均ping ms÷3
l2wQLimit=”512 4096″ #VPS内存MB×8=缓存数值
w2lQLimit=”512 4096″ #VPS内存MB×8=缓存数值
advinacc=”1″ # 开启高级入向加速
maxmode=”1″ #开启最大传输模式
halfCwndLossRateShift=”20″ #调整丢包率为20%;
shaperEnable=”1″ #流量整形, 看情况使用
smBurstMS=”15″ #该值越大,数据包发送量越大;平均ping ms÷9
shortRttMS=”43″ #将不对 RTT 小于 shortRttMS 的连接加速,节约系统资源;平均ping ms÷3

然后保存覆盖,随你用VI还是什么,达到效果就行;
然后重启锐速 或者重启vps,让其生效

* 启动命令 /appex/bin/lotServer.sh start
* 停止加速 /appex/bin/lotServer.sh stop
* 状态查询 /appex/bin/lotServer.sh status
* 重新启动 /appex/bin/lotServer.sh restart

TCP 优化

前往:/etc/sysctl.conf

修改你想优化的tcp参数,比如链接数比如加一些内核TCP拥堵算法,
reno、bic、cubic、hybla 什么的, 你们慢慢折腾

拥塞控制算法

Linux内核中提供了若干套TCP拥塞控制算法:

reno:最基本的拥塞控制算法,也是TCP协议的实验原型;

bic:适用于丢包极为罕见的情况,比如北美和欧洲之间的线路,这是2.6.8到2.6.18之间的Linux内核的默认算法;

cubic:修改版的bic,适用环境比bic广泛一点,它是2.6.19之后的linux内核的默认算法;

hybla:适用于高延时、高丢包率的网络,比如卫星链路——同样适用于中美之间的链路。

h-tcp:高性能网络中综合表现比较优秀的算法,但它有rtt不公平性和低带宽不友好性等问题。

网友的结论,hybla适合欧美节点的高延迟网络环境,htcp适合日本节点的低延迟网络环境,在实测过程中验证了htcp确实比较适合日本服务器节点的性能优化。本次伯力因为是延迟比较低,所以我们选择异类htcp

已编译算法

首先执行下面代码看看机器开启了哪些内核算法

ls -la /lib/modules/$(uname -r)/kernel/net/ipv4

你应该得到一个模块列表,大概是这样

tcp_bic.ko
tcp_diag.ko
tcp_highspeed.ko
tcp_htcp.ko
tcp_hybla.ko
tcp_illinois.ko
tcp_lp.ko
tcp_scalable.ko
tcp_vegas.ko
tcp_veno.ko
tcp_westwood.ko

查看当前内核已经启用或可用的算法:

sysctl net.ipv4.tcp_available_congestion_control

不出意外,返回的数值中没有htcp,hybla,但是我们先前查看的内核已经编译了它们
我们只需要从modprobe启用它即可

/sbin/modprobe tcp_htcp

/sbin/modprobe tcp_hybla

然后再次执行查看是否已经被启用

sysctl net.ipv4.tcp_available_congestion_control

终端返回下面数值即为启用成功

sysctl net.ipv4.tcp_available_congestion_control = htcp cubic reno hybla

接着我们编辑/etc/sysctl.conf

修改内核TCP拥堵算法:

#内核TCP拥堵算法
net.ipv4.tcp_congestion_control = htcp
#将网络拥塞队列算法设置为性能和延迟最佳的fq_codel
net.core.default_qdisc = fq_codel

修改完执行:

sysctl -p

或者重启vps,让其生效

此内核可以双开,你们可以试试效果,我感觉没啥区别

最后检测

看是否成功,可以用这个脚本检测状态

wget -N –no-check-certificate “https://github.000060000.xyz/tcp.sh” && chmod +x tcp.sh && ./tcp.sh

Hunter 支付宝支付宝
Hunter 微信微信
0%