在 Debian 上 Tomcat 日志写入变慢(慢速),通常不是 Tomcat 本身的问题,而是系统、JVM、日志配置或磁盘 I/O 导致的。下面按常见原因 → 排查方法 → 解决建议来说明。
Tomcat 日志(catalina.out / localhost.log)本质是文件写操作。
表现
iostat 中 %util 很高排查
iostat -x 1
或
dstat -d
常见场景
解决
catalina.out 是 标准输出同步写,不轮转时会越来越慢。
问题点
解决
使用 logrotate:
/etc/logrotate.d/tomcat
示例:
/var/log/tomcat*/catalina.out {
copytruncate
daily
rotate 7
compress
missingok
notifempty
}
如果在 logging.properties 或 log4j 中:
.handlers = java.util.logging.ConsoleHandler
→ 所有日志都走 stdout → catalina.out
解决
System.out.println 是同步的解决
如果:
Tomcat 日志时间计算会异常,看起来“慢”。
检查
timedatectl status
AppArmor 可能限制 Tomcat 写日志权限,导致重试慢。
检查
dmesg | grep tomcat
# 1. 看磁盘
iostat -x 1
# 2. 看日志大小
du -sh /var/log/tomcat*
# 3. 看 Tomcat 配置
cat /etc/tomcat*/logging.properties
# 4. 看是否有 catalina.out 膨胀
ls -lh /var/log/tomcat*/catalina.out
✅ 使用 log4j2 + 异步
✅ catalina.out 必须 logrotate
✅ 日志级别:ERROR / WARN
✅ 不写 NFS
✅ 日志单独挂载磁盘
如果你愿意,可以贴:
logging.properties 或 log4j2.xml我可以帮你精确判断是哪一类慢。