温馨提示×

ubuntu nodejs运行慢怎么办

小樊
45
2026-09-25 03:37:40
栏目: 编程语言

在 Ubuntu 上 Node.js 运行慢,可能由系统环境、Node 版本、代码问题或资源限制引起。下面按常见原因给你一套排查和优化思路。


一、先确认“慢”在哪里

  1. 启动慢 → 可能是依赖太多、磁盘 IO、冷启动
  2. 接口/请求慢 → 可能是代码、数据库、网络
  3. CPU 占用高 → 算法或异步使用不当
  4. 内存暴涨 → 内存泄漏

可用工具:

top
htop
df -h
free -m

二、Node.js 版本问题(非常常见)

1. 使用旧版本 Node

Ubuntu 自带 Node 可能很老(如 v10/v12)

查看版本:

node -v

建议安装 LTS 新版本(如 18 / 20 / 22):

curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs

或用 nvm(推荐):

nvm install --lts
nvm use --lts

三、依赖安装慢 / 启动慢

1. 使用国内镜像

npm config set registry https://registry.npmmirror.com

2. 避免每次冷启动

  • 使用 pm2 常驻进程
npm i -g pm2
pm2 start app.js

四、系统资源限制

1. 文件描述符限制

Node 高并发时容易受限:

ulimit -n

若很小(如 1024),可修改:

sudo nano /etc/security/limits.conf

添加:

* soft nofile 65535
* hard nofile 65535

五、代码层面优化

1. 避免同步阻塞

❌ 错误:

const data = fs.readFileSync('big.json');

✅ 正确:

const data = await fs.promises.readFile('big.json');

2. 使用集群模式

const cluster = require('cluster');
const os = require('os');

if (cluster.isMaster) {
  os.cpus().forEach(() => cluster.fork());
} else {
  require('./app');
}

六、磁盘 / IO 问题

1. 是否在机械硬盘或低性能云盘?

iostat -x 1

2. 是否在 WSL / 虚拟机?

  • WSL1 的 IO 极慢
  • 建议用 WSL2 或直接 Ubuntu 物理机 / 云服务器

七、调试工具推荐

node --prof app.js
node --inspect app.js

或用:

  • clinic.js
  • 0x
  • pm2 monit

八、快速自检清单 ✅

  • [ ] Node 是否为 LTS 新版
  • [ ] 是否使用 pm2 / 常驻
  • [ ] 是否有同步阻塞代码
  • [ ] 是否 CPU / 内存 / IO 瓶颈
  • [ ] 是否在低性能环境(WSL / 小云服务器)

如果你愿意,可以告诉我:

  1. Ubuntu 版本
  2. Node 版本
  3. 是 Web 服务 / 脚本 / 构建慢?
  4. CPU、内存配置

我可以直接帮你定位具体原因。

0 踩