1、查看JAVA进程JVM参数

jinfo -flags pid(进程号)

-XX:CICompilerCount=2 最大的并行编译数

-XX:InitialHeapSize=16777216 JVM 的初始堆内存大小

-XX:MaxHeapSize=257949696 JVM 的最大堆内存大小

-XX:MaxNewSize=85983232

-XX:MinHeapDeltaBytes=196608

-XX:NewSize=5570560

-XX:OldSize=11206656

2、JVM 查看当前Java进程的启动参数

jmap -heap [进程号]

NewRatio: 指定老年代/新生代的堆内存比例,默认2:1。在hotspot虚拟机中,堆内存 = 新生代 + 老年代。在设置了-XX:MaxNewSize的情况下,-XX:NewRatio的值会被忽略,老年代的内存=堆内存 - 新生代内存。老年代的最大内存 = 堆内存 - 新生代 最大内存。

SurvivorRatio: 新生代中1个Eden区与1个Survivor区的大小比值。在hotspot虚拟机中,新生代 = 1个Eden + 2个Survivor。如果新生代内存是10M,SurvivorRatio=8,那么Eden区占8M,2个Survivor区各占1M。

Eden区是一块,Survivor区是两块。

Eden区和Survivor区的比例是8:1:1

JVM内存的结构为

堆:存放对象

栈:运行时存放栈帧

程序计数器

方法区:存放类和常量

Jdk 1.8之后好像取消了方法区,直接将永久代放到了本地内存里面

3、Jstat可以用来监视VM内存内的各种堆和非堆的大小及其内存使用量。

jstat -gcutil pid

通过 jstat -gcutil pid 命令,我们可以对gc信息进行统计。

jstat -gc pid

这个命令看起来显示的信息比上一个命令还多。jstat -gc pid 可以显示gc的信息,查看gc的次数,及时间。其中最后五项,分别是young gc的次数,young gc的时间,full gc的次数,full gc的时间,gc的总时间。

jstat -gccapacity pid

jstat -gccapacity pid 命令可以显示:VM内存中三代(young,old,perm)对象的使用和占用大小。如:PGCMN显示的是最小perm的内存使用量,PGCMX显示的是perm的内存最大使用量,PGC是当前新生成的perm内存占用量,PC是但前perm内存占用量。其他的可以根据这个类推, OC是old内纯的占用量。

jstat -gcnew pid

jstat -gcnew pid 命令可以显示年轻代对象的信息。

jstat -gcnewcapacity pid

jstat -gcnewcapacity pid 命令可以显示年轻代对象的信息及其占用量。

jstat -gcold pid

jstat -gcold pid 命令可以显示old代对象的信息。

jstat -gcoldcapacity pid

jstat -gcoldcapacity pid 命令可以显示old代对象的信息及其占用量。

jstat -class pid

jstat -class pid 命令可以显示加载class的数量,及所占空间等信息。

jstat -compiler pid

jstat -compiler pid 命令可以显示VM实时编译的数量等信息。

jstat -printcompilation pid

jstat -printcompilation pid 命令可以显示当前VM执行的信息。

参数解释

S0C:年轻代中第一个survivor(幸存区)的容量 (kb)

S1C:年轻代中第二个survivor(幸存区)的容量 (kb)

S0U:年轻代中第一个survivor(幸存区)目前已使用空间 (kb)

S1U:年轻代中第二个survivor(幸存区)目前已使用空间 (kb)

EC:年轻代中Eden(伊甸园)的容量 (kb)

EU:年轻代中Eden(伊甸园)目前已使用空间 (kb)

OC:Old代的容量 (kb)

OU:Old代目前已使用空间 (kb)

PC:Perm(持久代)的容量 (kb)

PU:Perm(持久代)目前已使用空间 (kb)

YGC:从应用程序启动到采样时年轻代中gc次数

YGCT:从应用程序启动到采样时年轻代中gc所用时间(s)

FGC:从应用程序启动到采样时old代(全gc)gc次数

FGCT:从应用程序启动到采样时old代(全gc)gc所用时间(s)

GCT:从应用程序启动到采样时gc用的总时间(s)

NGCMN:年轻代(young)中初始化(最小)的大小 (kb)

NGCMX:年轻代(young)的最大容量 (kb)

NGC:年轻代(young)中当前的容量 (kb)

OGCMN:old代中初始化(最小)的大小 (kb)

OGCMX:old代的最大容量 (kb)

OGC:old代当前新生成的容量 (kb)

PGCMN:perm代中初始化(最小)的大小 (kb)

PGCMX:perm代的最大容量 (kb)

PGC:perm代当前新生成的容量 (kb)

S0:年轻代中第一个survivor(幸存区)已使用的占当前容量百分比

S1:年轻代中第二个survivor(幸存区)已使用的占当前容量百分比

E:年轻代中Eden(伊甸园)已使用的占当前容量百分比

O:old代已使用的占当前容量百分比

P:perm代已使用的占当前容量百分比

S0CMX:年轻代中第一个survivor(幸存区)的最大容量 (kb)

S1CMX :年轻代中第二个survivor(幸存区)的最大容量 (kb)

ECMX:年轻代中Eden(伊甸园)的最大容量 (kb)

DSS:当前需要survivor(幸存区)的容量 (kb)(Eden区已满)

TT: 持有次数限制

MTT : 最大持有次数限制

4、命令jmap是一个多功能的命令。它可以生成 java 程序的 dump 文件, 也可以查看堆内对象示例的统计信息、查看 ClassLoader 的信息以及 finalizer 队列。

jmap pid查看进程的内存映像信息,类似 Solaris pmap 命令。

jmap -heap pid显示Java堆详细信息

jmap -histo:live pid显示堆中对象的统计信息

jmap -clstats pid 打印类加载器信息

jmap -finalizerinfo pid打印等待终结的对象信息

jmap -dump:format=b,file=heapdump.phrof pid生成堆转储快照dump文件

5、jinfo 是 JDK 自带的命令,可以用来查看正在运行的 java 应用程序的扩展参数,包括Java System属性和JVM命令行参数;也可以动态的修改正在运行的 JVM 一些参数。当系统崩溃时,jinfo可以从core文件里面知道崩溃的Java应用程序的配置信息

jinfo pid输出当前 jvm 进程的全部参数和系统属性

jinfo -flag name pid输出对应名称的参数

jinfo -flag [+|-]name pid开启或者关闭对应名称的参数

jinfo -flag name=value pid修改指定参数的值。

jinfo -flags pid输出全部的参数

jinfo -sysprops pid输出当前 jvm 进行的全部的系统属性

linux查看java堆栈信息_linux进程堆栈大小的更多相关文章

  1. Linux查看当前正在运行的进程

    Linux查看当前正在运行的进程 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ ps PID TTY TIME CMD 2576 pts/0 00:00:00 ...

  2. Linux查看当前正在执行的进程

    Linux查看当前正在执行的进程 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ ps PID TTY TIME CMD 2576 pts/0 00:00:00 ...

  3. Linux查看非root运行的进程

    Linux查看非root运行的进程 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ ps -U root -u root -N PID TTY TIME CMD ...

  4. Linux查看系统中的每个进程

    Linux查看系统中的每个进程 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ ps -A PID TTY TIME CMD 1 ? 00:00:01 init ...

  5. linux查看操作系统版本信息

    linux查看操作系统版本信息  摘自:https://www.cnblogs.com/vaelailai/p/7545166.html 一.linux下如何查看已安装的centos版本信息: 1.L ...

  6. Linux 查看Tomcat版本信息

    Linux 查看Tomcat版本信息 如果我们想运行在 Linux 下的 Tomcat 版本信息,只需要在 Tomcat 的 bin/ 目录下,运行 version.sh 脚本即可. 1.使用如下命令 ...

  7. Linux 查看操作系统版本信息 uname

    Linux 查看操作系统版本信息 uname uname 命令用于显示当前系统的版本信息. 带 -a 选项的 uname 命令会给出当前操作系统的所有有用信息. 命令如下: [root@node1 / ...

  8. Linux 查看登录用户信息 who & whoami

    Linux 查看登录用户信息 who & whoami 在一台服务器上,同一时间往往会有很难多人同时登录. who 命令可以查看当前系统中有哪些人登录,以及他们都工作在哪个控制台上. 这样可以 ...

  9. Linux查看系统硬件信息命令

    Linux查看系统硬件信息命令 查看磁盘类型(是否SSD) cat /sys/block/sda/queue/rotational code:0 SSD盘 code:1 SATA盘 查看物理CPU个数 ...

  10. Linux查看RAM内存信息

    1.查看/proc/meminfo文件 查看RAM使用情况最简单的方法是通过/proc/meminfo. 这个动态更新的虚拟文件列出了详细的内存使用情况. cat /proc/meminfo 命令输出 ...

随机推荐

  1. 企业应用架构研究系列十三:整合EFCore&Dapper 通用ORM框架EFDapper

    EntityFrameworkCore是微软官网提供的ORM框架,是轻量化.可扩展.开源和跨平台的数据访问技术框架,但是在.Net 开发圈的评论却褒贬不一.很多人认为EFCore 执行的效能比较差,很 ...

  2. DRF安装与使用

    目录 DRF安装与使用 一.web应用模式(前后端不分离&前后端分离) 二.API接口 1.API接口概念讲解 2.IPA接口测试工具postman 3.RESTful API规范 4.幂等性 ...

  3. sync/atomic 原子操作使用与解析

    目录 前言 1. 引入 2. sync.atomic 原子操作 2.1 什么是原子操作 2.2 各种 API 的作用 2.2.1 Store 操作 2.2.2 Load 操作 2.2.3 Add 操作 ...

  4. 五、pycharm的安装与基本使用

    目录 一.pycharm的安装 1.软件介绍 2.正版安装 1.下载软件 2.安装软件 3.其他方法安装(需要先下载相关资源) ①无限试用法 ②傻瓜式激活法 ③淘宝购买 二.pycharm软件的使用 ...

  5. NetCoreWebApi3.0-------MiniProfiler使用教程

    参考博客:ASP.NET Core WebAPI中的分析工具MiniProfiler - LamondLu - 博客园 (cnblogs.com) 注意事项: 1.不要盲目copy别人的代码 var ...

  6. 插入排序(CSP-J 2021 T2)

    题目:(由于题干过长直接上链接:P7910 [CSP-J 2021] 插入排序 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)) 不是打广告 又有一个新思路: 我们可以再开一个b数组 ...

  7. JAVA虚拟机05-内存溢出示例(jdk1.8)

    1.JAVA虚拟机堆内存溢出OutOfMemoryError 1.1设置参数 -Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError 最小堆的大小20m 最大堆 ...

  8. 【开发宝典】Java并发系列教程(四)

    作者:京东零售 刘跃明 Monitor概念 Java对象的内存布局 对象除了我们自定义的一些属性外,还有其它数据,在内存中可以分为三个区域:对象头.实例数据.对齐填充,这三个区域组成起来才是一个完整的 ...

  9. Makefile常用命令

    # 下面用来定义变量并赋值 # := 和 = 一样的吗? # 这里?=代表如果变量已经赋值了,不要重新赋值,而是保留原来的值 CROSS_COMPILE ?= arm-linux-gnueabihf- ...

  10. NetApp DataONTAP 集群模式 学习笔记1

    一.NetApp存储操作系统 Data ONTAP是NetApp最流行的存储操作系统,它运行在NetApp FAS(Fabric Attached Storage)系统上.FAS系统是被设计为共享的存 ...