[转帖]linux查看java堆栈信息_linux进程堆栈大小

linux,查看,java,堆栈,信息,进程,大小 · 浏览次数 : 0

小编点评

**Java进程内存信息** ```java 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=112066562 ``` **参数解释** * `pid(进程号)`:指定要查看的进程的进程号。 * `XX:CICompilerCount=2`:设置编译器线程数量为 2。 * `XX:InitialHeapSize=16777216`:设置初始堆内存大小为 16777216 字节。 * `XX:MaxHeapSize=257949696`:设置最大堆内存大小为 257949696 字节。 * `XX:MaxNewSize=85983232`:设置最大新线程创建的内存大小为 85983232 字节。 * `XX:MinHeapDeltaBytes=196608`:设置最小堆内存变化大小为 196608 字节。 * `XX:NewSize=5570560`:设置新生代内存大小为 5570560 字节。 * `XX:OldSize=112066562`:设置老年代内存大小为 112066562 字节。

正文

https://www.cnblogs.com/cloudHui/p/17076184.html

 

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 进行的全部的系统属性

本文来自博客园,作者:迷茫的小白,转载请注明原文链接:https://www.cnblogs.com/cloudHui/p/17076184.html

与[转帖]linux查看java堆栈信息_linux进程堆栈大小相似的内容:

[转帖]linux查看java堆栈信息_linux进程堆栈大小

https://www.cnblogs.com/cloudHui/p/17076184.html 1、查看JAVA进程JVM参数 jinfo -flags pid(进程号)-XX:CICompilerCount=2 最大的并行编译数-XX:InitialHeapSize=16777216 JVM 的

[转帖] 在Linux上查看活跃线程数与连接数

https://www.cnblogs.com/codelogs/p/17178675.html 原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,非公众号转载保留此声明。 简介# 现如今,有两种常见的软件资源几乎成了Java后端程序的标配,即线程池与连接池,但这些池化资源非常的重要,一

[转帖]修改jmeter内存配置(win&mac&linux)

目录 一、背景: 二、win环境下修改jmeter内存 三、mac&linux环境下修改jmeter内存 四、验证内存是否修改成功 一、背景: 在进行大数据、高并发压测的过程性,有时会遇上JMeter卡死现象,使得测试无法进行,查看日志显示:java.lang.OutOfMemoryError: J

[转帖]020 Linux 20 个宝藏命令案例

https://my.oschina.net/u/3113381/blog/5478108 1 JDK 相关的查找命令 (1)确认是否安装 JDK //命令 java -version //输出示例 openjdk version "1.8.0_212" OpenJDK Runtime Enviro

[转帖]一次 Java 进程 OOM 的排查分析(glibc 篇)

https://juejin.cn/post/6854573220733911048 遇到了一个 glibc 导致的内存回收问题,查找原因和实验的的过程是比较有意思的,主要会涉及到下面这些: Linux 中典型的大量 64M 内存区域问题 glibc 的内存分配器 ptmalloc2 的底层原理 如

[转帖]一次 Java 进程 OOM 的排查分析(glibc 篇)

https://juejin.cn/post/6854573220733911048 遇到了一个 glibc 导致的内存回收问题,查找原因和实验的的过程是比较有意思的,主要会涉及到下面这些: Linux 中典型的大量 64M 内存区域问题 glibc 的内存分配器 ptmalloc2 的底层原理 如

[转帖]Linux查看物理CPU个数、核数、逻辑CPU个数

https://www.cnblogs.com/bugutian/p/6138880.html CPU总核数 = 物理CPU个数 * 每颗物理CPU的核数 总逻辑CPU数 = 物理CPU个数 * 每颗物理CPU的核数 * 超线程数 查看CPU信息(型号) [root@AAA ~]# cat /pro

[转帖]Linux查看显卡型号

Linux查看显卡型号 https://blog.yelvlab.cn/archives/602/ 可以通过查看PCI设备来看显卡型号: lspci | grep -i nvidia c1:00.0 VGA compatible controller: NVIDIA Corporation Devi

[转帖]Linux下查看网络流量常用方法

(1)使用ifconfig查看网络流量 RX是接收流量,TX是发送流量。 (2)使用watch more /proc/net/dev查看网卡流量,默认是以字节显示 watch使用命令: (3)iftop 下载地址:http://www.tcpdump.org/release/libpcap-0.8.

[转帖]Linux查看硬件信息超强命令sar,以及可视化工具ksar

https://juejin.cn/post/6947470401135968286 一、概述 sar(System Activity Reporter,系统活动情况报告)是Linux下系统运行状态统计工具,可从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU