JVM监控

一、JVM监控工具

  • JConsole:实时监控Java进程的堆年轻代、堆老年代、栈内存占用量、线程数、类加载数、CPU占用率。可以手动GC、检查线程的死锁。
  • Java VisualVM:可以导入OOM发生后系统自动生成的dump快照文件,从而分析哪个线程导致的OOM。可以实时监控垃圾回收器导致的各分区内存变化。

二、监控命令

  • jps:查看所有运行的Java进程pid和名称
  • jstat [-class -gc ...] pid:JConsole底层就是这个命令,查看JVM实时信息一般用-gc查看堆各分区的使用状况和GC次数.
  • jmap -heap <pid>:查看JVM的堆内存 使用情况,包括堆中各分区容量、已用字节数
  • jmap -histo <pid>:查看JVM堆内存各个类的对象数量和内存占用
  • jmap -dump <pid>:生成堆内存当前时刻存储的快照dump。
  • jstack pid | grep ppid:查看指定进程对应线程 的快照,包括调用栈、线程状态、锁持有情况。jstack用于查看JVM中所有线程的运行状态。

三、JVM常见参数

  • -Xms:初始堆大小

  • -XX:NewSize:设置年轻代大小

  • -XX:NewRatio:设置年轻代和老年代的比值

  • -XX:SurvivorRatio:设置年轻代中Eden区与两个Survivor的比值

  • -XX:+UseParallelGC:设置CMS收集器

  • -XX:+UseParallelOldGC:设置CMS老年代收集器

  • -XX:+UseG1GC:设置G1收集器

  • -XX:ParallelGCThreads:垃圾回收时使用的并行GC线程数

  • -XX:MaxGCPauseMillis:最大GC停顿时间,超出时间GC会提前结束

  • -XX:GCTimeRatio:垃圾回收时间占程序总运行时间的比例目标

相关推荐
forEverPlume5 分钟前
PHP怎么使用Eloquent Attribute Composition属性组合_Laravel通过组合构建复杂属性【方法】
jvm·数据库·python
2301_8092047024 分钟前
mysql在docker容器中如何部署_利用docker-compose快速启动
jvm·数据库·python
2301_815901974 小时前
SQL如何将多行记录聚合成逗号分隔字符串_GROUP_CONCAT技巧
jvm·数据库·python
zjy277775 小时前
Layui tab选项卡如何动态根据ID值进行程序化切换
jvm·数据库·python
m0_602857765 小时前
Redis如何修复槽位分配重叠的脏状态_使用redis-cli --cluster fix工具扫描并修复不一致的Slot
jvm·数据库·python
2301_766283445 小时前
怎样开启phpMyAdmin的操作审计日志_记录每条执行的SQL
jvm·数据库·python
zhoutongsheng6 小时前
如何解决ORA-01078参数文件错误_pfile与spfile互相创建恢复
jvm·数据库·python
2401_824222696 小时前
HTML怎么标注字数限制提示_HTML实时字数统计占位【详解】
jvm·数据库·python
littleM7 小时前
深度拆解 HermesAgent(五):记忆系统与用户建模
jvm·人工智能·架构·ai编程
dfdfadffa7 小时前
如何创建仅在首次订阅时执行一次计算的 RxJS 懒加载 Observable
jvm·数据库·python