在 Debian 上运行 Node.js 出现卡顿,通常不是 Node.js 本身的“bug”,而是环境、系统配置或代码层面的问题。下面按常见原因 → 排查方法 → 解决建议来说明。
Node.js 是单线程(Event Loop),一旦有:
就会导致整个进程卡死。
排查
top
htop
解决
Debian 服务器内存小,Node.js 默认:
内存不够会:
排查
free -h
node --max-old-space-size=4096 app.js
现象
排查
iostat -x 1
建议
node -v
使用:
用 nvm 或 nodesource 安装
比如:
Node 默认:
dns.lookup()
会阻塞 Event Loop!
现象
解决
const dns = require('dns');
dns.setDefaultResultOrder('ipv4first');
或:
/etc/resolv.conf
换 DNS(如 8.8.8.8)
Node 是异步等待,但连接池不够也会卡。
await someFn(); // 永不 resolve
setInterval(() => {}, 1000);
忘了 clear
如果你用:
systemctl start node
可能限制:
systemctl show node
ulimit -n
Node 高并发时很容易爆
node -v
free -h
top
iostat -x 1
netstat -ant | wc -l
你可以补充:
cat /etc/os-release)我可以直接帮你定位是哪一类卡顿。