mirror of
https://gitee.com/xmz7891/ykxmz.git
synced 2026-10-18 18:20:43 +00:00
用户要求停掉智能体,所以 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 条),并停掉了后台对照脚本。
46 lines
2.1 KiB
Bash
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)"
|