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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

石化加工vr中毒窒息事故培训系统开发降低了培训成本和风险。

化工行业是工伤预防工作的重点领域之一,工伤预防及安全生产整治工作任务艰巨、责任重大。为进一步强化红线意识、底线思维,深圳VR公司研发的化工VR事故警示教育系统,以其独特的沉浸式体验,为员工的安全教育开辟了新的道路。目前化…

【SWH】陆地生态系统蒸散模拟理论、蒸散估算、站点及区域尺度模拟

蒸散(又称蒸散发)估算是开展水资源管理、洪水预报、海绵城市成效评估、农业节水灌溉、水源涵养评估、生态需水评估等应用实践过程的关键环节,因此准确计算和模拟地表蒸散显得尤为重要。与此同时,蒸散也是陆地表层最重要的水循环过…

如何使用ai人工智能作诗?7个软件帮你快速作诗

如何使用ai人工智能作诗?7个软件帮你快速作诗 使用AI人工智能作诗是一种创新的写作方式,以下是一些可以帮助您快速作诗的AI人工智能软件: 1.AI创作云: 这是一个AI诗歌助手应用程序,可以根据您提供的主题或关键词生成…

Qt:QDialogButtonBox的使用

QDialogButtonBox是Qt自带的按钮箱,通过枚举QDialogButtonBox::ButtonRole可以添加Qt定义按钮,或者通过方法QDialogButtonBox::addButton添加自定义的按钮。 // 自定义按钮。 button_box_ new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonB…

冰蝎4.1webshell实验

1、基础环境 生成payload 2、default_xor_base64 HTTP 命令执行 chunked数据回包,48 3、default_xor_base64 HTTPS 命令执行 终端 文件管理 4、 default_aes https 虚拟终端 5、 default_aes http 虚拟终端

C#中的Web抓取:避免被阻挡

C# 是一种广泛应用于企业级项目和应用程序的多功能编程语言。它源自 C 系列语言,具有高效和强大的特点,使其成为任何开发人员工具包中不可或缺的一部分。 由于其广泛的应用,C# 提供了大量的工具,使开发人员能够解决复杂的解决方案…

MyBatis之工作原理,简单CRUD,一篇让你明白原理

一、MyBatis之工作原理 MyBatis是一个半自动映射框架。所谓半自动,是相对Hibernate全表映射而言的,MyBatis需要手动匹配提供POJO、SQL和映射关系。 我们知道,jdbc有四个核心对象 (1)DriverManager,用于注…

OpenCV多版本安装Ubuntu18.04

文章目录 一、查看已安装的Opencv版本二、安装新版本三、多版本OpenCV切换 OpenCV 官网 在此 一、查看已安装的Opencv版本 查看已安装opencv的版本 pkg-config opencv --modversion官网下载对应的版本,并解压 opencv3.4.3 二、安装新版本 进入前置准备里下载…

架构设计-跨域问题的根源及解决方式

前面文章《架构设计-web项目中跨域问题涉及到的后端和前端配置》中说明了处理跨域问题的一种方式,本文详细说明下产生跨域问题的原因及处理方式。 一、产生跨域问题的原因: 浏览器的同源策略:这是跨域问题的根本原因。同源策略是浏览器对Jav…

计算机网络(1) OSI七层模型与TCP/IP四层模型

一.OSI七层模型 OSI 七层模型是国际标准化组织ISO提出的一个网络分层模型,它的目的是使各种不同的计算机和网络在世界范围内按照相同的标准框架实现互联。OSI 模型把网络通信的工作分为 7 层,从下到上分别是物理层、数据链路层、网络层、传输层、会话层、…

力扣hot100:394. 字符串解码(递归/括号匹配,字符串之间相对顺序)

LeetCode:394. 字符串解码 本题容易想到用递归处理,在写递归时主要是需要明确自己的递归函数的定义。 不过我们也可以利用括号匹配的方式使用栈进行处理。 1、递归 定义递归函数string GetString(string & s,int & i); 表示处理处理整个numbe…

SQL进阶day12——空值处理

1 统计有未完成状态的试卷的未完成数和未完成率 (复习if的用法) 我的思路: select exam_idm count(if submit_time is NULL then 1 else 0 end) incomplete_cnt, count(if submit_time is NULL then 1 else 0 end)/count(submit_time) comp…

政务云参考技术架构

行业优势 总体架构 政务云平台技术框架图,由机房环境、基础设施层、支撑软件层及业务应用层组成,在运维、安全和运营体系的保障下,为政务云使用单位提供统一服务支撑。 功能架构 标准双区隔离 参照国家电子政务规范,打造符合标准的…

【C++课程学习】:Data类的实现

🎁个人主页:我们的五年 🔍系列专栏:C课程学习 🎉欢迎大家点赞👍评论📝收藏⭐文章 目录 🍩1.头文件 🍩2.实现文件: 🍩3.分析: &…

力扣40. 组合总和 II

Problem: 40. 组合总和 II 文章目录 题目描述思路及解法复杂度Code 题目描述 思路及解法 1.创建一个 res 变量存储所有满足条件的组合结果,使用 track 变量记录当前的组合路径,使用 trackSum 变量记录当前路径中元素的和。 2.排序: 对 candidates 数组进…

第7章 用户输入和 while 循环

第7章 用户输入和 while 循环 7.1 函数 input()的工作原理7.1.1 编写清晰的程序7.1.2 使用 int()来获取数值输入7.1.3 求模运算符 7.2 while 循环简介7.2.1 使用 while 循环7.2.2 让用户选择何时退出7.2.3 使用标志7.2.4 使用 break 退出循环7.2.5 在循环中使用 continue7.2.6 …

renren-fast-vue在mac上的运行

被这个折磨好久了,终于成功了。。 版本号-node-14 需要提前执行的命令,希望可以帮助到大家。分别是解决版本在mac m1架构上的不兼容问题,另外解决没有验证码的问题,要注意数据库的配置,账号密码是否正确。 npm inst…

【iOS】YYModel源码阅读笔记

文章目录 前言一、JSON转换库对比二、YYModel性能优化三、YYModel的使用四、架构分析YYClassInfo 剖析 五、流程剖析转换前准备工作 – 将JSON统一成NSDictionary将NSDictionary 转换为Model对象提取Model信息使用NSDictionary的数据填充Model 总结 前言 先前写了JSONModel的源…

【DBA早下班系列】—— 并行SQL/慢SQL 问题该如何高效收集诊断信息

1. 前言 OceanBase论坛问答区或者提交工单支持的时候大部分时间都浪费在了诊断信息的获取交互上,今天我就其中大家比较头疼的SQL问题,给大家讲解一下如何一键收集并行SQL/慢SQL所需要的诊断信息,减少沟通成本,让大家早下班。 2. …

course-nlp——4-regex

本文参考自https://github.com/fastai/course-nlp 正则表达式 在本课中,我们将学习 NLP 工具包中的一个有用工具:正则表达式。 让我们考虑两个激励性的例子: 电话号码问题 假设我们得到了一些包含电话号码的数据: 123-456-7890…