docs: 联网搜索服务架构方案全套(plan-final/design-arch/选型决策/整合导览/MCP文档/部署预设/联调手册) bench: 5 方案 + 代理 + 站点矩阵本机实测工程(无密钥) 部署目标:primary mgr1 先行测试(待批准后执行)
323 lines
9.1 KiB
JSON
323 lines
9.1 KiB
JSON
{
|
||
"scheme": "chrome-headless-shell",
|
||
"group": "foreign_proxy",
|
||
"image": {
|
||
"ref": "docker.io/chromedp/headless-shell:151.0.7922.109",
|
||
"digest": "sha256:2d349b544a1ea6b5b5fd7c0fe99215ff662339c57407ee2e8c0a11af93516b04",
|
||
"id": "sha256:2d349b544a1ea6b5b5fd7c0fe99215ff662339c57407ee2e8c0a11af93516b04",
|
||
"arch": "arm64",
|
||
"pull": "hub"
|
||
},
|
||
"probed_at": "2026-09-01T12:10:38+08:00",
|
||
"commands": [
|
||
"docker compose -p bench-s3c-headless-shell up -d",
|
||
"node cdp_fetch.mjs http://127.0.0.1:19223 <url>",
|
||
"T5 ThreadPoolExecutor workers=1 n=60"
|
||
],
|
||
"proxy": {
|
||
"mixed": "http://127.0.0.1:17890",
|
||
"container_via": "http://host.docker.internal:17890",
|
||
"generate_204_http": "204",
|
||
"host_docker_internal": "fdc4:f303:9324::254 host.docker.internal",
|
||
"egress_note": "HTTP(S)_PROXY + extra_hosts host-gateway"
|
||
},
|
||
"rss_source": "docker_stats+cgroup",
|
||
"idle_mb_p50": 37.46,
|
||
"session_delta_mb": 356.54,
|
||
"burst_peak_mb": 179.3,
|
||
"session_peak_mb": 394.0,
|
||
"templates": {
|
||
"T4-ctrl": {
|
||
"n": 3,
|
||
"success": 3,
|
||
"http_codes": [
|
||
200,
|
||
200,
|
||
200
|
||
],
|
||
"p50_s": 1.129,
|
||
"p95_s": 2.8786,
|
||
"assert_ok": true,
|
||
"note": "",
|
||
"html_vs_text": [
|
||
{
|
||
"html_len": 8925,
|
||
"text_len": 1499,
|
||
"title": "Quotes to Scrape"
|
||
},
|
||
{
|
||
"html_len": 8925,
|
||
"text_len": 1499,
|
||
"title": "Quotes to Scrape"
|
||
},
|
||
{
|
||
"html_len": 8925,
|
||
"text_len": 1499,
|
||
"title": "Quotes to Scrape"
|
||
}
|
||
]
|
||
},
|
||
"T4-medium": {
|
||
"n": 3,
|
||
"success": 1,
|
||
"http_codes": [
|
||
200,
|
||
200,
|
||
200
|
||
],
|
||
"p50_s": 10.956,
|
||
"p95_s": 13.8855,
|
||
"assert_ok": true,
|
||
"note": "medium_wall_or_waf",
|
||
"html_vs_text": [
|
||
{
|
||
"html_len": 91669,
|
||
"text_len": 226,
|
||
"title": "Medium"
|
||
},
|
||
{
|
||
"html_len": 5193,
|
||
"text_len": 687,
|
||
"title": "Attention Required! | Cloudflare"
|
||
},
|
||
{
|
||
"html_len": 5193,
|
||
"text_len": 687,
|
||
"title": "Attention Required! | Cloudflare"
|
||
}
|
||
]
|
||
},
|
||
"T4-shop": {
|
||
"n": 3,
|
||
"success": 3,
|
||
"http_codes": [
|
||
200,
|
||
200,
|
||
200
|
||
],
|
||
"p50_s": 16.363,
|
||
"p95_s": 20.0818,
|
||
"assert_ok": true,
|
||
"note": "",
|
||
"html_vs_text": [
|
||
{
|
||
"html_len": 1453525,
|
||
"text_len": 2886,
|
||
"title": "Allbirds: Sustainable Men’s Shoes, Wear-All-Day Comfort"
|
||
},
|
||
{
|
||
"html_len": 1459360,
|
||
"text_len": 2886,
|
||
"title": "Allbirds: Sustainable Men’s Shoes, Wear-All-Day Comfort"
|
||
},
|
||
{
|
||
"html_len": 1462947,
|
||
"text_len": 2886,
|
||
"title": "Allbirds: Sustainable Men’s Shoes, Wear-All-Day Comfort"
|
||
}
|
||
]
|
||
},
|
||
"T4-amz": {
|
||
"n": 3,
|
||
"success": 3,
|
||
"http_codes": [
|
||
200,
|
||
200,
|
||
200
|
||
],
|
||
"p50_s": 1.305,
|
||
"p95_s": 1.9431,
|
||
"assert_ok": true,
|
||
"note": "三次均为 title=Page Not Found、text_len=0(软拦截/ASIN 页对无头不可用),未出现明确 captcha 文案",
|
||
"html_vs_text": [
|
||
{
|
||
"html_len": 2327,
|
||
"text_len": 0,
|
||
"title": "Page Not Found"
|
||
},
|
||
{
|
||
"html_len": 2327,
|
||
"text_len": 0,
|
||
"title": "Page Not Found"
|
||
},
|
||
{
|
||
"html_len": 2326,
|
||
"text_len": 0,
|
||
"title": "Page Not Found"
|
||
}
|
||
]
|
||
},
|
||
"T4-t3x": {
|
||
"n": 1,
|
||
"success": 1,
|
||
"http_codes": [
|
||
200
|
||
],
|
||
"p50_s": 5.474,
|
||
"p95_s": 5.474,
|
||
"assert_ok": true,
|
||
"note": "",
|
||
"html_vs_text": [
|
||
{
|
||
"html_len": 194292,
|
||
"text_len": 7985,
|
||
"title": "best bluetooth earbuds 2026 reddit at DuckDuckGo"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
"t5": {
|
||
"n": 60,
|
||
"parallelism": 1,
|
||
"queue_impl": "client_fifo",
|
||
"success": 60,
|
||
"success_rate": 1.0,
|
||
"p50_s": 1.1175,
|
||
"p95_s": 1.3301,
|
||
"oom": false,
|
||
"http_429": 0,
|
||
"http_503": 0,
|
||
"first_complete_s": 1.9423,
|
||
"last_complete_s": 73.9736,
|
||
"queue_wait_p50_s": 36.9965,
|
||
"queue_wait_p95_s": 69.2738,
|
||
"rejected": 0,
|
||
"wall_s": 73.974,
|
||
"note": "CONCURRENT=1 client_fifo:60 个任务全部入队并顺序执行,无 429/拒绝;墙钟 74s;第 60 个 start_s≈72.9s。生产应是 SQLite WAL + CONCURRENT。"
|
||
},
|
||
"t4_waf": [
|
||
{
|
||
"tier": "T4-ctrl",
|
||
"url": "https://quotes.toscrape.com/js/",
|
||
"blocked": false,
|
||
"vendor": "none",
|
||
"http_status_in_page": null,
|
||
"final_url": "https://quotes.toscrape.com/js/",
|
||
"title": "Quotes to Scrape"
|
||
},
|
||
{
|
||
"tier": "T4-ctrl",
|
||
"url": "https://quotes.toscrape.com/js/",
|
||
"blocked": false,
|
||
"vendor": "none",
|
||
"http_status_in_page": null,
|
||
"final_url": "https://quotes.toscrape.com/js/",
|
||
"title": "Quotes to Scrape"
|
||
},
|
||
{
|
||
"tier": "T4-ctrl",
|
||
"url": "https://quotes.toscrape.com/js/",
|
||
"blocked": false,
|
||
"vendor": "none",
|
||
"http_status_in_page": null,
|
||
"final_url": "https://quotes.toscrape.com/js/",
|
||
"title": "Quotes to Scrape"
|
||
},
|
||
{
|
||
"tier": "T4-medium",
|
||
"url": "https://medium.com/airbnb-engineering/rearchitecting-airbnbs-frontend-b5da7e3e8395",
|
||
"blocked": false,
|
||
"vendor": "none",
|
||
"http_status_in_page": null,
|
||
"final_url": "https://medium.com/airbnb-engineering/rearchitecting-airbnbs-frontend-b5da7e3e8395",
|
||
"title": "Medium"
|
||
},
|
||
{
|
||
"tier": "T4-medium",
|
||
"url": "https://medium.com/airbnb-engineering/rearchitecting-airbnbs-frontend-b5da7e3e8395",
|
||
"blocked": true,
|
||
"vendor": "cloudflare",
|
||
"http_status_in_page": null,
|
||
"final_url": "https://medium.com/airbnb-engineering/rearchitecting-airbnbs-frontend-b5da7e3e8395",
|
||
"title": "Attention Required! | Cloudflare"
|
||
},
|
||
{
|
||
"tier": "T4-medium",
|
||
"url": "https://medium.com/airbnb-engineering/rearchitecting-airbnbs-frontend-b5da7e3e8395",
|
||
"blocked": true,
|
||
"vendor": "cloudflare",
|
||
"http_status_in_page": null,
|
||
"final_url": "https://medium.com/airbnb-engineering/rearchitecting-airbnbs-frontend-b5da7e3e8395",
|
||
"title": "Attention Required! | Cloudflare"
|
||
},
|
||
{
|
||
"tier": "T4-shop",
|
||
"url": "https://www.allbirds.com/products/mens-wool-runners",
|
||
"blocked": false,
|
||
"vendor": "none",
|
||
"http_status_in_page": null,
|
||
"final_url": "https://www.allbirds.com/collections/mens",
|
||
"title": "Allbirds: Sustainable Men’s Shoes, Wear-All-Day Comfort"
|
||
},
|
||
{
|
||
"tier": "T4-shop",
|
||
"url": "https://www.allbirds.com/products/mens-wool-runners",
|
||
"blocked": false,
|
||
"vendor": "none",
|
||
"http_status_in_page": null,
|
||
"final_url": "https://www.allbirds.com/collections/mens",
|
||
"title": "Allbirds: Sustainable Men’s Shoes, Wear-All-Day Comfort"
|
||
},
|
||
{
|
||
"tier": "T4-shop",
|
||
"url": "https://www.allbirds.com/products/mens-wool-runners",
|
||
"blocked": false,
|
||
"vendor": "none",
|
||
"http_status_in_page": null,
|
||
"final_url": "https://www.allbirds.com/collections/mens",
|
||
"title": "Allbirds: Sustainable Men’s Shoes, Wear-All-Day Comfort"
|
||
},
|
||
{
|
||
"tier": "T4-amz",
|
||
"url": "https://www.amazon.com/dp/B08N5WRWNW",
|
||
"blocked": false,
|
||
"vendor": "none",
|
||
"http_status_in_page": null,
|
||
"final_url": "https://www.amazon.com/dp/B08N5WRWNW",
|
||
"title": "Page Not Found"
|
||
},
|
||
{
|
||
"tier": "T4-amz",
|
||
"url": "https://www.amazon.com/dp/B08N5WRWNW",
|
||
"blocked": false,
|
||
"vendor": "none",
|
||
"http_status_in_page": null,
|
||
"final_url": "https://www.amazon.com/dp/B08N5WRWNW",
|
||
"title": "Page Not Found"
|
||
},
|
||
{
|
||
"tier": "T4-amz",
|
||
"url": "https://www.amazon.com/dp/B08N5WRWNW",
|
||
"blocked": false,
|
||
"vendor": "none",
|
||
"http_status_in_page": null,
|
||
"final_url": "https://www.amazon.com/dp/B08N5WRWNW",
|
||
"title": "Page Not Found"
|
||
},
|
||
{
|
||
"tier": "T4-t3x",
|
||
"url": "https://duckduckgo.com/?q=best+bluetooth+earbuds+2026+reddit",
|
||
"blocked": false,
|
||
"vendor": "none",
|
||
"http_status_in_page": null,
|
||
"final_url": "https://duckduckgo.com/?q=best+bluetooth+earbuds+2026+reddit&ia=web",
|
||
"title": "best bluetooth earbuds 2026 reddit at DuckDuckGo"
|
||
}
|
||
],
|
||
"scorecard": {
|
||
"mem": 66.7,
|
||
"quality": 100,
|
||
"stability": 100,
|
||
"latency": 100.0,
|
||
"ops": 55,
|
||
"total": 85.5
|
||
},
|
||
"notes": [
|
||
"queue_impl=client_fifo; 生产应是 SQLite WAL + CONCURRENT",
|
||
"image pull: docker.io hub linux/arm64, 无需 daocloud",
|
||
"compose 不可把带空格的 --user-agent 传给镜像 run.sh($@ 未加引号);UA 改由 CDP Network.setUserAgentOverride",
|
||
"T4-shop: 同样 302 到 /collections/mens,正文可见 $140 等列表价",
|
||
"T4-medium: 第 1 次 Medium 404 壳页;第 2–3 次 Cloudflare block",
|
||
"session 峰值 394.0MiB / mem_limit 400m,Allbirds 页,接近 cgroup 上限,未 OOMKilled"
|
||
]
|
||
}
|