Files
xmz7891 accd0fae3f 补充 A 组(受控对照)的数据:39 分钟 100% 可用
用户要求停掉智能体,所以 A/B 对照只跑完了 A 组就收尾。
A 组数据(quic 8 + h2 2)是迄今最好的一段:

    可用率  142/142 = 100.00%
    耗时    最小 878  中位 1270  P90 2375  P99 4010  最大 8119 ms

P99 从 2 小时长测的 14242ms 降到 4010ms。

同时段连接数(36 个采样点):
    QUIC:   最低 5  最高 8  平均 7.2
            分布 {8条:21, 7条:8, 6条:1, 5条:6}
    HTTP/2: 最低 2  最高 2
    QUIC 塌陷(<=2 条): 0 次

**结论:QUIC 塌陷是间歇性的,不是每小时必发生。**
20:30~21:09 这段一次没塌;早些时候那 1 小时 44 分里塌了 2 次
(17:31、17:57)。这解释了短样本看到 100% 的原因 ——
不是数据好看,是那段确实没遇到链路抖动。

B 组(quic 6 + h2 4)没跑成,所以"要不要把 h2 提到 4 条"
这个问题本轮没有答案。但已有的证据(塌陷时 h2=2 从没掉到 0)
说明当前配置的兜底是够的。

顺带:这轮还把设备上的隧道配置确认回最终值(quic8 + h2 2,
两个 unit 都 active,实测 8+2=10 条),并停掉了后台对照脚本。
2026-10-07 21:10:29 +08:00

46 lines
2.1 KiB
Bash

#!/bin/bash
# 收尾:停掉 A/B 对照脚本,确认隧道配置是最终值
set -u
echo " ── 1. 停掉对照脚本 ──"
pkill -f 'rpab.sh' 2>/dev/null && echo " 已停 rpab.sh" || echo " (本来就没在跑)"
pkill -f 'rp_long2h.sh' 2>/dev/null && echo " 已停 rp_long2h.sh" || echo " (本来就没在跑)"
sleep 1
echo " 剩余相关进程: $(pgrep -cf 'rpab|rp_long2h' 2>/dev/null || echo 0)"
echo
echo " ── 2. 确认隧道配置是最终采用的(quic8 + h2 2)──"
for s in lanremote-tunnel lanremote-tunnel-h2; do
cfg=$(grep -oE -- '--protocol [a-z0-9]+|--ha-connections [0-9]+' \
"/etc/systemd/system/$s.service" 2>/dev/null | tr '\n' ' ')
printf " %-24s %-40s %s\n" "$s" "$cfg" "$(systemctl is-active $s)"
done
if grep -q 'ha-connections 4' /etc/systemd/system/lanremote-tunnel-h2.service 2>/dev/null; then
echo " ⚠ B 组配置还挂着(h2 4 条),改回 2 条"
sed -i 's/--ha-connections 4/--ha-connections 2/' /etc/systemd/system/lanremote-tunnel-h2.service
systemctl daemon-reload
systemctl restart lanremote-tunnel-h2
sleep 6
echo " 改完: $(grep -oE -- '--ha-connections [0-9]+' /etc/systemd/system/lanremote-tunnel-h2.service)"
else
echo " ✓ 已经是最终配置"
fi
echo
echo " ── 3. 连上几条 ──"
for p in 20241 20242; do
n=$(curl -s --max-time 4 "http://127.0.0.1:$p/metrics" 2>/dev/null \
| grep '^cloudflared_tunnel_ha_connections' | awk '{print $2}')
printf " 端口 %s -> %s 条\n" "$p" "${n:-读不到}"
done
echo
echo " ── 4. 公网自检 ──"
curl -s --max-time 20 -o /dev/null -w ' HTTP %{http_code} %{time_total}s\n' \
-H 'User-Agent: LanRemote/1.8.2' https://relay.xxmxxs.top/v1/health
echo
echo " ── 5. 保留的数据文件(不删,以后还能看)──"
ls -la --time-style=+%H:%M /root/ab_A_health.tsv /root/ab_A_conns.tsv /root/ab_A_res.tsv 2>/dev/null | awk '{printf " %s %s %s\n", $7, $6, $5}' || echo " (没有)"
echo " A 组样本: $(wc -l < /root/ab_A_health.tsv 2>/dev/null || echo 0)"