在 Debian 上 syslog 变慢(写入延迟、日志卡顿、系统响应变慢) 通常有下面几类原因。我按「最常见 → 较少见」给你梳理,并给出排查方法。
Debian 默认使用 rsyslog。
典型表现
dmesg 正常,但 /var/log/syslog 很慢常见原因
/var/log 在 HDD 上)排查
systemctl status rsyslog
journalctl -u rsyslog
看配置
grep -R "action" /etc/rsyslog.conf /etc/rsyslog.d/
解决
$ActionQueueType LinkedList
$ActionQueueFileName rsyslog_queue
$ActionResumeRetryCount -1
$ActionQueueSaveOnShutdown on
syslog 是 顺序写磁盘,一旦磁盘慢就会拖慢整个系统。
检查
iostat -x 1
iotop
常见情况
/var 在慢分区某个服务疯狂写日志。
查谁在写
lsof | grep /var/log
journalctl -p err -b
解决
Debian 中:
如果 journal 很大或磁盘慢:
journalctl 也卡检查
journalctl --disk-usage
限制 journal 大小
/etc/systemd/journald.conf
SystemMaxUse=500M
AppArmor 阻止 rsyslog 写文件,导致重试。
dmesg | grep apparmor
aa-status
如果系统时间突然回跳:
timedatectl
在:
rsyslog 是单线程,容易堵。
✅ 升级或加队列基本能解决。
# 1. 看 rsyslog 状态
systemctl status rsyslog
# 2. 看错误
journalctl -u rsyslog -p err
# 3. 看磁盘
iostat -x 1
# 4. 看 journal 大小
journalctl --disk-usage
# 5. 看配置是否有远程/同步写
grep -R "@" /etc/rsyslog.conf /etc/rsyslog.d/
如果你愿意,可以贴一下:
rsyslog.confiostat 输出我可以帮你精准定位是哪一条导致的慢。