1. 手册导读:目标与测量基线
1.1 明确目标:把台湾 VPS 到台北/台中/高雄的延迟控制在 1~3 ms 内,对外主要目标是覆盖东亚节点 20ms 内。
1.2 测量工具:使用 ping、mtr、iperf3、tcptraceroute、ss 来建立延迟、丢包、带宽基线。
1.3 示例基线数据:未调优主机到台湾本地平均 RTT=8ms,到东京 RTT=28ms,到香港 RTT=18ms(详见下表)。
1.4 性能指标:关注 RTT、中位延迟(P50)、95 百分位(P95)、抖动及丢包率。
1.5 版本管理:记录内核版本、网卡驱动、VPS 提供商网络拓扑与带宽规格以便对比。
2. VPS 与物理网卡选择与配置建议
2.1 推荐规格:生产环境建议至少 4 vCPU、8GB 内存、1Gbps 专线或直连交换;磁盘可用 NVMe。
2.2 网卡类型:优先选择 SR-IOV 或 VirtIO 驱动的网卡,避免旧的 emulated NIC。
2.3 示例配置:实例 A:4vCPU/8GB/1000Mbps,内核 5.15,virtio_net + igb 驱动。
2.4 带宽与峰值:实际吞吐测试用 iperf3,30s 内保持稳定带宽并监测丢包。
2.5 冗余链路:如可用,配置双出口或 BGP Anycast 以减小网络抖动与单点故障风险。
3. Linux 内核与 TCP/IP 栈调优实操
3.1 开启 BBR:推荐使用 TCP BBR(至少内核 4.9+),命令示例:sysctl -w net.ipv4.tcp_congestion_control=bbr。
3.2 sysctl 建议值(示例):net.core.rmem_max=134217728,net.core.wmem_max=134217728,net.ipv4.tcp_rmem=4096 87380 67108864,net.ipv4.tcp_wmem=4096 87380 67108864。
3.3 连接数与TIME_WAIT:调整 net.ipv4.ip_local_port_range=10240 65535,net.ipv4.tcp_tw_reuse=1,net.ipv4.tcp_tw_recycle=0(兼容性问题)。
3.4 中断节流与 RSS:启用 RSS 并为每个队列分配 CPU,使用 ethtool -L/--set-priv-flags 调整队列数。
3.5 示例 sysctl 整体片段(可写入 /etc/sysctl.conf):包括上面值并加上 net.ipv4.tcp_no_metrics_save=1。
4. NIC 级别调优:中断、亲和性、卸载
4.1 IRQ 亲和性:使用 irqbalance 或手动写入 /proc/irq/*/smp_affinity 来把网络中断分散到不同 CPU。
4.2 检查与设置:ethtool -S eth0 查看统计,ethtool -K eth0 gso on gro on tso on 来开启卸载。
4.3 示例命令:ethtool -L eth0 rx 4 tx 4;将 RSS 映射到 core0-core3。
4.4 评估收益:开启 GRO/TSO 可降低 CPU 占用,但对小包高频场景需谨慎测试。
4.5 监控项:/proc/interrupts、sar -n DEV、netstat -s 用于判断中断瓶颈与卸载效果。
5. MTU、Path MTU 与路由策略优化
5.1 MTU 建议:在台湾内部链路可试用 9000(jumbo frame),但需全链路支持,先测试端到端。
5.2 Path MTU 测试:使用 tracepath 或 ping -M do -s 来发现最大不分片包大小。
5.3 实际案例:某游戏服在台湾与香港之间启用 MTU 9000 后,TCP 传输效率提升约 8%,CPU 下降 12%。
5.4 路由策略:优先使用低跃点、低延迟路径;配合 BGP 社区或对等商选择最优出口。
5.5 本地直连:尽可能选择台湾本地 POP,与本地骨干/ISP 建立对等(peering)减少中转。
6. CDN、Anycast 与边缘部署实务
6.1 CDN 截流:对静态内容启用本地 CDN 节点,缓存命中率>95% 可显著降低源站延迟。
6.2 Anycast 应用:使用 Anycast IP 将台湾流量就近引导至最近节点,减少跨区 RTT。
6.3 动态调度:结合 GEO-DNS 或 GSLB,按 RTT 与丢包率动态选择回源地。
6.4 实战数据:将 API 接口放在台湾多机房 Anycast 后,P95 延迟从 120ms 降到 42ms。
6.5 注意:Anycast 对状态ful连接(如长连接)需配合会话保持或智能回源策略。
7. DDoS 防御与流量清洗策略
7.1 层次防御:边缘 CDN 缓解(清洗大流量)、骨干清洗中心(SYN/UDP 放大攻击防护)、主机级防火墙。
7.2 iptables/nftables 规则:限速 SYN、限制单 IP 并发连接、对异常包做黑白名单。
7.3 TCP SYN 海量攻防:启用 SYN cookies:sysctl -w net.ipv4.tcp_syncookies=1。
7.4 实例防护:某台湾电商在促销期间遭到 UDP 放大攻击,通过云上清洗 + 边缘限流将峰值从 8Gbps 降至 200Mbps。
7.5 监控告警:结合流量基线与阈值(如 5 分钟内流量突增 3x)自动触发切换到清洗线路。
8. 真实案例与测试数据展示
8.1 案例背景:客户为台湾 SaaS,原始部署为 2vCPU/4GB,1Gbps,出现对外 P95 高达 200ms。
8.2 优化步骤:升级至 4vCPU/8GB,启用 BBR、调整 sysctl、配置 IRQ 亲和、开启卸载并使用本地 CDN。
8.3 优化后结果:P95 从 200ms 降到 45ms,CPU 平均占用从 85% 降到 38%。
8.4 配置示例表(延迟对比):如下表所示(单位 ms,细边框,居中)。
| 节点 |
优化前(P95) |
优化后(P95) |
| 台北 |
18 |
3 |
| 香港 |
45 |
20 |
| 东京 |
92 |
28 |
| 新加坡 |
110 |
65 |
8.5 结论要点:结合主机升级、内核与 NIC 调优、CDN/Anycast 以及 DDoS 防护可实现显著延迟与稳定性提升。
9. 运维监控与持续优化建议
9.1 自动化监控:部署 Prometheus + Grafana 收集 netstat/ss、iface、iperf 指标并设置告警。
9.2 性能回归测试:每次变更后运行自动化脚本(iperf3、mtr)并与历史基线对比。
9.3 灰度迭代:先在 1~2 台机器验证 sysctl 与卸载设置,再批量推广到生产。
9.4 文档化操作:记录所有命令、sysctl 值、驱动版本与回滚步骤。
9.5 定期评估:每季度评估链路、CDN 命中率、DDoS 策略效果,并与 ISP 协商更优路由。
来源:低延迟台湾vps网络调优与最佳实践攻关手册