在Ubuntu系統中,可通過以下方式監控Java應用:
一、JDK自帶工具
- 命令行工具:
jps:查看Java進程ID及主類信息。
jstat:監控堆內存、垃圾回收等指標,如jstat -gcutil <pid> 1000(每秒刷新一次)。
jstack:獲取線程堆棧信息,用于分析死鎖或線程狀態。
jmap:生成堆轉儲文件,輔助內存泄漏分析。
- 圖形化工具:
- JConsole:監控JVM內存、線程、CPU等,支持遠程連接(需配置JMX參數)。
- VisualVM:擴展JConsole功能,提供更深入的性能分析(如堆轉儲分析)。
二、第三方工具
- Prometheus + Grafana:
- 通過JMX Exporter采集JVM指標,結合Grafana實現可視化監控與告警。
- Zabbix/MoSKito:支持企業級監控,可監控應用狀態、性能指標及告警。
- jtop:輕量級命令行工具,實時顯示CPU、內存、線程等數據。
三、系統級監控
- top/htop:查看Java進程的CPU、內存占用情況,支持實時過濾。
- ps:結合
grep篩選Java進程,獲取PID及運行參數。
四、日志與調優
- GC日志:通過JVM參數
-XX:+PrintGCDetails記錄垃圾回收行為,輔助分析性能瓶頸。
- APM工具:如Elastic APM,可監控應用性能并定位慢請求。
根據需求選擇工具:簡單監控可用top+JDK命令行;復雜場景推薦Prometheus+Grafana或VisualVM。