# S3b / S3c 本机 Docker 实测计划 - 对应筛选:`.dsh/artifacts/run-20260901-browser-arch/select.md` - 主机假设:darwin arm64 / Docker Desktop 29.4.0(与 S3a 相同) - 代理:先 `export PROXY_SUB_URL`(只从 `.dsh/artifacts/proxy-subscriptions.local.md` SUB-1 注入),再 `bash bench/proxy/up.sh`。国外组复用 `http://127.0.0.1:17890`。**脚本与 JSON 禁止出现订阅 URL / uuid / password。** - 同时运行 **候选容器 ≤3**。`bench-proxy-mihomo` 算基建,不占 3 席。 - 每方案第一次发业务请求前:**idle 采样 5 分钟**。 ## 0. 目录骨架(S3b 建,本文件只约定) ``` bench/ lib/ sample_stats.sh # docker stats 循环 curl_time.sh # 单次计时 summarize.py # 读 raw → results.json searxng-cn/ compose.yml settings.yml request.sh results.json trafilatura-http/ compose.yml Dockerfile app.py request.sh results.json searxng-global/ compose.yml settings.yml request.sh results.json lightpanda/ compose.yml request.sh results.json chrome-headless-shell/ compose.yml request.sh results.json raw/ # 各批次 stats-*.tsv 与 curl-*.jsonl(可选) ``` `results.json` 顶层必须能被评分卡直接引用,字段见 §4。 --- ## 1. 统一采集规范 ### 1.1 容器命名 | 方案 | 容器名 | 宿主机端口 | |---|---|---| | searxng-cn | `bench-searxng-cn` | 18880 → 8080 | | trafilatura-http | `bench-trafilatura` | 18881 → 8080 | | searxng-global | `bench-searxng-global` | 18882 → 8080 | | lightpanda | `bench-lightpanda` | 19222 → 9222 | | chrome-headless-shell | `bench-headless-shell` | 19223 → 9222 | | 代理(基建) | `bench-proxy-mihomo` | 17890 / 19090(已有) | ### 1.2 docker stats `bench/lib/sample_stats.sh` 约定(S3b 实现时按此抄): ```bash # 用法: sample_stats.sh