docs: 补测结论回填与限流口径同步(docs/01 E2 / docs/08 F-99·F-100 / docs/09 §9 / 交接摘要 §一·三十)
- docs/09 §9 重排为 9.1 结果 / 9.2 结论 / 9.3 门禁两次修正 / 9.4 怎么跑 / 9.5 补测记录(上传并发、5000 行导入、导出大包、长跑)/ 9.6 仍然没测的; 补记机器规格(12 物理核 / 59.6GB,全在同一台机器上)。 - docs/01 E2 二次修正备案:成功侧 200→600,附实测证据。 - docs/08:F-99(压测工具自己撒的 8 次谎)、F-100(门禁成功上限卡年级量级)、 F-5/F-6 核销与更新,变更记录补 3 行;问题清单到 F-1~F-100。 - 交接摘要:§一·二十九(提交入库+文档小账)之后补 §一·三十(四项补测+门禁二次修正+磁盘清理)。 - AGENTS.md:清理残留一节写清 dry-run 默认与「演示态挂在 E2E 班下面」的风险。 验证:python scripts/verify-all.py --quick → 通过 5 / 失败 0
This commit is contained in:
+42
-1
@@ -2286,7 +2286,7 @@ M1 规则模板与任务克隆 → M2 报考范围与名册改删 → M3 提交
|
||||
**§14 开放接口(认定机构对接,HMAC)** → 小程序登录与组织导入 → 工作台数据看板 →
|
||||
CI/CD 与 test/prod 环境 → 压测 → 用户手册与客服话术 → 缩略图与 H5 dev server。
|
||||
|
||||
**每一轮的"做了什么 / 发现了什么"都在 docs/08 §六**,包含 98 条编号问题(F-1~F-98)。
|
||||
**每一轮的"做了什么 / 发现了什么"都在 docs/08 §六**,包含 100 条编号问题(F-1~F-100)。
|
||||
|
||||
### 这 20 多轮里最该记住的几条
|
||||
|
||||
@@ -2379,3 +2379,44 @@ CI/CD 与 test/prod 环境 → 压测 → 用户手册与客服话术 → 缩略
|
||||
`docs/08` §四 剩下的**全部是外部依赖**(OCR 选型 / 小程序类目 / `union_id` / 真机 / 二期),
|
||||
另有 4 项"**没测过**":导出大包打包、上传并发、5000 行名册导入、长跑稳定性
|
||||
(`docs/09` §9.5 逐条写明"没测就是没测")。
|
||||
|
||||
---
|
||||
|
||||
## §一·三十 把"没测过的四项"测完 + 门禁上限二次修正(2026-09-30 上午)
|
||||
|
||||
> §一·二十九 里那 4 项"没测过",这一轮全部变成了"测过",数字都在 `docs/09` §9.5。
|
||||
> 顺带抓到一个会挡住**一所学校**的真缺陷(F-100),并把本地磁盘的糊涂账清了(F-5 落地)。
|
||||
|
||||
### 一、四项补测的结果(`docs/09` §9.5 有复现命令)
|
||||
|
||||
| 场景 | 结果 |
|
||||
|---|---|
|
||||
| 上传并发(真 JPEG 2850KB / 20 并发) | **40/40 成功**;**串行单请求 321ms**(压到 **47%**);并发 p50 620ms / p95 801ms —— 差值是排队,压缩是单线程 CPU 活 |
|
||||
| 名册导入 5000 行(PRD 上限) | **20.2s**("造 Excel 0.7s"是压测脚本自己的成本,已分开报);RSS 782MB |
|
||||
| 导出大包 150 人 / 194.6MB | **打包墙钟 13.2s**(≈15MB/s,JPEG 压不动 → 瓶颈是磁盘 I/O);强制分卷 → **4 卷且每卷都能单独解开**,汇总表在第 1 卷根 |
|
||||
| 长跑 60 分钟(5 请求/秒 / 名册 2000 行) | 51 样本 / **15300 请求 / 0 失败**;RSS **603.9 → 582.9MB(平稳)**;PG 连接 17.0 → 6.2(定时任务高峰后正常回落);p95 62ms 不变。**无泄漏迹象** |
|
||||
|
||||
### 二、门禁成功上限 200 → 600(F-100,F-92 的第二次复发)
|
||||
|
||||
- 契约 §1.6 只规定**失败侧**;成功侧 200/分钟是本项目自己加的,而它**恰好卡在"一个年级"**:
|
||||
实测 **250 个不同学生同时核验 → 213 成功、37 被挡**(「当前网络访问过于集中」)。
|
||||
全校在同一出口 IP 集中扫码(开学第一课集体填报)就会撞上,**而没有人做错了什么**。
|
||||
- 已上调 600,复测 **250/250、500/500**,`e2e-m3-gate` 仍 **29/29**;
|
||||
**失败侧两个计数器原样未动**(防枚举强度没有降低)。同步 `docs/01` E2 与 `docs/09` §9.3。
|
||||
|
||||
### 三、磁盘的糊涂账清了(F-5 落地)
|
||||
|
||||
`backend/data/uploads` 里 **281 个文件 / 276MB,而库里只剩 16 行** —— 压测与 E2E 都只删库行。
|
||||
`dev-clean-e2e.py` 新增 `--orphan-files` / `--only-orphan-files` / `--demo-tasks`
|
||||
(业务表按 `information_schema` **动态枚举**,以后加表不会漏),已清 **255 个 / 275.4MB**。
|
||||
⚠️ e2e 租户与"E2E 24数控1班"组织**刻意没删**:当前演示态正挂在其中一个班下面,
|
||||
删了会把演示态弄坏 —— 要清先确认演示态已迁到正式组织(预览:`python scripts/dev-clean-e2e.py`)。
|
||||
|
||||
### 四、这轮最该记住的两条
|
||||
|
||||
1. **补测的价值一半在数字,另一半在"原来夹具一直不成立"**(F-99,压测工具自己撒了 8 次谎:
|
||||
前置未断言 / 假 JPEG / 猜列名 / 判据取错返回值 / 跨租户同名账号 / 不查返回码 /
|
||||
PowerShell `-First` 截管道 / 清理不删文件)—— 其中"跨租户同名 admin"与"HTTP 码当业务码"
|
||||
都是 F-84/F-96 的同类,**第三次出现**。
|
||||
2. **自己加的防御性限额也要过一遍真实场景的量级**(F-100)——
|
||||
否则它与它要防的东西一样,都是事故。
|
||||
|
||||
Reference in New Issue
Block a user