Ubuntu中Java性能监控工具有哪些
导读:Ubuntu下的Java性能监控工具全景 一 系统层监控工具 top / htop:实时查看进程的CPU、内存占用,htop界面更友好,支持按键筛选。安装:sudo apt-get install htop。 vmstat:观察内存、sw...
Ubuntu下的Java性能监控工具全景
一 系统层监控工具
- top / htop:实时查看进程的CPU、内存占用,htop界面更友好,支持按键筛选。安装:sudo apt-get install htop。
- vmstat:观察内存、swap、IO、CPU上下文切换等系统层面指标。
- iostat:聚焦磁盘I/O(读写速率、await、util),定位I/O瓶颈。
- sar(来自sysstat):收集与回放系统历史活动,便于趋势分析。
- nmon:轻量级的CPU、内存、磁盘、网络资源监控,适合快速巡检;但不提供JVM内部细节。
- Netdata:开箱即用的实时可视化监控,适合做主机与应用的基础大盘。
以上工具适合先确认是否为系统资源(CPU/内存/IO/网络)导致的性能问题,再深入到JVM与应用层排查。
二 JDK自带JVM监控与诊断工具
- jps:快速列出本机所有Java进程ID与启动类/JAR。
- jstat:监控GC与内存统计,如:jstat -gc 1000(每1秒刷新)。
- jmap:生成堆转储(heap dump),如:jmap -dump:format=b,file=heap.hprof ,配合MAT/VisualVM分析内存泄漏与大对象。
- jstack:导出线程堆栈,定位阻塞、死锁、WAITING/BLOCKED等高CPU或“假死”问题;可先用**top -Hp 找出最忙线程,再用printf “%x\n” < 线程号> **转十六进制,在jstack输出中检索对应nid。
- jconsole:JDK自带图形化监控,查看内存、线程、类加载、GC等MBean指标。
- VisualVM:集成内存/线程/CPU采样与剖析、堆转储分析,支持插件扩展。
这些工具覆盖从“进程在不在、忙不忙”到“哪里慢、为何卡”的逐层诊断路径。
三 生产级APM与分布式追踪
- Prometheus + Grafana:以时间序列方式采集JVM与应用指标,Grafana做可视化与告警,适合长期观测与容量规划。
- JProfiler:商业级深度性能剖析(CPU热点、内存分配、线程、JDBC、JPA等),本地/远程均可。
- Arthas:在线诊断利器,无需重启,支持方法调用追踪、热修复、反编译、线程与内存诊断。
- async-profiler:低开销采样剖析器,适合生产环境定位CPU与内存热点。
- Pinpoint:面向大规模分布式系统的APM,展示调用链与依赖关系,便于瓶颈定位。
- Glowroot:轻量开源APM,突出慢请求与错误的捕获与展示。
- Kamon:面向JVM应用的指标与追踪工具包,便于与多种后端集成。
- Stagemonitor:Java代理,将指标写入Elasticsearch/Graphite/InfluxDB等,配合可视化平台使用。
上述工具适合从“单实例深度剖析”到“多服务链路观测”的不同场景与深度需求。
四 基准测试与微基准
- JMH(Java Microbenchmark Harness):OpenJDK官方微基准框架,控制预热、迭代、Fork等,减少JIT与噪声干扰,得到方法级可信性能数据。常与jstat/jmap/jstack配合,先找热点,再验证优化收益。
五 快速上手排查路径
- 1)用top/htop确认目标Java进程的CPU/内存是否异常;必要时用nmon做系统层面巡检。
- 2)用jps拿到PID,用jstat -gc 1000观察GC频率与内存使用是否异常。
- 3)若疑似“假死/卡顿”,用top -Hp 定位最忙线程,转十六进制后在jstack中查对应nid,分析WAITING/BLOCKED堆栈。
- 4)怀疑内存泄漏时,用jmap -dump导出heap.hprof,用MAT/VisualVM分析对象保留路径。
- 5)需要长期观测与告警,接入Prometheus + Grafana;需要方法级热点与调用链,使用async-profiler/Arthas或JProfiler/Pinpoint。
- 6)若涉及代码微优化,先用JMH建立基准,再对比优化前后差异。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu中Java性能监控工具有哪些
本文地址: https://pptw.com/jishu/789358.html
