Commit Graph
5 Commits
Author SHA1 Message Date
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
xmz7891 fa2e1ae43c 补充:那个 JS bug 在做完修复之后又踩了一次(同一个坑,第二次)
在真实中转上实测管理页时,node --check 报第 46 行语法错。
出事的是注释:

    // ⚠ 这里必须是 \\n(反斜杠+n),不能是 \n ——
                                      ^^^^ 被 Python 变成真换行

**注释为了举例说明「不能写那个转义」,自己写了一个转义**,
于是注释被断成两行,整段 <script> 语法错误,
管理页所有按钮(改码/删除/批量删除/全选)全部失效。

修法:注释改成一个转义序列都不写,只用文字描述。

新增两道防线:
  * _tests/test_admin_js_syntax.py(回归阶段 3a6)
    本地渲染管理页 -> node --check。不连中转就能查出来。
  * _tests/test_admin_live.py
    真实中转上走 HTTP 实测两个功能(16/17 通过,唯一失败就是这个 bug)。
    它依赖线上设备,不进回归套件。

原来那个「管理页 JS 合法性」阶段只查 token 在不在,查不出语法错。
「测过」和「能用」是两件事 —— 这句话这轮被验证了两次。

部署时机:发现时 relay-stability 正在跑隧道 A/B,部署要重启中转
会打断对照,所以故意押后到对照跑完。
2026-10-07 20:34:06 +08:00
xmz7891 490adbdba3 补充 2 小时长测的最终数据(361 样本 / 1 小时 44 分)
可用率 356/361 = 98.61%
    耗时   最小 829  中位 1280  P90 2386  P99 14242

长测原定 2 小时,实际跑到 1 小时 44 分停了 ——
设备在 19:11 换网段(192.168.10.105 -> 192.168.2.156),
测量脚本随之断开。361 个样本足够说明问题。

改之前是 96~98%,现在 98.61%,且失败不集中在某个时段。
2026-10-07 20:29:58 +08:00
xmz7891 035c2cc4c5 补充连接数时间线证据:双协议兜底确实起作用
86 个采样点 / 约 1.5 小时:

    QUIC:   最低 1  最高 8  平均 7.5
    HTTP/2: 最低 1  最高 2  平均 2.0

    QUIC 塌陷(<= 2 条)只有 2 次,占 2.3%
    塌陷时 HTTP/2 一直是 >= 1 条(2/2 = 100%),归零 0 次

    QUIC 连接数分布:
      8 条  76.7%
      7 条  15.1%
      6 条   3.5%
      5 条   2.3%
      1 条   2.3%   <- 塌陷(1.5 小时里约 2 分钟)

一次典型塌陷的时间线也记下来了(watchdog 日志):
重启把中断从「可能几分钟」缩到 26 秒。

目标「0 掉线」做不到 —— 4G 链路上 QUIC 会周期性塌陷。
但影响被压到 2.3% 的窗口,而且 HTTP/2 全程兜住。

教训:多行中文提交信息里有引号时,PowerShell 的 -m 参数会被吃掉。
一律写进文件再用 -F 提交。
2026-10-07 19:03:45 +08:00
xmz7891 4cc368431c 新增 docs/优化实测数据.md:本轮所有优化的实测数字汇总
每一项都写清楚「改之前是多少、改之后是多少、怎么测的、受什么限制」,
以后有人问「这个改动到底有没有用」能直接翻数字,不用靠感觉。

内容包括:
  * 测量方法上的两个坑(从哪台机器测差很多、curl -I 验证 GET 是错的)
  * 下载吞吐 41 倍(含改之前/之后对照)
  * 隧道稳定性:配比对照表、QUIC 72% 拨号率的真因、
    MTU 1400 的效果、长时可用率
  * 长轮询 30 次数据(中位 61439ms)
  * 端到端延迟:局域网 0ms vs 本地中转 15ms
  * 局域网优化的四个真问题
  * 「按一下没反应」的完整证据链和根因
  * 独立验证发现的 9 个问题
  * 测试工具自己骗人的两次
  * 服务端部署脚本的三套测试
  * **没做到的部分**(98.5% 可用率的物理限制,如实记录)

这份是内部工程文档,已加进对外清洁度检查的允许清单
(和 docs/项目规矩.md、docs/双平台发布.md 同类)。
2026-10-07 19:02:57 +08:00