在Ubuntu Tomcat日志中分析線程狀態可通過以下方式:
查看日志文件
/var/log/tomcat/
或/opt/tomcat/logs/
,核心文件為catalina.out
。sudo tail -f catalina.out
實時查看日志,搜索java.lang.Thread.State
關鍵字定位線程狀態(如RUNNABLE
、BLOCKED
等)。結合jstack
工具
jstack <Tomcat_PID>
生成線程堆棧文件,分析線程的詳細狀態(如阻塞、等待的具體代碼位置)。top -Hp <Tomcat_PID>
獲取線程ID,再通過printf "%x\n" <線程ID>
轉換為16進制,在堆棧文件中搜索對應信息。利用監控工具
關注關鍵線程類型
maxThreads
優化并發能力。注意:日志分析需結合業務場景,若發現大量線程處于BLOCKED
或WAITING
狀態,可能存在鎖競爭或資源不足問題,需進一步排查代碼或配置。