当前位置: 首页 > news >正文

【大白话说Java面试题 第68题】【JVM篇】第28题:对于 JDK 自带的监控和性能分析工具用过哪些?一般你怎么用的?

PDF大白话说Java面试题 — 02-JVM篇第28题对于 JDK 自带的监控和性能分析工具用过哪些一般你怎么用的回答核心考点大厂面试要求熟练掌握 JDK 自带工具并能结合场景说明使用时机、命令参数、结果解读。不能只会罗列工具名称。1. 工具全景图工具核心用途是否需要目标进程是否STWjps列出 Java 进程 PID是否jinfo查看/修改 JVM 参数是否jstatGC 和内存区域实时统计是否jmap堆内存快照dump是是严重jstack线程堆栈快照是否但可能略慢jcmd多功能综合工具JDK 7是部分操作会VisualVM图形化综合监控是可本地/远程采样模式不影响2. 各工具典型用法附命令2.1jps定位目标进程jps-l# 显示完整主类名jps-v# 显示传递给 JVM 的参数场景启动分析前第一步拿到 PID。2.2jstat实时监控 GC最常用# 每1秒打印一次共打印10次jstat-gcutilPID100010# 输出列解读# S0/S1: Survivor 使用率# E: Eden 使用率# O: 老年代使用率# M: 元空间使用率# YGC/YGCT: Young GC 次数/总耗时# FGC/FGCT: Full GC 次数/总耗时# GCT: GC 总耗时实战判断YGC每分钟超过60次 → 年轻代太小FGC每小时 1 次 → 需排查除非元空间/堆合理调优后仍存GCT / 运行时长 10% → GC 已严重影响吞吐2.3jmap堆内存快照谨慎使用# 生成 dump 文件会触发 Full GC生产需低峰期jmap -dump:live,formatb,file/tmp/heap.hprofPID# 查看对象统计不会 dump 大文件但仍会 STWjmap-histo:livePID|head-30⚠️ 重要-dump:live会先触发 Full GCSTW 时间可能达数秒甚至分钟生产环境优先用-XX:HeapDumpOnOutOfMemoryError自动 dump高并发系统用jcmd PID GC.heap_dump /path/dump.hprof底层同 jmap依然 STW分析 dump用MATEclipse Memory Analyzer或VisualVM查看 Leak Suspects、Dominator Tree。2.4jstack线程快照无痛# 导出线程栈jstack-lPIDthread.dump# 快速统计线程状态grepjava.lang.Thread.Statethread.dump|sort|uniq-c经典用法CPU 飙高top -H -p PID找线程 ID十进制的 →printf %x\n 十进制tid→ 在 jstack 输出中搜索十六进制 tid死锁jstack 输出末尾会直接报告“Found one Java-level deadlock”接口超时连续多次打印 jstack对比 WAITING/BLOCKED 线程是否一直卡在同一位置2.5jinfo查看运行时参数# 查看所有可设置参数及当前值jinfo-flagsPID# 查看单个参数jinfo-flagUseG1GCPID# 动态修改部分参数支持jinfo-flagHeapDumpOnOutOfMemoryErrorPID场景线上验证-Xmx是否生效、某个 GC 参数是否真的被打开。2.6jcmd新一代瑞士军刀JDK 7 推荐# 列出所有可执行命令jcmdPIDhelp# 查看 JVM 运行时参数替代 jinfo -flagsjcmdPIDVM.flags# 手动触发 GC慎用仅测试jcmdPIDGC.run# 获取系统属性jcmdPIDVM.system_properties# 获取线程栈同 jstackjcmdPIDThread.print# 生成 heap dumpjcmdPIDGC.heap_dump /tmp/dump.hprof# 查看 Native 内存诊断直接内存/堆外jcmdPIDVM.native_memory summary优势统一入口输出结构更清晰部分操作比 jmap 更安全。2.7VisualVM图形化利器连接方式本地自动检测本机 Java 进程远程通过 JMX需开启-Dcom.sun.management.jmxremote常用 TabMonitorCPU/堆/元空间/类/线程 实时曲线Threads线程状态及堆栈可检测死锁SamplerCPU 采样 → 热点方法内存采样 → 对象分配统计Profiler需插件更精确但开销大生产慎用生产远程连接示例JMX 参数-Dcom.sun.management.jmxremotetrue\-Dcom.sun.management.jmxremote.port9999\-Dcom.sun.management.jmxremote.authenticatefalse\-Dcom.sun.management.jmxremote.sslfalse3. 实战案例生产 Full GC 频繁排查现象服务 GC 报警FGC每小时 12 次老年代占用率 95% 不降。步骤步骤工具命令发现1jpsjps -lPID 123452jstatjstat -gcutil 12345 1000O老年代始终 98%FGC 持续增长3jmap低峰期jmap -histo:live 12345 | head -20byte[]占 80%自定义SessionCache对象异常多4jstackjstack 12345 t.dump大量线程在SessionCache.put等待锁5定位代码结合业务日志缓存未设过期时间且未限制最大容量6修复代码改用Caffeine缓存 TTL上线后 FGC 降为 04. 面试官追问示例Q1jmap -histo:live会触发 Full GC 吗A会。live参数会先执行一次 Full GC 再统计存活对象。生产环境慎用优先用jstat看趋势或 Arthasheapdump。Q2jstack打印出的BLOCKED线程很多一定有问题吗A不一定。若BLOCKED是瞬时锁竞争且正常情况如synchronized高并发只要不持续堆积就正常。需多次打印确认是否一直卡在同一锁。Q3远程连接 VisualVM 不安全怎么办A生产禁止明文 JMX。替代方案用jstat/jstack本地执行后导出分析用 Arthas阿里开源隧道连接开启 JMX SSL 认证复杂Q4jcmd能完全替代jmap吗A大部分可以。jcmd GC.heap_dump同jmap -dump但jcmd VM.native_memory是 jmap 没有的功能。不过jmap -histo的快速对象统计jcmd 没有直接等价命令。Q5生产环境不能安装任何额外工具只有 JDK 自带怎么排查A就用jps/jstat/jstack/jmap/jcmd组合。例如CPU 高 →top -H -p PIDjstack内存泄漏 →jstat -gcutil看 O 区持续增长 jmap -dump:live择低峰期GC 频繁 →jstat -gc看明细面试官想要的满分总结“日常问题排查我按以下组合使用jps找 PIDjstat -gcutil看 GC 趋势决定是否需要 dumpjstack查线程阻塞/死锁/热点栈jmap只在低峰期或 OOM 后分析 dumpjcmd作为统一入口尤其 VM.native_memory 排查堆外内存VisualVM用于本地或开发环境做性能分析核心原则生产环境首选无侵入工具jstat/jstack/jcmd 非 live 操作jmap 务必审批后执行。”觉得对您有帮助麻烦点点关注啦您的关注是我创作的最大动力~
http://www.gsyq.cn/news/1351264.html

相关文章:

  • AI Agent替代房产顾问?实测对比报告:12城27个项目的人效、客诉率与成交周期数据全公开
  • python游泳用品专卖店系统
  • 电商平台SQL数据层设计实战指南
  • 国产多模态大模型 vs Stable Diffusion:开发者该如何选?
  • 鸿蒙云端相册页面构建:最近照片网格与备份队列模块详解
  • 2026年5月办公空间设计趋势与优质服务商洞察 - 2026年企业推荐榜
  • 深入骨髓的性能剖析:IntelliGit 启动与 Diff 优化的前世今生
  • JDK1.7 升级到 JDK1.8 后 HashMap 数据结构变化有哪些影响
  • AI辅助编程:发展现状、效率评估与未来展望
  • 因果本是叙事
  • Linux awk 数据分析、字段截取实战
  • 【央行金融科技白皮书深度解码】:AI Agent在跨境支付、信贷审批、监管报送三大场景的9项强制性技术基线
  • Linux grep 文本过滤与正则实战——日志筛选、文本匹配神器
  • NotebookLM移动端响应延迟高达2.7秒?揭秘GPU加速未启用背后的架构真相,3步强制优化
  • 别再死磕传统SEO!2026年AI搜索流量爆发,头部GEO公司推荐与转型指南 - 商业科技观察
  • 实测taotoken在不同时段api调用的响应延迟与稳定性表现
  • 巧家县黄金回收店铺哪家好 靠谱门店推荐及联系方式 - 莘州文化
  • 江城哈尼族彝族自治县黄金回收贵金属回收店推荐 联系方式 - 莘州文化
  • SEO老炮儿绝不外传的ChatGPT写作心法(含独家“搜索意图-语义簇-段落权重”三维校准表)
  • TranslucentTB启动失败终极指南:3分钟解决Microsoft.UI.Xaml.2.8缺失问题
  • 别再盲猜了!NotebookLM样本量计算的5步工业级流程,含A/B测试最小样本量速查表(仅限内部团队流通版)
  • 【Veo 2K/4K视频生成终极设置指南】:20年AI视频工程师亲测的8项关键参数调优清单
  • 终极Windows本地语音转文字神器:TMSpeech完全免费离线解决方案
  • 禄丰市黄金回收店铺哪家好 靠谱门店推荐及联系方式 - 莘州文化
  • 晋宁区黄金回收白银回收铂金回收店铺哪家好 靠谱门店推荐 - 莘州文化
  • 施甸县黄金回收店铺哪家好 靠谱门店推荐及联系方式 - 莘州文化
  • 百度智能云部署DeepSeek R1模型(企业级生产环境实录):GPU资源利用率提升217%的5个隐藏参数
  • 2026年5月更新:为何余姚市视迈电子技术有限公司成为高精度温控器可靠之选 - 2026年企业推荐榜
  • AI视频生成革命性突破(Sora 2深度耦合UE5.4技术解密):NVIDIA Omniverse未公开的替代路径已验证
  • 在下不才----android 聊天功能全部逻辑已经跑通了