【JVM】OOM与调优(二)

embedded/2024/11/13 5:17:15/

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.ppmy.cn/embedded/102200.html

相关文章

yolov8 save_dir设置setting文件

yolov8使用pip3 install ultralytics后, 基于命令行训练时,训练过程及结果都会默认保存到run/detect/trainx中,但因为训练服务器时公用的,先前都是基于docker作为工作的环境,后面使用conda虚拟环境进行开发时&#xff…

使用 ASP.NET Core 与 Entity Framework Core 进行数据库操作

使用 ASP.NET Core 与 Entity Framework Core 进行数据库操作 Entity Framework Core(EF Core)是ASP.NET Core中的一个轻量级ORM框架,提供了以面向对象的方式与数据库进行交互的能力。本文将通过Visual Studio 2022详细介绍如何使用EF Core进…

华为Cloud连接配置

Cloud(云)连接意思为本地电脑和eNSP中的虚拟的VRP系统连接的 配置Cloud 先添加UDP 再添加需要使用的网卡 网卡建议使用虚拟机的网卡,如果没有虚拟机也可以使用其他网卡,自己设定一下IP就行 端口映射设置 配置R1 [R1]int e0/0/0 [R1-Ethernet0/0/0]ip …

免费屏幕录制软件有哪些?2024年最新测评15款录屏软件排行榜!

免费屏幕录制软件有哪些?2024年最新测评15款录屏软件排行榜! 录屏软件数不胜数,百度一搜跳出来成百上千款录屏软件!专业的用起来太复杂,简单的又不堪其用!还有各种各样防不胜防的套路。如果你没有像我一样深度了解过不同录屏软件…

C语言占领游戏

目录 开头程序程序的流程图程序的效果结尾 开头 大家好&#xff0c;我叫这是我58。 程序 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> #include <Windows.h> void pri…

挑战!从厂商到消费者总共需要几步?

什么是bC一体化&#xff1f; “bC一体化”是企业利用数字化手段&#xff0c;将渠道中的零售商&#xff08;b&#xff0c;Business&#xff09;和消费者&#xff08;C&#xff0c;Consumer&#xff09;作为一组对象&#xff0c;进行一体化运营&#xff0c;两者互为杠杆&#xff…

如何使用ssm实现社区智慧养老监护管理平台+vue

TOC ssm270社区智慧养老监护管理平台vue 系统概述 1.1 研究背景 智慧养老是面向居家老人、社区及养老机构的传感网系统与信息平台&#xff0c;并在此基础上提供实时、快捷、高效、低成本的&#xff0c;物联化、互联化、智能化的养老服务。 随着科技进步&#xff0c;新型养…

京东商品信息快速获取:API返回值实战教程

京东商品信息快速获取通常通过调用京东的API接口来实现&#xff0c;特别是针对商品搜索和商品详情等需求。以下是一个基于京东商品信息API返回值的实战教程&#xff0c;帮助您快速理解和利用这些API返回的数据。 1. 注册与认证 首先&#xff0c;您需要在京东开放平台&#xf…