查看jvm运行情况

2023-11-01

使用 jps 或top显示当前所有java进程pid

详细的使用方法可参考博客:
https://blog.csdn.net/u013250071/article/details/80496623
https://blog.csdn.net/weixin_42447959/article/details/81637909
https://segmentfault.com/a/1190000020964252
https://segmentfault.com/a/1190000020104437
https://segmentfault.com/a/1190000020219289
https://segmentfault.com/a/1190000017795841
使用 jstat -gcutil 8968 500 5 每500毫秒打印一次Java堆状况(各个区的容量、使用容量、gc时间等信息),打印5次
在这里插入图片描述
各参数的含义如下:

    S0  -- Heap上的 Survivor space 0 区已使用空间的百分比 
    S1  -- Heap上的 Survivor space 1 区已使用空间的百分比 
    E   -- Heap上的 Eden space 区已使用空间的百分比 
    O   -- Heap上的 Old space 区已使用空间的百分比 
    P   -- Perm space 区已使用空间的百分比 
    YGC -- 从应用程序启动到采样时发生 Young GC 的次数 
    YGCT-- 从应用程序启动到采样时 Young GC 所用的时间(单位秒) 
    FGC -- 从应用程序启动到采样时发生 Full GC 的次数 
    FGCT-- 从应用程序启动到采样时 Full GC 所用的时间(单位秒) 
    GCT -- 从应用程序启动到采样时用于垃圾回收的总时间(单位秒)

在这里插入图片描述

用jmap(Memory Map for Java)查看堆内存信息
执行jmap -histo pid可以打印出当前堆中所有每个类的实例数量和内存占用,如下,class name是每个类的类名([B是byte类型,[C是char类型,[I是int类型),bytes是这个类的所有示例占用内存大小,instances是这个类的实例数量:
在这里插入图片描述

使用:
jmap -dump:format=b,file=D:/log/jvm/dumpfile_jmap.hprof 3361
把当前堆内存的快照转储到dumpfile_jmap.hprof文件中,然后可以对内存快照进行分析。

另外,可以使用jdk的目录下的bin目录下的:jvisualvm.exe
双击后就可以运行,可以查看jvm的一些信息:
在这里插入图片描述

调优分析:
物理内存一定的情况下,新生代设置越大,老年代就越小,Full GC频率就越高,但Full GC时间越短;相反新生代设置越小,老年代就越大,Full GC频率就越低,但每次Full GC消耗的时间越大,建议:
-Xms和-Xmx的值设置成相等,堆大小默认为-Xms指定的大小,默认空闲堆内存小于40%时,JVM会扩大堆到-Xmx指定的大小;空闲堆内存大于70%时,JVM会减小堆到-Xms指定的大小。如果在Full GC后满足不了内存需求会动态调整,这个阶段比较耗费资源。

新生代尽量设置大一些,让对象在新生代多存活一段时间,每次Minor GC 都要尽可能多的收集垃圾对象,防止或延迟对象进入老年代的机会,以减少应用程序发生Full GC的频率。

老年代如果使用CMS收集器,新生代可以不用太大,因为CMS的并行收集速度也很快,收集过程比较耗时的并发标记和并发清除阶段都可以与用户线程并发执行。

方法区大小的设置,1.6之前的需要考虑系统运行时动态增加的常量、静态变量等,1.7只要差不多能装下启动时和后期动态加载的类信息就行。

上面的调优分析是直接抄的上面的第二个博客的。盗用一下。
相关链接:
https://www.cnblogs.com/yjd_hycf_space/p/7753847.html
https://blog.csdn.net/mr__fang/article/details/68496248

使用jstack查看栈的信息:

参考:
https://blog.csdn.net/mr__fang/article/details/68496248

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

查看jvm运行情况 的相关文章

  • csdn大师孟岩老师为本书作序——“未来属于动态语言”

    如果你想掌握Ruby 这本书是最好的起点 如果你想运用Ruby 这本书也是案头必备 所以 如果你已经决定要走入Ruby的世界 那么这本书是必经之路 而本不需要一篇 推荐序 问题在于 我们为什么还要学习一种新的语言 特别是当Ruby整体上仍然
  • iOS编程中——id数据类型

    iOS编程中经常见到的 id 数据类型 id类型声明没有 号 是动态数据类型 可以指向任何类的对象 而不关心具体类型 编译阶段不做类型检查 运行阶段检查具体类型 优点 灵活 可以指向任何数据类型 编译阶段不指向任何类型 缺点 可读性不高 编
  • AR(制作流程)

    http blog csdn net yy763496668 article details 77806420 杨勇博客之家unity 80
  • Kafka or RabbitMQ:消息中间件选型深入分析

    一 前言 消息队列中间件 简称消息中间件 是指利用高效可靠的消息传递机制进行与平台无关的数据交流 并基于数据通信来进行分布式系统的集成 通过提供消息传递和消息排队模型 它可以在分布式环境下提供应用解耦 弹性伸缩 冗余存储 流量削峰 异步通信
  • 算法导论 学习笔记 第四章 递归

    n logba Theta n log b a lga Theta lga 这一章主要是介绍了三种求运行时间的方法 这三种方法都是解决递归问题的 就像分治法这种问题的算法的运行时间 这三种方法分别是替换法 递归树方法 主方法 4 1替换法
  • 对文件“\\.\PhysicalDrive1”的操作失败。

    用u盘给vm虚拟机安装系统时提示 因为前面添加了一个新的硬盘 既你的U盘 用来引导虚拟机进入系统启动盘 如果你在 可移动设备 中将选择 连接 断开与主机的连接 那么你的U盘就作为虚拟机的移动盘 U盘 而不是作为虚拟机的硬盘来处理 所以虚拟机
  • uni-app使用总结

    我在uni app遇到的问题 样式问题 1 组件和调用此组件的页面样式最好不要重名 不然会有样式覆盖问题 2 数据绑定变量的时候不能识别upx 可以转化 官网最新更正单位为rpx computed halfWidth return uni
  • 多版本node的安装和巧妙切换

    1 安装多版本node的原因 在项目开发过程中 不同项目使用的 node版本不同 有时会因为node版本过高或太低 导致报错 本文将教你如何在同一个系统中安装多个版本的node并且快速而且 巧妙地切换 2 安装指定版本的node 点击进入
  • Keil MDK的一些推荐功能(编码格式、自动保存、代码提示、动态语法检查、多核编译)

    一直在用Keil MDK开发 很多时候并没有仔细去研究它强大的功能 最近在做一些开源项目的同时也在想办法提高自己的工作效率 所谓时间就是金钱 看到世伟兄分享的这篇Keil MDK的笔记 正是我想要学习提升效率的 所谓前人种树 作为后人的我就
  • DAY39:贪心算法(七)根据身高重建队列(注意思路)+最少箭引爆气球(重叠区间)

    文章目录 406 根据身高重建队列 注意思路 思路 两个维度 降序排序注意点 完整版 vector容器插入相关复习 为什么能直接根据ki数值插入ki位置的下标 时间复杂度 vector insert操作存在的问题 链表优化版 时间复杂度 l
  • Zookeeper的功能以及工作原理

    1 ZooKeeper是什么 ZooKeeper是一个分布式的 开放源码的分布式应用程序协调服务 是Google的Chubby一个开源的实现 它是集群的管理者 监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作 最终 将简单易用
  • 2022年5月30日STM32——存储器 和 I2C读写EEPROM

    此内容仅是为了自己方便回忆 内容来源于野火指南者开发板教程 一 存储器 RAM Random Access Memory 随机存储器 当存储器中的消息被读取或写入时 所需要的时间与这段信息所在的位置无关 RAM分为动态随机存储器DRAM D
  • 再见以前说再见 操作系统复习

    mutex semget IPC PRIVATE 1 0666 IPC CREAT 创建信号量 semctl mutex 0 SETVAL 1 互斥信号量mutex赋初值为1 定义p操作 信号量申请操作 p sem num 0 p sem
  • 如何使用Python的Pyecharts做一个数据可视化的Graph 关系图?

    文章目录 前言 一 Pyecharts是什么 二 Graph关系图是什么 三 使用步骤 1 引入库 2 读入数据 3 人物关系 4 结果 总结 前言 Graph 关系图通常用于分析具有复杂性的数据 例如 如果你想探索不同实体之间的关系 你可
  • C# WinForm 默认最大化

    只需要在窗口的Shown事件处理函数中修改 WindowState即可 this WindowState FormWindowState Maximized
  • 事件绑定器-BP

    蓝图上的事件绑定器 在C 中就是代理 类似于这边绑定炸药包 那边爆炸 这个例子是 绑定人的F键 启动着火特效 书上的这个例子有问题 关卡蓝图上 核心在于startfire 事件 1 一边连接这绑定 一边连接着事件触发后的响应 先看第三人称绑
  • SpringBoot使用AOP

    本文介绍SpringBoot中使用Spring AOP 简介 AOP简介 AOP可能对于广大开发者耳熟能详 它是Aspect Oriented Programming的缩写 翻译成中文就是 面向切面编程 这个可能是面试中经常提到的问题 同时
  • 客服如何使用ChatGPT提高工作效率

    文章目录 ChatGPT简介 ChatGPT在客服中的应用 ChatGPT的优势和挑战 客服人员应该如何应对 1 与ChatGPT保持较高的专业水平 2 与ChatGPT建立良好的合作关系 3 强调人性化的服务 4 不断提升沟通和解决问题的
  • [前端] 编译时报错FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory

    参考文献 FATAL ERROR Reached heap limit Allocation failed JavaScript heap out of memory Vue cli3执行serve和build命令时nodejs内存溢出问题

随机推荐

  • 【JAVA多线程11】线程基本方法-线程等待(wait)/线程唤醒(notify)

    1 wait notify notifyAll 方法是Object的本地final方法 无法被重写 2 wait 使当前线程阻塞 前提是 必须先获得锁 一般配合synchronized 关键字使用 即 一般在synchronized 同步代
  • Django 快速搭建博客 第四节(hello world视图)

    上一节我们学会了怎样建数据库表 学习数据库的操作 如果想要把它们显示在网页上 我们还得练习一下如何在网页上显示第一个自己写的hello world 视图 1 我们需要在blog下建一个urls py的文件 里面写上 blog urls py
  • react与vue区别及react面试题

    react和vue的区别如下 1 React与Vue最大的区别是模板的编写 Vue鼓励去写近似常规HTML的模板 写起来很接近标准HTML元素 只是多了一些属性 这些属性也可以被使用在单文件组件中 尽管它需要在在构建时将组件转换为合法的Ja
  • springboot优雅实现工厂模式,策略模式——利用spring自动注入list,map性质

    工厂模式 工厂模式 Factory Pattern 是 Java 中最常用的设计模式之一 这种类型的设计模式属于创建型模式 它提供了一种创建对象的最佳方式 在工厂模式中 我们在创建对象时不会对客户端暴露创建逻辑 并且是通过使用一个共同的接口
  • 【WEB】HTTP返回头分析

    Http协议通讯时 在客户端发送请求后 request 服务器端返回的状态码解释 response Http状态码 1 请求收到 继续处理 2 操作成功收到 分析 接受 200 3 完成此请求必须进一步处理 301 302 304 4 请求
  • QObject::connect: Cannot connect QTimer::timeout() to (null)::fuction()

    这几天连接一对信号与槽怎么也连接不上 后来在下面的这个网站找到了答案 https stackoverflow com questions 6238486 qt qobjectconnect cannot connect null 问题在于c
  • [CocoaPods]podspec文件中的resource和resource_bundle

    相信基本上所有的iOS开发同学针对于CocoaPods都不陌生 即便没有用过 也是久闻大名如雷贯耳 作为Objective C和Swift中非常流行的依赖管理工具 它拥有超过10000个公有程序库 通过一份Podfile文件和pod ins
  • Linux集群常用脚本(个人总结)

    声明 1 本文为我的个人复习总结 并非那种从零基础开始普及知识 内容详细全面 言辞官方的文章 2 由于是个人总结 所以用最精简的话语来写文章 3 若有错误不当之处 请指出 常用脚本编写汇总 自定义脚本放在 bin下 并把这个目录配到PATH
  • js生成随机字符串

    function randomString len len len 32 var str ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678 默认去掉了容易混淆的字符oOLl 9gq Vv Uu
  • 2023-9-8 求组合数(一)

    题目链接 求组合数 I include
  • C语言 _ 指针(超详解析 3分钟完全掌握 总结性讲解 经典通俗)

    目 录 1 指针 指针变量及指针的大小 2 指针类型 3 指针的解引用 4 指针运算 4 1指针 整数 4 2指针 指针 5 野指针 5 1 为什么会有野指针 5 2 如何规避野指针 6 指针和数组 7 二级指针 7 1二级指针的定义 8
  • Java中的加号“+”

    在Java中 加号 与数学上的加号有些不同 它有两个意思 一个是算术运算中的 一个是连接符的重要 类似于C语言中的strcat函数 怎么区分这两种作用呢 1 当 两边是非数值类型 就被看作连接符 2 当 两边都是数值类型 就被看作算术运算中
  • ZYNQ平台在SDK下引导启动UBOOT

    ZYNQ芯片 Linux系统搭建完成后 希望通过QSPI Flash的方式来进行程序加载 QSPI Flash启动则需要烧录以下文件 BOOT bin fsbl elf uboot elf uImage linux内核 zynq board
  • 小吴学前端--Element-UI tree 组件 选中节点高亮(持续高亮)

    最近开发的时候遇到的一个需求 1 加深选中单据颜色框 2 在不切换tree组件时 选中的一直保持高亮 由于对该组件不是很熟悉 记下笔记 用来巩固学习 1 点击后高亮显示的背景颜色修改 仅仅需要修改css部分即可 deep el tree n
  • 从语言到品牌

    在竞争激烈的商业环境中 一个强大的品牌所带来的广泛品牌影响力是企业成功的关键要素之一 无论是刚刚起步的初创公司 还是已经存在多年的大型企业 都需要创建最符合自身 最贴合市场受众的品牌名称 并且持续努力来塑造和维护自己的品牌 以吸引更多客户
  • WSDL文档结构详解(五)

    1 实例截图 2 wsdl文件分析
  • C++静态链接库

    1 打开VS2010 新建win32项目 命名libm 下一步选中静态库完成 2 新建空文件mylib h和mylib cpp 其中mylib h文件中代码如下 ifndef LIB H define LIB H extern C int
  • 9个爬虫基础实战汇总+4个专业爬虫练手站推荐

    个人主页 互联网阿星 格言 选择有时候会大于努力 但你不努力就没得选 作者简介 大家好我是互联网阿星 和我一起合理使用Python 努力做时间的主人 如果觉得博主的文章还不错的话 请点赞 收藏 留言 支持一下博主哦 行业资料 PPT模板 简
  • 嵌入式系统图解

    嵌入式系统组成 嵌入式系统硬件结构图 嵌入式软件运行流程 体系结构和接口 ARM Cotex M3内核架构图
  • 查看jvm运行情况

    使用 jps 或top显示当前所有java进程pid 详细的使用方法可参考博客 https blog csdn net u013250071 article details 80496623 https blog csdn net weix