在Ubuntu上监控Java应用可通过以下方式:
jps
:查看Java进程ID。jstat
:监控堆内存、垃圾回收等指标,如jstat -gcutil <pid> 5000 10
(每5秒采样10次)。jstack
:导出线程堆栈,分析死锁或线程状态。jmap
:生成堆转储文件,用于内存泄漏分析。jconsole
:监控JVM内存、线程、CPU等指标。VisualVM
:集成多维度监控,支持性能分析和故障排查。crontab
定时执行。#!/bin/bash
THRESHOLD=80
PID=$(pgrep -f "java -jar myapp.jar")
CPU=$(top -bn1 -p $PID | grep "Cpu(s)" | awk '{print 100 - $8}')
if (( $(echo "$CPU > $THRESHOLD" | bc -l) )); then
echo "CPU使用率过高: $CPU%" | mail -s "告警" xxx@example.com
fi
top/htop
:实时查看进程资源占用。vmstat/iostat
:监控系统级内存、磁盘I/O等。根据需求选择工具,生产环境推荐结合Prometheus+Grafana实现全面监控。