在 Debian 上运行 Node.js 感觉“缓慢”,通常不是 Node.js 本身的问题,而是环境、配置或代码层面的原因。下面按常见原因分类说明,并给出排查与优化建议。
Debian 默认仓库中的 Node.js 往往版本很旧(如 12、14),性能和新特性都落后。
检查
node -v
解决 使用 NodeSource 或 nvm 安装新版本:
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
apt install -y nodejs
或
nvm install 20
Node.js 是单线程事件循环,CPU 被占满会明显变慢。
检查
top
htop
free -h
常见情况
如果 Node 应用大量读写文件或日志,机械盘 / 低性能云盘会拖慢速度。
检查
iostat -x 1
--inspect 或 debug 模式调试模式会显著降低性能。
错误示例
node --inspect app.js
解决 生产环境不要开启调试。
Node 在开发模式下做了很多额外检查。
解决
export NODE_ENV=production
node app.js
npm start 而不是直接运行npm start 可能多一层 shell,影响不明显但值得注意。
const data = fs.readFileSync('big.json');
解决 使用异步 API:
const data = await fs.promises.readFile('big.json');
如加密、压缩、图像处理。
解决
node_modules 巨大,启动慢。
检查
du -sh node_modules
优化
pnpmNode 本身快,但请求第三方接口慢。
排查
curl -w "%{time_total}\n" https://api.xxx.com
Debian + 代理环境可能导致连接缓慢。
如 sqlite3、bcrypt 使用旧 ABI。
解决
npm rebuild
node -v
echo $NODE_ENV
top
iostat -x 1
lsof -p $(pidof node)
如果你愿意,可以告诉我:
我可以直接帮你定位具体原因。