土 · 正见
今日概况:移动端网络排障体系搭建——从连接池爆炸到诊断规则硬化
今天的工作围绕 Mi8 移动端网络稳定性展开,产出了 4 篇文章,覆盖从物理层(USB 网卡芯片)到传输层(xray 连接池)再到方法论层(诊断规则硬化)的完整排障链条。
文章一览
| 文章 | slug | 内容概要 |
|---|---|---|
| Xray 连接池爆炸 + USB 网卡踩坑:一次移动端网络排障全记录 | 2026-07-01-connection-pool-postmortem | 追查 xray 连接池爆炸根因:httpcore keepalive 连接在代理断开后不失效 + USB 网卡断流导致级联故障。完整事故时间线与恢复过程 |
| Gateway 重连退避修复与诊断规则硬化:修一个 bug,补一个体系 | 2026-07-01-backoff-fix-and-methodology-hardening | 修复 _handle_polling_network_error 退避过慢(10 次重试 435s 休眠→缩短至 45s),并硬化两条诊断规则:「因果推测与实测证据分开标注」「禁止无测量依据的精确数字」写入 skill 体系 |
| Mi8 + AX88179 USB 网卡重启后不识别:PD/VBUS 深度调试 | 2026-07-01-mi8-pd-vbus-debug | PMI8998 VBUS 不输出根因定位:Type-C 检测正常、DWC3 退出低功耗、XHCI 启动,但 VBUS 始终不输出,15 秒后 DWC3 回低功耗 |
| 小米 8(SD845)外接 USB 网卡全面踩坑:四款芯片无一幸免 | 2026-07-01-usb-nic-troubleshooting | 系统性测试四款主流 USB 网卡芯片(AX88179、RTL8153、RTL8152B、CXM210102)在 Mi8/SD845 上的兼容性,结论:无一幸免 |
四条排障主线
xray 连接池爆炸(上午):诊断出 httpcore 连接池在代理断开时不释放失效连接 + 网关退避策略过慢的双重 bug。修复退避策略后恢复。
USB 网卡芯片踩坑(下午):AX88179(VL812Q 扩展坞中)因 RTL8153 占用 USB 2.0 带宽降速至 10Mbps;RTL8153 偶发断流且无官方内核驱动;RTL8152B 缺 CDC ECM 主机驱动;CXM210102 完全不被识别。
PD/VBUS 调试(傍晚):复现重启后 AX88179 不识别的问题,定位到 PMI8998 的 VBUS 输出控制逻辑问题,记录完整调试过程。
诊断规则硬化(深夜):基于以上排障中发现的问题——规则写了但没遵守——将两条诊断规则从引用中提取到 skill 顶层,并增加执行检查机制。
Git 提交记录(今日 4 次)
80d2bd9 macos: posts: xray 连接池爆炸 + USB 网卡踩坑排障全记录
e56f81f macos: posts: 小米8外接USB网卡全面踩坑——四款芯片无一幸免
54b41e1 macos: posts: Gateway 重连退避修复与诊断规则硬化
6359deb macos: posts: mi8 pd vbus debug木 · 蝉识
技术经验沉淀
连接池失效连接检测:httpcore 的 keepalive 连接池不会主动检测代理是否存活——它只在发起请求时尝试复用已有连接,如果连接已静默断开(如 xray 退出),请求会在等待超时(默认 15s)后才报错。解决方案:引入空闲连接健康检查或缩短 keepalive 超时。
网关退避策略设计:指数退避 + 抖动是好策略,但起始间隔和重试次数决定了恢复时间下界。原始策略 5/10/20/40/60/60/60/60/60/60 → 435s,修复后 1/2/4/8/15/15 → 45s。恢复时间从 7 分钟降到 45 秒。
USB 网卡与 SD845 兼容性矩阵:
| 芯片 | USB 2.0 (Mi8) | 驱动可用 | 稳定性 |
|---|---|---|---|
| AX88179 | 100Mbps | ✅ 内核内置 | ❌ 重启后 VBUS 不输出 |
| RTL8153 | 10Mbps (被共享带宽限制) | ❌ 无官方驱动 | ⚠️ 偶发断流 |
| RTL8152B | 10Mbps | ❌ 缺 CDC ECM 主机驱动 | ❌ |
| CXM210102 | 不可识别 | ❌ | ❌ |
- 方法论硬化:规则必须放在 skill 顶层(而非引用文件),且每次排障前应有「已读规则检查点」。写了但不用的规则等于没有。
金 · 判断
诊断价值判断
连接池事故 vs USB 网卡问题——前者影响网关可用性(直接影响用户),后者影响 Mi8 服务器部署。优先级:连接池修复 > USB 网卡调试。今天的时间分配合理。
「四款芯片无一幸免」的判断价值——这个结论虽然消极,但节省了大量重复试错时间。之前每试一个新芯片都抱有希望,这次系统性测试后可以确认:Mi8/SD845 外接 USB 网卡这条路目前没有好的解决方案。与其继续在 USB 网卡上投入,不如回归 WiFi 优化(Mesh 组网 / 信道选择)或考虑硬件升级。
诊断规则硬化的投入产出——修改 skill 引用的底层结构花了约 1 小时,但下次排障时节省的时间可能是 3-5 倍。这条投入在长期上是高杠杆的。
未竟之事:
- Mi8 USB PD/VBUS 问题尚未找到内核级修复方案(需要修改 PMI8998 驱动)
- 「诊断规则检查点」的自动化机制(在每次启动排障 session 时自动加载检查)尚未实现
- 木·蝉识中关于连接池调试的工具集(如
ss -tpein检查连接状态)尚未整理成可复用的排障 checklist
系统状态总览
| 组件 | 状态 | 备注 |
|---|---|---|
| 土 gateway (Mac本地) | ✅ running | PID 13114, 1 active agent, Telegram connected |
| 木 gateway (Docker minimaxlab-old) | ❌ container not found | 容器未运行或已被移除 |
| 金 gateway (Docker minimaxlab-old gold profile) | ❌ container not found | 容器未运行或已被移除 |
| Hugo site (本地) | ✅ 已构建 | 4 篇文章已提交,clean working tree |
| GitHub remote | ✅ origin 配置正确 | git@github.com:angelife/angelife.github.com.git |
| Git worktree | ✅ clean | 无未提交更改 |