Debian Tomcat日志中可排查性能瓶颈的线索主要包括以下方面:
- 线程资源异常:
- 线程池达到最大线程数(
maxThreads
),新请求被阻塞,日志中可能出现“Too many threads”或线程等待信息。
- 线程死锁或长时间阻塞,可通过分析线程转储(
jstack
生成)发现。
- 内存问题:
- 频繁Full GC、GC时间过长或堆内存持续增长,可能由内存泄漏(如未释放对象引用)导致,日志中会出现
OutOfMemoryError
或GC异常记录。
- 元空间(Metaspace)或永久代(PermGen)溢出,常见于类加载过多。
- 磁盘I/O瓶颈:
- 日志中频繁出现磁盘读写延迟或高I/O等待时间,可能因磁盘性能不足或应用频繁访问文件。
- 网络与连接问题:
- 网络延迟高或带宽不足,导致请求响应慢,日志中可能有连接超时(
connectionTimeout
)或慢查询记录。
- 数据库连接池满或连接泄漏,日志中会出现“Connection pool exhausted”或连接未关闭的警告。
- 应用代码与配置问题:
- 慢查询(SQL执行效率低),可通过分析应用日志或数据库慢查询日志定位。
- 配置不当(如
maxThreads
过小、缓存未启用),需结合日志中的请求处理时间(RT)和吞吐量分析。
参考来源: