mirror of
https://gitee.com/xmz7891/ykxmz.git
synced 2026-10-18 10:10:43 +00:00
test_net_tune.py 原来断言 net-tune.sh 里写着 mtu 1500, 依据是更早一次实测「接口 MTU 降到 1400 会掉到 50%」。 那个结论后来被推翻了 —— 当时漏了一件事: **MSS 钳制只管 TCP,QUIC 走 UDP 完全不受保护。** 路径 MTU 实测 1472(1500 的包不通),QUIC 默认发 ~1452 的包会被 中间设备静默丢掉,而 UDP 丢了不回 ICMP,只能等超时。 把接口 MTU 压到 1400 之后,QUIC 建齐 10 条连接从 28 秒缩到 12 秒。 所以现在是**故意**设 1400。断言跟着改, 不然它会永久假失败,还会诱导后人把真正的改进改回 1500。 顺带记录:全量回归 38 个阶段全部通过。 新增的三个阶段(局域网优化 / 手表局域网切换 / 编码与换行 / 管理页设备控制)都是这轮加的。
52 lines
2.5 KiB
Bash
52 lines
2.5 KiB
Bash
#!/bin/bash
|
|
# 看 watchdog 到底按什么节奏在重启,以及是不是过度重启
|
|
set -u
|
|
|
|
echo "════════ 1. watchdog 最近 30 行 ════════"
|
|
tail -30 /root/lanremote-relay/watchdog.log 2>/dev/null | sed 's/^/ /'
|
|
|
|
echo
|
|
echo "════════ 2. 本次开机以来所有"重启隧道"记录 ════════"
|
|
grep -E '重启 \[' /root/lanremote-relay/watchdog.log 2>/dev/null | tail -25 | sed 's/^/ /'
|
|
|
|
echo
|
|
echo "════════ 3. 重启的间隔(判断是不是过频)════════"
|
|
grep -E '重启 \[' /root/lanremote-relay/watchdog.log 2>/dev/null \
|
|
| grep -oE '^\[[0-9-]+ [0-9:]+' | sed 's/\[//' \
|
|
| awk '{
|
|
cmd = "date -d \"" $0 "\" +%s"
|
|
cmd | getline ts; close(cmd)
|
|
if (prev) printf " %s (+%d 秒)\n", $0, ts - prev
|
|
else printf " %s\n", $0
|
|
prev = ts
|
|
}' | tail -25
|
|
|
|
echo
|
|
echo "════════ 4. 每次重启的原因分类 ════════"
|
|
grep -E '重启 \[' /root/lanremote-relay/watchdog.log 2>/dev/null \
|
|
| sed -E 's/^\[[0-9-]+ [0-9:]+\] //' \
|
|
| sed -E 's/(距上次 [0-9]+ 秒)//' \
|
|
| sed -E 's/\|/ | /g' \
|
|
| awk -F'——' '{print $1}' | sed 's/[0-9]\+ 次/N 次/' \
|
|
| sort | uniq -c | sort -rn | head -12 | sed 's/^/ /'
|
|
|
|
echo
|
|
echo "════════ 5. 服务重启计数(systemd 层面)════════"
|
|
for svc in lanremote-tunnel lanremote-tunnel-h2; do
|
|
n=$(journalctl -u "$svc" --since '3 hours ago' --no-pager 2>/dev/null | grep -c 'Starting')
|
|
echo " $svc 最近 3 小时启动 $n 次"
|
|
done
|
|
|
|
echo
|
|
echo "════════ 6. 最近 1 小时的完整 watchdog 活动 ════════"
|
|
awk '/\[10-07 (1[78]):/' /root/lanremote-relay/watchdog.log 2>/dev/null | tail -25 | sed 's/^/ /'
|
|
|
|
echo
|
|
echo "════════ 7. 当前状态 ════════"
|
|
echo " watchdog: $(systemctl is-active lanremote-watchdog.timer)"
|
|
echo " 状态文件: $(cat /root/lanremote-relay/watchdog.state 2>/dev/null | tr '\n' ' ')"
|
|
echo " 上次重启: $(date -d @$(cat /root/lanremote-relay/watchdog.last_restart 2>/dev/null || echo 0) '+%Y-%m-%d %H:%M:%S' 2>/dev/null)"
|
|
echo " 现在: $(date '+%Y-%m-%d %H:%M:%S')"
|
|
echo " 连接数: quic=$(curl -s --max-time 4 http://127.0.0.1:20241/metrics 2>/dev/null | grep ha_connections | awk '{print $2}') http2=$(curl -s --max-time 4 http://127.0.0.1:20242/metrics 2>/dev/null | grep ha_connections | awk '{print $2}')"
|
|
echo " 长测进度: 健康 $(wc -l < /root/long2h_health.tsv) 条, 轮询 $(wc -l < /root/rp_poll30.tsv) / 30"
|