composer 2.2+ 调并发数应使用 composer config -g http-max-concurrent-downloads 8(推荐6–10),该配置全局生效且稳定;parallel-downloads 已弃用,仅 http-max-concurrent-downloads 被所有主流版本支持。

composer install 的并发数怎么调?
Composer 2.2+ 默认启用并行下载,但默认并发上限只有 3,基本等于没开。不手动设高,composer install 就还是卡在“downloading”、一个包接一个包地等。
全局生效的配置命令是:composer config -g http-max-concurrent-downloads 8(推荐值:6–10)。这个配置只对 install 有效;update 因依赖图计算逻辑仍部分串行,别指望它也快 3 倍。
临时覆盖可用环境变量:COMPOSER_MAX_PARALLEL_HTTP_REQUESTS=6 composer install。注意不是 COMPOSER_PARALLEL(该变量已废弃,部分旧文档还在误传)。
- 设太高(如 20)容易触发镜像源或 GitHub 的
429 Too Many Requests限流 - 设太低(如 1)会退化成 Composer 1 的串行体验
- macOS 或 Windows 上若遇到
file_put_contents(/tmp/): failed to open stream,说明临时文件竞争,立刻降到6或8
为什么加了 --concurrency=8 还是慢?
常见错觉:以为加了参数就一定并发。其实 --concurrency 是 composer install 的 CLI 参数,但它只在启用了 http-max-concurrent-downloads 的前提下才起作用——也就是说,你得先配好全局配置,--concurrency 才是“微调”,不是“开关”。
更大概率是外部瓶颈卡死了并发效果:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 镜像源本身限流(比如阿里云、腾讯云镜像在高峰时段排队)→ 换回官方源测基准:
composer config -g repo.packagist composer https://packagist.org - DNS 不稳或 TLS 握手慢 → 用
strace -e trace=connect,write -p $(pgrep -f "composer install")看是否反复重试 - 没配 GitHub OAuth token,被
GitHub API limit is exhausted拦住 → 补上:composer config --global github-oauth.github.com <your-token></your-token>
parallel-downloads 配置和 http-max-concurrent-downloads 有什么区别?
parallel-downloads 是 Composer 2.2 引入的实验性配置项,仅在部分小版本中短暂存在,2026 年主流发行版(如 2.5.x)已弃用。你现在看到的警告 parallel-downloads is experimental and may be removed in future versions 就是它在提示你别用。
真正稳定、被所有 Composer 2.2+ 版本识别的配置项只有一个:http-max-concurrent-downloads。它控制的是 HTTP 层并发请求数,底层复用 cURL multi,不涉及进程 fork 或系统级多线程。
- 不要混用:
composer config -g parallel-downloads 10和http-max-concurrent-downloads同时设 → 后者优先,前者被忽略 - 检查是否生效:
composer config -g http-max-concurrent-downloads,输出应为数字(如8),不是undefined - CI 环境建议显式传参:
COMPOSER_MAX_PARALLEL_HTTP_REQUESTS=6 composer install --no-interaction,避免依赖全局配置
并发数调高后 vendor 写入变卡,怎么办?
并发下载快了,但解压完往 vendor/ 写几百个小文件时可能突然变慢——这不是 Composer 的问题,而是文件系统或安全软件在拖后腿。
典型现象:CPU 和网络空闲,磁盘 I/O 持续 100%,strace 显示大量 fsync 调用。
- macOS APFS 或 Windows NTFS + 实时杀毒(如 Windows Defender、腾讯电脑管家)会同步拦截每个
file_put_contents,导致写入速度从 120MB/s 掉到 8MB/s - 临时缓解:关掉杀软实时扫描,或把项目目录加进白名单
- 构建阶段可跳过 autoload 生成:
composer install --no-autoloader --no-scripts,后续再补composer dump-autoload --optimize
真正难处理的是多个进程同时执行 composer install 导致的 composer.lock 竞争写入——这没法靠调并发解决,必须用 flock 或 CI concurrency 控制来串行化操作。










