列出准备工作:root权限或sudo账号;Linux(Debian/Ubuntu/CentOS)命令行;安装工具:iperf3、mtr、ethtool、tc(iproute2 包含)、speedtest-cli。示例安装命令:apt update && apt install -y iperf3 mtr-tiny ethtool iproute2 python3-pip && pip3 install speedtest-cli。在生产环境改动前,请在维护窗口测试并做好回滚计划。
步骤:1) 基本ping:ping -c 20 目标IP ,记录平均延迟与丢包。2) 路径质量:mtr -r -c 100 目标IP(或 mtr --report-cycles=100 IP),查看在哪一跳出现丢包或高延迟。3) 解释:若目标到本机最后一跳就出现丢包,问题在VPS或宿主机;若中间某跳开始丢包,可能是上游或国际链路问题。
1) 在测试目标机器(比如你自己的家用机或另一个云节点)启动服务器:iperf3 -s。2) 在越南VPS上作为客户端执行:iperf3 -c SERVER_IP -t 60 -P 8 -w 256K。参数说明:-t 测试时长,-P 并发流数量,-w TCP 窗口。3) UDP测试(评估丢包):iperf3 -c SERVER_IP -u -b 900M -t 30 。4) 结果解读:G口理论接近940Mbps(考虑开销),若远低于此则继续排查。
1) 查看网卡与驱动:ethtool -i eth0。2) 查看统计错误:ethtool -S eth0(注意不同驱动字段不同)。3) 查看链路速率:ethtool eth0。若不是1000baseT,使用 ethtool -s eth0 speed 1000 duplex full autoneg on(部分虚拟环境不允许)。4) 若发现错误计数高,联系宿主机商或更换实例。
1) 检查当前MTU:ip link show eth0。2) 路径MTU测试:tracepath TARGET_IP(会显示最大可用MTU)。3) 临时调整:ip link set dev eth0 mtu 1400(若VPN或隧道需降低MTU)。4) 永久修改:在 /etc/network/interfaces 或网卡配置处设置。每改动后用 iperf3 再测一次。
1) 查看当前卸载状态:ethtool -k eth0。2) 若怀疑卸载导致问题(虚拟化驱动兼容性),临时关闭测试:ethtool -K eth0 tso off gso off gro off;然后用 iperf3 再测。3) 若关闭后性能变好,说明驱动卸载支持有问题,建议联系提供商或保留关闭设置。
1) 查看内核支持:sysctl net.ipv4.tcp_congestion_control(应显示 bbr 可用),lsmod | grep bbr。2) 开启 BBR 并设置默认队列:sysctl -w net.core.default_qdisc=fq && sysctl -w net.ipv4.tcp_congestion_control=bbr。3) 持久化:在 /etc/sysctl.conf 添加 net.core.default_qdisc=fq 和 net.ipv4.tcp_congestion_control=bbr,执行 sysctl -p。4) 推荐调优窗口:sysctl -w net.ipv4.tcp_window_scaling=1;设置 rmem/wmem 为:sysctl -w net.ipv4.tcp_rmem="4096 87380 6291456" && sysctl -w net.ipv4.tcp_wmem="4096 16384 6291456"。
1) 安装 tc(通常随 iproute2):apt install -y iproute2. 2) 使用 cake(若内核支持):tc qdisc add dev eth0 root cake bandwidth 900mbit nat triple-isolate ingress 等。3) 若没有 cake,可用 fq_codel:tc qdisc add dev eth0 root fq_codel。4) 简单限速示例(tbf):tc qdisc add dev eth0 root tbf rate 900mbit burst 32k latency 50ms。5) 删除规则:tc qdisc del dev eth0 root。每次变更后用 iperf3 与实际业务流测试。
1) 如使用 OpenVPN,注意 UDP 模式通常延迟更低;调小 MTU(比如 1400)并开启 mssfix。2) WireGuard 性能更好,尽量使用内核模块版本。3) 若通过隧道,使用 iperf3 测试隧道本地两端,并比较直连差异,判断优化空间。
1) 本地到VPS ping 与 mtr 确定链路质量。2) 在 VPS 与测试点做 iperf3 单向/双向测试并调整 -P、-w 参数。3) 检查网卡速率与错误(ethtool)。4) 关闭硬件卸载复测。5) 开启 BBR 与调整 tcp_rmem/tcp_wmem,再测。6) 使用 tc/cake 控制队列并测试。7) 若仍有问题,联系 VPS 提供商排查宿主机或上游链路。
1) 部署持续监控:使用 Prometheus + node_exporter(收集接口速率、错误、丢包、延迟)。2) 保存 iperf3 与 mtr 周期性测试结果以便趋势分析。3) 针对高并发业务,考虑分流、多区容灾与CDN加速。
答:先使用 iperf3 -c SERVER -P 8 -t 60 测试并观察平均吞吐,如果接近900~940Mbps且丢包低、RTT稳定,说明接近千兆带宽;同时用 ethtool 确认链路为 1000baseT 并无错误计数,mtr 显示中间跳无明显丢包,这些条件同时满足即可认为接近满速。
答:最关键的是设置 net.core.default_qdisc=fq 与 net.ipv4.tcp_congestion_control=bbr;同时建议启用 tcp_window_scaling 并合理增大 tcp_rmem/tcp_wmem(例如最大值设置到 6MB),执行 sysctl -p 持久化后用 ss -t -o state established '( dport = :80 or sport = :80 )' 检查连接拥塞控制是否为 bbr。
答:第一步按顺序排查:1) 用 mtr 找出是否某跳开始丢包或高延迟;2) 在 VPS 与测试服务器分别检查 ethtool 是否有错误并确认链路速率;3) 临时关闭网卡卸载(tso/gso/gro)看是否变化;4) 测试不同并发(-P)与窗口(-w)参数,最后尝试启用 BBR 或使用 tc 调整队列,若都无效则联系 VPS 提供商。