osg~/notes
日志 · 2026-10-11

日志把磁盘吃满之前,有三次机会拦住它

第一次机会是应用侧:写日志前判断文件大小,超过阈值就滚动。这一步最可靠,因为只有应用自己知道哪些内容重要。

第二次是 logrotate:按天或按大小切分,配 compress 和 rotate 数量。坑在于 copytruncate 和 create 二选一——前者会让写入方继续往旧 inode 写,后者要求应用能重开文件。选错的表现是日志切了但继续长。

第三次是文件系统层面:给日志目录单独的配额或者用 tmpfs,让写满的代价被限制在一个分区里。这一步是兜底,不是主力。

journal 那边要单独设:SystemMaxUse=200M 写在 journald.conf,默认是按磁盘 10% 取,小盘机器上很容易失控。改完 systemctl restart systemd-journald 生效,不会影响其他服务。

← 返回