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

【JVM】OOM与调优(二)

OOM与调优

6.JVM工具如jps

该命令是纯Java编写的
在这里插入图片描述

-q:只显示Java进程的ID

在这里插入图片描述

-m:输出Java进程的ID + main函数所在类的名字 + 传递给main函数的参数
在这里插入图片描述

-l:输出Java进程的ID+main函数所在类的全限定名(包名+类名)
在这里插入图片描述

-v:输出Java进程的ID+main函数所在类的名称+传递给JVM的参数
应用:可以通过次方式快速查看JVM参数是否设置成功

jps源码的位置

在这里插入图片描述

/openjdk/jdk/src/share/classes/sun/tools/jps

如何识别的Java进程?jps输出的信息全是Java进程的信息,是如何做到的?

Java进程在创建的时候,会生成相应的文件,进程相关的信息会写入该文件中。Windows下默认路径是:
在这里插入图片描述

C:\Users\username\AppData\Local\Temp\hsperfdata_username

Ubuntu环境下,它的路径是

/tmp/hsperfdata_username

在这里插入图片描述

PerfData文件

  • 1.文件创建
    每启动一个Java进程,/tmp/hsperfdata_username就会生成进程号的一个文件,这个文件是一个内存映射文件。有时候不会生成,受参数的影响,
    -XX:-/+UsePerfData默认是开启的,它是通过attach到Java进程中去,它属于寄生在Java进程当中,可以读取Java进程的内存。
    -XX:-/+PerfDisableSharedMem(禁用共享内存)默认是关闭的,即支持内存共享。如果禁用了,依赖于PerfData文件的工具就无法正常进行了
  • 2.文件删除
    正常情况下:默认情况下随Java进程的结束而销毁
    非正常退出:下一次去读目录的时候会检测进程是否存在, 用kill -0 去检测进程是否存活,不存货就会删除该进程号文件,不然就会留下垃圾文件
  • 3.文件更新
    -XX:PerfDataSamplingInterval=50,即内存与PerfData文件的数据延迟为50ms

查看PerfData参数
在这里插入图片描述

7.JVM异常退出

在这里插入图片描述

  • OOM killer
    dmesg -T 日志查看内核日志
  • 堆OOM
    会生成日志,分配内存new的执行流程
  • 元空间OOM
    会生成日志,解析类、类加载器、动态字节码 cglib
  • 直接内存OOM
    unsafe bytbuffer
    都不会生成日志,JVM进程的堆(OS知道)
  • 栈OOM,为什么没有听说过这个地方发生OOM
    开发阶段就会知道栈帧是否会发生OOM了

CPU占用过高如何排查?

  • 1.定位到占用CPU最高的进程
  • 2.定位到目前占用CPU最高的线程ID
top -H -p pid

将线程ID由十进制转换为十六进制

  • 3.定位线程
jstack pid | grep 十六进制线程id -A 30

http://www.mrgr.cn/news/11384.html

相关文章:

  • 【C#】【EXCEL】Bumblebee/Classes/ExEnums.cs
  • 基层医疗云HIS系统源码:云计算、大数据等现代信息技术研发
  • ue5远程渲染和本地渲染的区别,及云渲染的联系
  • Linux——驱动——杂项设备
  • 文件.硬盘.IO
  • 服务器被渗透的表现及检测方法
  • CentOS7 mysql-cluster安装与配置
  • JMeter Plugins之内网插件问题解决
  • 二十三种模式之单例模式(基础了解)
  • coffee小程序怎么做 咖啡店小程序系统开发制作方法
  • 文件上传漏洞(看过就能学会)
  • Circuitjs 内存模块的使用
  • 培训第三十四天(初步了解Docker与套接字的应用)
  • 论文阅读笔记:T-Rex2: Towards Generic Object Detection via Text-Visual Prompt Synergy
  • Docker 部署 Kafka 可视化 Kafka-UI
  • VBA之正则表达式(47)-- 快速将公式转换为静态值计算
  • 【系统架构设计】测试评审方法
  • 什么是个股场外期权 532资质?散户怎么进行场外个股期权的交易?
  • K8S ConfigMaps
  • Linux云计算 |【第二阶段】SECURITY-DAY1