必须用 curl -w 测 packages.json 的 ttfb,而非 ping 或 composer diag;需加 user-agent、accept 头,用 --resolve 直连 ip,验证 last-modified 时效性,并取三次 ttfb 中位数判断稳定性。

直接用 curl 测 packages.json 的 TTFB,别信 ping 或 composer diag
composer diag 只告诉你“能不能通”,不测真实 HTTP 延迟;ping 更是完全无关——Composer 走 HTTPS + cURL,受 DNS、TLS 握手、CDN 路由影响远大于 ICMP。真正卡住的是 packages.json 的首字节时间(TTFB),必须用 curl -w 模拟 Composer 实际请求行为。
- 加
-H "User-Agent: Composer/2.9.6"(版本号用composer --version查) - 加
-H "Accept: application/json",否则部分镜像返回 HTML 页或 403 - 用
-w "\nTTFB: %{time_starttransfer}s, Total: %{time_total}s\n"提取关键耗时 - 加
-s -o /dev/null -f静默执行,避免响应体干扰和错误页污染输出
绕过 DNS 和 SNI 问题,直连镜像 IP 才准
有些镜像(如腾讯云)依赖 SNI 或 Host 头路由,DNS 解析出的 IP 可能和实际服务节点不一致,导致 curl 直连域名失败或跳转。这时必须用 --resolve 强制绑定 IP。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 先查 IP:
dig +short mirrors.tencentyun.com - 再直连:
curl --resolve mirrors.tencentyun.com:443:119.29.29.29 -H "Host: mirrors.tencentyun.com" ... - 阿里云镜像通常不需要,但华为云在 IPv6 不稳环境下,加
COMPOSER_IPV4=1可避免 TLS 握手卡顿
对比时必须统一测同一 URL,且检查 last-modified 时间戳
只比 TTFB 不够——镜像快但数据旧,composer require 还是会 fallback 到官方源。得同步验证元数据时效性。
- 统一测
https://[mirror]/packages.json,不是根路径或其他 endpoint - 用
curl -I https://mirrors.aliyun.com/composer/packages.json | grep last-modified获取镜像更新时间 - 对比官方源:
curl -s https://packagist.org/packages.json | jq -r '.lastModified' - 差值超 90 秒即属异常;阿里云通常 ≤ 90 秒,腾讯云高峰时段可能滞后 3–5 分钟
别被单次结果误导,连续测 3 次取中位数
本地 DNS 缓存、运营商出口波动、CDN 节点瞬时负载都会让单次 time_starttransfer 波动极大。今天测出 0.12s,明天可能 1.8s——这不是镜像不稳定,而是网络链路本身有抖动。
- 对每个镜像执行 3 次命令,记录
TTFB值,取中间那个(非平均) - 优先看
time_starttransfer是否稳定在 0.2–0.5s 区间,而非追求最低值 - 如果某镜像 TTFB 常规在 0.3s,但偶尔飙到 2.1s,说明其 CDN 节点调度有问题,不适合 CI 环境










