观察 jvm 运行时数据区内存大小(native memory tracking)

news2025/2/24 9:25:04

jvm 运行时数据区

jvm 运行时数据区包括且不限于以下几个部分:

  1. 堆(heap): 用于存储对象实例和数组。堆内存的分配和释放由垃圾回收器进行管理。
  2. 方法区(method area): 用于存储类的信息、静态变量、常量等。jdk 8 后方法区位于 metaspace。
  3. 虚拟机栈(vm stack): 用于存储方法的局部变量、参数值等。
  4. 本地方法栈(native method stack): 用于存储本地方法调用的相关信息。
  5. 程序计数器(program counter): 用于记录当前线程执行的字节码指令地址。

观察 jvm 运行时数据区内存使用的命令

观察 jvm 运行时数据区内存情况可以使用 jcmd 命令:

# 需要 JVM 参数配置 -XX:NativeMemoryTracking=summary 或 -XX:NativeMemoryTracking=detail
# 使用前需要先 su 切换到 pid 的用户(top 中可看,一般 java 进程的用户是 tomcat)

# 应用启动后输入
jcmd pid VM.native_memory summary
或
jcmd pid VM.native_memory detail

jcmd 300 VM.native_memory summary

输出内容:

image-20240611165357392

image-20240611165742991

输出的 VM.native_memory 全部内容

[tomcat@preparedocker-dep2-7f64d558f8-gfkmw default.qunar.com]$ jcmd 385 VM.native_memory summary
385:

Native Memory Tracking:

(Omitting categories weighting less than 1KB)

Total: reserved=14696320KB, committed=13246344KB
-                 Java Heap (reserved=11534336KB, committed=11534336KB)
                            (mmap: reserved=11534336KB, committed=11534336KB)

-                     Class (reserved=1055872KB, committed=34688KB)
                            (classes #41524)
                            (  instance classes #39223, array classes #2301)
                            (malloc=7296KB #139986)
                            (mmap: reserved=1048576KB, committed=27392KB)
                            (  Metadata:   )
                            (    reserved=196608KB, committed=188544KB)
                            (    used=186864KB)
                            (    waste=1680KB =0.89%)
                            (  Class space:)
                            (    reserved=1048576KB, committed=27392KB)
                            (    used=25440KB)
                            (    waste=1952KB =7.13%)

-                    Thread (reserved=574463KB, committed=245719KB)
                            (thread #2115)
                            (stack: reserved=568244KB, committed=239500KB)
                            (malloc=3741KB #12726)
                            (arena=2478KB #4229)

-                      Code (reserved=262510KB, committed=170658KB)
                            (malloc=14822KB #46616)
                            (mmap: reserved=247688KB, committed=155836KB)

-                        GC (reserved=506924KB, committed=506924KB)
                            (malloc=45760KB #83524)
                            (mmap: reserved=461164KB, committed=461164KB)

-                  Compiler (reserved=16021KB, committed=16021KB)
                            (malloc=15856KB #9536)
                            (arena=165KB #5)

-                  Internal (reserved=95580KB, committed=95576KB)
                            (malloc=95540KB #150203)
                            (mmap: reserved=40KB, committed=36KB)

-                     Other (reserved=353690KB, committed=353690KB)
                            (malloc=353690KB #1001)

-                    Symbol (reserved=38658KB, committed=38658KB)
                            (malloc=36572KB #993784)
                            (arena=2086KB #1)

-    Native Memory Tracking (reserved=24133KB, committed=24133KB)
                            (malloc=302KB #4295)
                            (tracking overhead=23831KB)

-        Shared class space (reserved=12288KB, committed=12160KB)
                            (mmap: reserved=12288KB, committed=12160KB)

-               Arena Chunk (reserved=12414KB, committed=12414KB)
                            (malloc=12414KB)

-                   Tracing (reserved=32KB, committed=32KB)
                            (arena=32KB #1)

-                   Logging (reserved=7KB, committed=7KB)
                            (malloc=7KB #288)

-                 Arguments (reserved=4KB, committed=4KB)
                            (malloc=4KB #138)

-                    Module (reserved=4051KB, committed=4051KB)
                            (malloc=4051KB #14643)

-                 Safepoint (reserved=8KB, committed=8KB)
                            (mmap: reserved=8KB, committed=8KB)

-           Synchronization (reserved=872KB, committed=872KB)
                            (malloc=872KB #7198)

-            Serviceability (reserved=2042KB, committed=2042KB)
                            (malloc=2042KB #35392)

-                 Metaspace (reserved=198597KB, committed=190533KB)
                            (malloc=1989KB #2357)
                            (mmap: reserved=196608KB, committed=188544KB)

-      String Deduplication (reserved=1KB, committed=1KB)
                            (malloc=1KB #8)

-           Object Monitors (reserved=3817KB, committed=3817KB)
                            (malloc=3817KB #18790)

命令权限问题

如执行 jcmd pid VM.native_memory summary 命令后无输出,需要通过 su 切换到 pid 的用户(top 中可看,一般 java 进程的用户是 tomcat)

image-20240611202637224

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1824312.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Mysql之不使用部署在k8s集群的Mysql而是选择单独部署的Mysql的原因

测试准备: 线程组:并发数100,持续时间2min 两个请求:使用k8s集群中的mysql的wordpress对应端口30011 使用单独部署的mysql的wordpress的对应端口为30022 访问同一个博客 测试结果: 汇总报告: 响应时间图&…

16.番外_模拟c语言文件流

16.番外:模拟c语言文件流 一,前言 先来看一下Struct _IO_FILE的定义。 grep -rnw /usr/include/ -e struct _IO_FILE今天我们要做的就是模拟实现FILE及C语言文件操作相关函数 二,开始!做吧!我们! 1.FILE的缓冲区及…

「小爱同学」接入豆包大模型;华为鸿蒙 OS 成为中国第二大操作系统丨 RTE 开发者日报 Vol.224

开发者朋友们大家好: 这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文…

【Android面试八股文】你知道如何实现非阻塞式生产者消费者模式吗?

文章目录 这道题想考察什么 ?考察的知识点日常生活中的生产者消费者模式生产者消费者模式简介为什么需要缓冲区?阻塞与非堵塞非阻塞式生产者消费者模式的实现非阻塞式生产者消费者模式的实现阻塞式生产者消费者模式实现特点这道题想考察什么 ? 是否了解非阻塞式生产者消费者…

R可视化:ggpubr包学习

欢迎大家关注全网生信学习者系列: WX公zhong号:生信学习者 Xiao hong书:生信学习者 知hu:生信学习者 CDSN:生信学习者2 介绍 ggpubr是我经常会用到的R包,它傻瓜式的画图方式对很多初次接触R绘图的人来…

GO RACE 测试在低版本GCC上报错误 exit status 0xc0000139

windows机器环境,go程序使用race定位时一运行就报错,写了个example如: 能看到加了race之后就不行了, 搜了一下,git上有个issue: runtime: Race detector causes exit status 0xc0000139 on Windows 11 wi…

高考志愿填报选专业,兴趣爱好和就业前景哪个优先?

每个人都有自己的兴趣与爱好,而高考志愿填报是在为自己选择职业方向。最理想的状态就是把自己的兴趣和爱好与自己的职业统一起来,让兴趣和爱好促进职业的发展,为职业增添动力。但现实生活中,这种理想的状态并不是每个人都能达到的…

Java多线程面试重点-2

16.Synchronized关键字加在静态方法和实例方法的区别? 修饰静态方法,是对类进行加锁(Class对象),如果该类中有methodA和methodB都是被Synch修饰的静态方法,此时有两个线程T1、T2分别调用methodA()和methodB()&#x…

http穿透怎么做?

众所周知http协议的默认端口是80,由于国家工信部要求,域名必须备案才给开放80端口,而备案需要固定公网IP,这就使得开放http80端口的费用成本和时间成本变的很高。那么能不能利用内网穿透技术做http穿透呢?下面我就给大…

Stability AI最新的SD3模型存在严重问题 为规避裸体结果导致躯体部分错乱

人工智能 Stability AI 最新的 SD3 Medium 模型存在严重问题,只要生成人物就会出现躯体错乱,这似乎是该公司刻意规避生成裸体图片的结果。目前猜测他们可能在训练过程中就剔除了 NSFW 内容,同时在训练时规避裸体内容进而导致模型也会刻意将人…

Haption Virtuose 6D力反馈设备遥操作机器人应用研究

在虚拟现实和远程操作技术的飞速发展下,力反馈设备成为了一个不可或缺的工具。其中,Haption Virtuose 6D力反馈设备以其卓越的性能和广泛的应用领域,成为了这一领域的佼佼者。本文将详细介绍Haption Virtuose 6D力反馈设备及其在遥操作机器人…

Flutter系列:关于ensureInitialized()

Flutter系列 关于ensureInitialized() - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/qq_28…

RBAC权限实战

一、项目结构说明、搭建以及初步验证 引入SSM框架依赖: <dependencies> <dependency> <groupId>javax.servlet…

原型模式(大话设计模式)C/C++版本

原型模式 C 参考&#xff1a;https://www.cnblogs.com/Galesaur-wcy/p/15924300.html #include <iostream> #include <string> using namespace std;class WorkExprerience { private:string workDate;string company;public:WorkExprerience() {}~WorkExprerie…

《站在2024年的十字路口:计算机专业是否仍是高考生的明智之选?》

文章目录 每日一句正能量前言行业竞争现状行业饱和度和竞争激烈程度[^3^]新兴技术的影响[^3^]人才需求的变化[^3^]行业创新动态如何保持竞争力 专业与个人的匹配度判断专业所需的技术能力专业核心课程对学生的要求个人兴趣和性格特点专业对口的职业发展要求实践和经验个人价值观…

redis的四种模式部署应用

这里写目录标题 redis应用redis单机部署redis主从redis哨兵Cluster模式 redis应用 redis单机部署 关闭防火墙[rootzyq ~]#: yum -y install wget make gcc gcc-c ...... [rootzyq ~]#: wget https://download.redis.io/redis-stable.tar.gz --2024-01-01 19:41:14-- https:/…

qemu创建kvm虚拟机-x86模拟arm

1、虚拟机环境 虚拟机ubuntu22.042、下载需要的依赖 apt install openssh-server net-tools vim -yapt install qemu qemu-kvm qemu-system-arm bridge-utils uml-utilities qemu-efi-aarch64 cloud-image-utils -y#查看版本 qemu-img -V(1) 下载uefi固件 cd /optwget https…

tcp协议机制的总结(可靠性,提高性能),基于tcp的应用层协议,用udp如何实现可靠传输

目录 总结 引入 可靠性 ​编辑 分析 三次握手 提高性能 其他 常见的基于tcp应用层协议 用udp实现可靠传输 总结 引入 为什么tcp要比udp复杂的多? 因为它既要保证可靠性,又要兼顾性能 可靠性 分析 其中,序列号不止用来排序,还可以用在重传时去重 确认应答是机制中的…

中小制造业工厂要不要上MES系统

MES系统的主要功能包括制造数据管理、计划排产管理、生产调度管理、库存管理、质量管理、人力资源管理、工作中心/设备管理、工具工装管理、采购管理、成本管理、项目看板管理、生产过程控制、底层数据集成分析、上层数据集成分解等。通过这些模块&#xff0c;MES为企业打造一个…

前端菜鸡流水账日记 -- pnpm的学习

哈咯哇大家&#xff0c;我又来了&#xff0c;最近稍微悠闲一些&#xff0c;所以就趁着这个机会学习一些新的知识&#xff0c;今天就是碰巧遇到了pnm&#xff0c;这个可以看作是npm的升级版本&#xff0c;比npm要快&#xff0c;用起来也更得劲更迅速 官网地址&#xff1a;https…