1.
基础评估:先测量再优化
步骤:1) 使用 mtr 与 ping 测试延迟与丢包:mtr -rwzbc 100 8.8.8.8;ping -c 100 -i 0.2 目标IP。2) 用 iperf3 测试吞吐与抖动:在远端机运行 iperf3 -s,本地 iperf3 -c 远端IP -t 60 -i 10。3) 使用 tcpdump 抓包定位丢包时段:tcpdump -i eth0 host 目标IP -w dump.pcap。小提示:记录峰值时间段与丢包百分比,作为优化对比基线。
2.
选择最佳节点与网络提供商
步骤:1) 对比越南境内/附近节点延迟:使用多个云商(阿里/腾讯/本地VNG等)做 ping/mtr。2) 优先选择有本地出口与多个上游的机房。3) 若目标用户在越南,优先本地机房并配置本地DNS、负载均衡。小分段:用 traceroute -n 可看到经过的ASN,避免经过不稳定的中转ASN。
3.
TCP/拥塞控制与内核参数调优
具体命令:1) 启用 BBR(若内核支持):
sysctl -w net.core.default_qdisc=fq
sysctl -w net.ipv4.tcp_congestion_control=bbr
2) 调整 socket 缓冲区:sysctl -w net.core.rmem_max=67108864; sysctl -w net.core.wmem_max=67108864; sysctl -w net.ipv4.tcp_rmem="4096 87380 67108864"; sysctl -w net.ipv4.tcp_wmem="4096 65536 67108864"。3) 永久生效写入 /etc/sysctl.conf。小提示:启用后用 iperf3 测试吞吐并关注丢包率。
4.
队列管理与缓冲膨胀(Bufferbloat)处理
步骤:1) 安装 tc(iproute2)并对主要网口应用 fq_codel:
tc qdisc add dev eth0 root fq_codel
2) 若需要限速或优先级,示例:
tc qdisc replace dev eth0 root handle 1: htb default 12
tc class add dev eth0 parent 1: classid 1:1 htb rate 100mbit
tc class add dev eth0 parent 1:1 classid 1:12 htb rate 80mbit
结合 fq_codel 管理延迟。小分段:先在非高峰测试,避免误伤业务。
5.
网卡与驱动层优化(ethtool / offload)
步骤:1) 查看网卡能力:ethtool -k eth0。2) 根据情况打开或关闭分段卸载:常见命令:
ethtool -K eth0 tso off gso off gro off
或在高CPU压力下开启以减小CPU使用:ethtool -K eth0 tso on gso on gro on。3) 检查中断绑定与 irqbalance:
systemctl enable --now irqbalance
可进一步把中断与CPU核绑定以减少抖动,编辑 /proc/irq/*/smp_affinity。小提示:更改后用 ping/mtr 比较延迟稳定性。
6.
多路径与冗余:BGP/Anycast与负载均衡
步骤:1) 对企业用户,可使用多出口(不同ISP)并启用BGP做流量工程。2) 对Web服务,部署Anycast与CDN,减少跨境跳数与不稳定中转。3) 使用LVS/HAProxy做本地负载均衡,配置健康检查降低因单点抖动引起的丢包放大。小提示:Anycast 能显著降低越南地区用户的抖动和包丢。
7.
QoS 与流量分类(优先化实时流量)
步骤:1) 在边缘路由/云防火墙上标记实时流量(VoIP/游戏)DSCP:iptables -t mangle -A PREROUTING -p udp --dport 5060 -j DSCP --set-dscp-class EF。2) 在本地用 tc 做优先队列,确保实时流量走优先通道。3) 监控队列饱和度,避免低优先级流量占满链路。小提示:先在小范围验证后推广。
8.
监控与自动化:持续观察并回滚测试
步骤:1) 部署监控:Prometheus + node_exporter + cAdvisor,或使用云商的网路监控。2) 设置告警阈值(丢包>1% 或 RTT抖动>30ms)。3) 用脚本自动化回滚 sysctl / tc 配置,确保出现退化时能自动恢复。小分段:定期抓取 pcap 与 mtr 报表便于历史对比。
9.
实操检查清单(部署前后对比)
清单:1) 基线数据(ping/iperf3/mtr)已归档;2) 启用 BBR 或其他拥塞控制并记录差异;3) 应用 fq_codel 并验证延迟下降;4) 网卡 offload 与 IRQ 调整后对比 CPU 与抖动。小提示:每项改动单独上线并观察 24-72 小时。
10.
常见问题与排查技巧
排查流程:1) 先定位是服务器侧、链路中间还是客户端侧:用双向 iperf3 与 tcpdump。2) 若丢包间歇性出现,检查链路拥塞与BGP跳数波动:使用 Looking Glass 或从多个点 mtr。3) 对于高抖动,优先检查 bufferbloat(用 flent 测试)并启用 fq_codel。小分段:保留变更记录,便于回溯。
11.
问:在越南云服务器上,开启 BBR 是否总是能降低丢包与抖动?
答:BBR 主要改善带宽利用与延迟,在多数高延迟链路能提升吞吐和稳定性,但并非万能。若上游链路本身丢包或 ISP 路由波动严重,BBR 无法根本消除物理链路丢包,需要结合链路更换、Anycast 或 CDN。
12.
问:如何判断应该关闭还是开启网卡 offload(TSO/GSO/GRO)?
答:判断方法是对比开启与关闭时的 CPU 使用与延迟抖动。若开启 offload 能显著下降 CPU 且抖动稳定,保留;若在高抖动场景下关闭能减少丢包与抖动,应选择关闭并再调优队列管理。
13.
问:我没有 BGP 与 Anycast 能力,最简单的降低丢包与抖动的措施是什么?
答:先做三件事:1) 在服务器端启用 fq_codel 及合理的 tc 策略,减少 bufferbloat;2) 调整内核 tcp 缓冲与启用稳定的拥塞控制(如 BBR);3) 使用 CDN/加速节点或购买有多上游的越南本地机房。结合监控验证效果即可。
来源:越南 云服务器 网络优化技巧 降低丢包与抖动的方法