You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决运行JavaScript yarn test时笔记本卡顿的问题?

解决yarn test占用全部CPU核心导致系统卡顿的问题

问题描述

运行yarn test时,Node.js会占满20个CPU核心,导致笔记本卡顿,甚至操作系统会终止Skype、MS Teams、Slack等Node.js/Electron应用。

  • 操作系统:Ubuntu 22.04
  • 内存:32 GB
  • CPU:12th Gen Intel® Core™ i9-12900H × 20

解决方案

1. 限制测试框架的并发工作线程数

绝大多数JavaScript测试框架(如Jest、Mocha)都支持通过参数限制并发执行的线程数,直接控制Node.js占用的CPU核心:

  • 临时运行时指定参数:yarn test --maxWorkers=4(这里设置为4个核心,可根据需求调整)
  • 永久配置到package.json:修改scripts中的test命令,例如:
    "scripts": {
      "test": "jest --maxWorkers=4"
    }
    
  • 也可以用百分比配置,比如--maxWorkers=25%,自动基于CPU核心数计算(20核的话就是5个核心)

2. 系统级限制Node.js进程CPU使用率

用Ubuntu工具直接限制Node.js进程的CPU占用:

  • 安装cpulimit工具:sudo apt install cpulimit
  • 限制所有Node.js进程的CPU使用率为500%(对应5个核心):cpulimit -e node -l 500
  • 或者在运行测试时直接绑定限制:cpulimit -l 500 -- yarn test

3. 调整Node.js全局线程池大小

Node.js默认线程池大小是4,部分场景下测试框架会突破这个限制,可通过环境变量强制设置:

  • 运行测试时指定:UV_THREADPOOL_SIZE=4 yarn test
  • 也可以将该环境变量添加到系统配置中,比如在~/.bashrc或~/.zshrc中添加:
    export UV_THREADPOOL_SIZE=4
    

内容的提问来源于stack exchange,提问作者Oleksandr Bratashov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 17:32:45