Gatewaysentry 月付40U CN2 调优前后 对比

yazhe 2026-07-06 17:58 1

刚买时测试



改了bbr后 调优前



调优后



让AI总结的


MTU 1440 + TBF 85M 优化测试记录


机器原始状态下 iperf3 / NQ 国际互连发送方向重传较高,尤其是跨洲测试时经常出现几千重传。

这次按“先 baseline、再临时测试、最后固化”的方式调整。


结论


我的机器最终有效配置:


MTU: 1440
TBF: 85Mbit
BBR: 已开启
qdisc: fq / tbf
TCP buffer: 保持原有 64MB 配置

实测结果:































状态 国际发送重传 接收重传 结论
原始 MTU 1500 4k-7k 6k-7k 发送方向重传高
MTU 1440,无 TBF 4k-8k 6k-7k 单改 MTU 不够
MTU 1440 + TBF 85M 基本 0 6k-7k 发送方向修好

接收方向重传仍然存在,这个属于入口方向/上游 policing,本机 TBF 管不到。




1. 识别网卡


我这里是 root 用户,非 root 请自行加 sudo


IFACE=$(ip route get 1.1.1.1 | awk '{for(i=1;i<=NF;i++) if($i=="dev"){print $(i+1); exit}}')
echo "IFACE=$IFACE"
ip link show dev "$IFACE"

我的结果是:


IFACE=eth0
mtu 1500



2. 原始 baseline 测试


mkdir -p ~/mtu-test
cd ~/mtu-test

{
echo "===== BASELINE $(date) ====="
echo "IFACE=$IFACE"
ip link show dev "$IFACE"
sysctl net.ipv4.tcp_congestion_control net.core.default_qdisc
sysctl net.core.rmem_max net.core.wmem_max net.core.optmem_max
sysctl net.ipv4.tcp_rmem net.ipv4.tcp_wmem
tc -s qdisc show dev "$IFACE"
} 2>&1 | tee baseline-info.log

bash <(curl -sL https://Check.Place) -N 2>&1 | tee baseline-nq.log

可选安装 traceroute 看 MTU:


apt update && apt install -y traceroute
traceroute --mtu 1.1.1.1 2>&1 | tee baseline-traceroute-mtu.log



3. 临时设置 MTU 1440 + TBF 85M


ip link set dev "$IFACE" mtu 1440
tc qdisc replace dev "$IFACE" root tbf rate 85mbit burst 32k latency 400ms

ip link show dev "$IFACE"
tc -s qdisc show dev "$IFACE"

然后重新跑测试:


traceroute --mtu 1.1.1.1 2>&1 | tee after-1440-traceroute-mtu.log
bash <(curl -sL https://Check.Place) -N 2>&1 | tee after-1440-nq.log
tc -s qdisc show dev "$IFACE" | tee after-1440-tc.log

我的 traceroute --mtu 结果里出现:


F=1440

后面没有继续压低到 1280 或更低。




4. 对照测试:只改 MTU,不加 TBF


tc qdisc del dev "$IFACE" root 2>/dev/null
ip link set dev "$IFACE" mtu 1440

bash <(curl -sL https://Check.Place) -N 2>&1 | tee after-1440-no-tbf-nq.log

我的结果是:只改 MTU 1440 后,国际互连发送重传又回到几千。

所以这台主要问题不是 MTU 本身,而是出口跑满时撞机房 policing,需要本地 shaping。




5. 固化 TBF 85M


先恢复临时有效配置:


ip link set dev "$IFACE" mtu 1440
tc qdisc replace dev "$IFACE" root tbf rate 85mbit burst 32k latency 400ms

创建脚本:


cat >/usr/local/bin/tc-shaping.sh <<EOF
#!/bin/bash
INTERFACE="$IFACE"

tc qdisc del dev \$INTERFACE root 2>/dev/null
tc qdisc add dev \$INTERFACE root tbf rate 85mbit burst 32k latency 400ms
EOF


chmod +x /usr/local/bin/tc-shaping.sh

创建 systemd 服务:


cat >/etc/systemd/system/tc-shaping.service <<'EOF'
[Unit]
Description=Traffic Shaping to prevent Upstream Policing Drops
After=network-online.target
Wants=network-online.target

[Service]
Type=oneshot
ExecStart=/usr/local/bin/tc-shaping.sh
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
systemctl enable --now tc-shaping.service

检查:


systemctl is-enabled tc-shaping.service
systemctl status tc-shaping.service --no-pager
tc -s qdisc show dev "$IFACE"

正常应看到:


enabled
Active: active (exited)
rate 85Mbit
dropped 0



6. 固化 MTU 1440


我这台是 Ubuntu Netplan:


ls /etc/netplan/
sed -n '1,160p' /etc/netplan/50-cloud-init.yaml

在对应网卡块下面加入:


      mtu: 1440

示例:


network:
version: 2
ethernets:
eth0:
match:
macaddress: "02:94:27:28:33:ef"
addresses:
- "你的IP/掩码"
nameservers:
addresses:
- 8.8.8.8
search:
- local
set-name: "eth0"
mtu: 1440
routes:
- to: "default"
via: "你的网关"

应用配置:


netplan try
netplan apply

最终确认:


ip link show dev "$IFACE"
tc -s qdisc show dev "$IFACE"
systemctl is-enabled tc-shaping.service

应看到:


mtu 1440 qdisc tbf
rate 85Mbit
tc-shaping.service enabled



7. 撤销方法


撤销 TBF:


systemctl disable --now tc-shaping.service
tc qdisc del dev "$IFACE" root 2>/dev/null

撤销 MTU:


# 删除 netplan 里的 mtu: 1440
netplan apply



补充说明


TBF 85M 会牺牲一点出口峰值,但可以显著降低发送方向重传。

我的机器原来国际互连发送重传常见 4k-7k,套上 MTU 1440 + TBF 85M 后,发送重传基本归零。


接收方向重传仍然高,这不是本机出口 shaping 能解决的,因为远端往你机器发包时,入口方向的丢包/限速已经发生在上游或机房侧。

最新回复 (1)
  • tof 07-06 18:05
    1

    太漂亮了!

* 帖子来源NodeSeek
返回