最近用 Google 的云捣鼓着试试 SS 服务器。用的 Streisand 那个脚本来部署一大堆软件,感觉很方便。测试的下载/上传速度开始只有 15Mbps/1.5Mbps 左右。用大家分享的参数优化一下,下行和上行速度立即变成了 65Mbps/1.36Mbps。
优化参数用的是这里的。创建/编辑自定义系统配置文件 /etc/sysctl.d/local.conf
,输入下面摘抄的参数,
# max open files fs.file-max = 51200 # max read buffer net.core.rmem_max = 67108864 # max write buffer net.core.wmem_max = 67108864 # default read buffer net.core.rmem_default = 65536 # default write buffer net.core.wmem_default = 65536 # max processor input queue net.core.netdev_max_backlog = 4096 # max backlog net.core.somaxconn = 4096 # resist SYN flood attacks net.ipv4.tcp_syncookies = 1 # reuse timewait sockets when safe net.ipv4.tcp_tw_reuse = 1 # turn off fast timewait sockets recycling net.ipv4.tcp_tw_recycle = 0 # short FIN timeout net.ipv4.tcp_fin_timeout = 30 # short keepalive time net.ipv4.tcp_keepalive_time = 1200 # outbound port range net.ipv4.ip_local_port_range = 10000 65000 # max SYN backlog net.ipv4.tcp_max_syn_backlog = 4096 # max timewait sockets held by system simultaneously net.ipv4.tcp_max_tw_buckets = 5000 # turn on TCP Fast Open on both client and server side net.ipv4.tcp_fastopen = 3 # TCP receive buffer net.ipv4.tcp_rmem = 4096 87380 67108864 # TCP write buffer net.ipv4.tcp_wmem = 4096 65536 67108864 # turn on path MTU discovery net.ipv4.tcp_mtu_probing = 1 net.ipv4.tcp_congestion_control = bbr
保存文件,然后加载配置,
sudo sysctl --system
测试了一下,下载速度就飙升到了 62Mpbs。
然后通过命令行执行了一下这个,
sudo sh -c 'ulimit -n 51200'
测试的下载速度变成了 65Mbps。似乎影响可忽略,不用给设置成每次启动自动执行了。
现在最大的疑问是那个上行速度。不知道为什么最高都没有超过 2Mbps。有经验的朋友看到这里的话还请指点一二。
补充一个,使用 OpenVPN 连接,下载 66Mbps,上传 6Mbps。这个比 SS 的情况要好些,但还是不太理想。我希望的是能达到最少 10Mbps 的上行速度。
我用的这个 Google VPS 才是最低配的 f1-micro (1 vCPU, 0.6 GB memory),系统是 Ubuntu 16.04。虽然 GG 总是提醒我 CPU 超标了,但估计是因为刚开始编译安装那一堆软件造成的吧。反正再试几天看看。毕竟系统性能也会限制服务器网络速度。
速度的提升是一方面。另一方面观察的结果是,偶尔的 CPU 占用大于 100% 的情况也没有了,即使是在速度测试的时候,CPU 也只用到了不到 20%。
看来我的 Linode VPS 也需要检查一下系统参数了。回头好好看看这个。©
本文发表于水景一页。永久链接:<http://cnzhx.net/blog/system-optimisation-matters-to-ss-in-vps/>。转载请保留此信息及相应链接。