在 Debian 上 Node.js 日志变慢通常不是 Node 本身的问题,而是系统、日志方式或运行环境导致的。下面按常见原因从高到低说明,并给出排查和解决办法。
Node.js 是单线程的,日志写入是同步阻塞或高频率 I/O 时最容易变慢。
常见场景:
排查:
top
iostat -x 1
df -h
df -i
解决:
例如:
fs.appendFileSync(...)
console.log(...) // 大量调用
在高并发下会严重拖慢事件循环。
✅ 推荐:
winstonpino(最快)bunyan示例(pino):
const pino = require('pino')
const logger = pino({ level: 'info' })
logger.info('hello')
Debian 默认用 journald 收集 stdout。
如果:
Node 的 console.log 会变慢。
排查:
journalctl -u your-service -f
解决:
# /etc/systemd/journald.conf
RateLimitIntervalSec=0
RateLimitBurst=0
日志无限增长会导致:
解决:
apt install logrotate
示例:
/var/log/node/*.log {
daily
rotate 7
compress
missingok
notifempty
}
日志只是“表象”,真正原因是:
排查:
node --trace-event-categories=node
某些日志库会:
解决:
TZ=Asia/Shanghai
Debian 仓库的 Node 往往偏旧。
检查:
node -v
建议用:
你可以按顺序看:
top / iostatappendFileSyncconsole.log如果你愿意,可以贴:
node -v 和 Debian 版本我可以帮你精准定位是哪一类问题。