上线新版本后 /var/log 分区三天从 40% 涨到 100%,单日 app.log 42G,grep 统计 76% 的行来自同一个定时任务。碰到这种情况,我一般先确认改动有没有真的生效。
原因不复杂,定时任务每 200 毫秒轮询一次,每次都打一条 info,一天 43 万条。日志里还带着完整请求体,单条就有 3KB。
「日志量过大」这个问题文档写得含糊,实际行为以当前版本为准,别照旧版本的结论套。报错里带路径的,先去看那个路径在不在、权限对不对。
awk '{print $4}' app.log | sort | uniq -c | sort -rn | head -10
du -sh /var/log/app.log
同一份配置存在多处的,先确认改的是被加载的那一份。新版本先放一台机器上跑一天再全量,问题一般在这段时间暴露。
备份不是备了就行,恢复一次才算数,很多备份文件打开才发现是空的。接口问题先分清是没发出去、发出去了没收到,还是收到了处理失败。
具体做法是,按 logger 和消息模板统计行数 找出前三名;轮询日志降到 debug 或改成每分钟汇总一条;去掉请求体 只留长度和摘要;按天配轮转并保留 7 天。
最后用这个标准收尾,单日日志降到 4G 以下 分区占用稳定在 55%。
