jps,jstat,jinfo,jmap,jhat,jstack工具的使用/查看Linux磁盘信息

1、查看磁盘还剩多少空间,使用df命令(查看Linux版本:lsb_release -a,uname -a)

2、当前文件夹下的磁盘使用情况:(du --max-depth=1 -h后面没有显示跟路径,它默认是当前的路径。)

3、查看其中某一文件(文件夹)的大小:这里的大小是该文件夹下的大小的总和

4、查看指定目录下的文件大小

-----------------------------------------------------------------------------------------------------

jps工具

简洁:jps(Java Virtual Machine Process Status Tool)是JDK1.5提供的一个显示当前所有java进行的pid命令,非常适合在Linux/Unix平台上简单查看当前java进程的一些简单情况。可以通过它来查看到底启动了几个java进程(因为每一个java程序都会独占一个java虚拟机实例)

jps命令:

jps -q(只显示pid,不显示class名称,jar文件名和传递给main方法的参数)

jps -m输出传递给main方法的参数,在嵌入式jvm上可能是null

jps -l输出应用程序main class的完整package名 或者 应用程序的jar文件完整路径名

jps -v输出传递给JVM的参数

注:jsp命令有个地方不好,似乎只能显示当前用户的java进程,要显示其他用户的还是只能用unix/linux的ps命令

选项 作用
-q 只能输出LVMID,省略主类的名称
-m 输出虚拟机进程启动时传递给主类main()函数的参数
-l 输出主类的全名,如果进程执行的是Jar包,输出Jar路径
-v 输出虚拟机进程启动时JVM参数

---------------------------------------------------------------------------------------------------------------------------

jstat

       (JVM Statistics Monitorning Tool)是用于监视虚拟机各种运行状态信息的状态信息的命令行工具。它可以显示本地或远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据,在没有GUI图形界面,只提供了纯文本控制台环境的服务器上,它将是运行期定位虚拟机性能问题的首选工具:

1. jstat -gc pid  可以显示gc的信息,查看gc的次数,及时间。此外还可以用jstat -gc pid 时间段(毫秒值) 查询次数

            其中最后五项,分别是young gc的次数,young gc的时间,full gc的次数,full gc的时间,gc的总时间。

2.jstat -gccapacity pid,监视内容与-gc基本相同,但输出主要关注Java堆各个区域使用到的最大和最小空间可以显示,VM内存中三代(young,old,perm)对象的使用和占用大小,

            如:PGCMN显示的是最小perm的内存使用量,PGCMX显示的是perm的内存最大使用量,

            PGC是当前新生成的perm内存占用量,PC是但前perm内存占用量。

            其他的可以根据这个类推, OC是old内纯的占用量。

经计算PGCMN的值为128m,PGCMX的值为256m,这些就是在虚拟机中配置的参数值。

3.jstat -gcutil pid:监视内容与-gc基本相同,但输出主要关注Java堆各个区域使用到的最大和最小空间

 

说明永生带使用了的内存量为88.03%

4.jstat -gcnew pid:监视新生代GC的状况

 

5.jstat -gcnewcapacity pid:监视内容与-gcnew基本相同,输出主要关注使用到的最大和最小空间

6.jstat -gcold pid:监视老年代的状况

 

7.stat -gcoldcapacity pid:监视内容与-gcold基本相同,输出主要关注使用到的最大和最小空间。

8.jstat -gcpermcapacity pid:输出永生代使用到的最大和最小空间

 

9.jstat -class pid:监视类装载、卸载数量、总空间及类装载所耗费的时间

显示加载class的数量,及所占空间等信息。


10.jstat -compiler pid:输出JIT编辑器编译过的方法、耗时等信息

11.stat -printcompilation pid:输出已经被JIT编译的方法

当前VM执行的信息。

        一些术语的中文解释:

         S0C:年轻代中第一个survivor(幸存区)的容量 (字节)
         S1C:年轻代中第二个survivor(幸存区)的容量 (字节)
         S0U:年轻代中第一个survivor(幸存区)目前已使用空间 (字节)
         S1U:年轻代中第二个survivor(幸存区)目前已使用空间 (字节)
         EC:年轻代中Eden(伊甸园)的容量 (字节)
         EU:年轻代中Eden(伊甸园)目前已使用空间 (字节)
         OC:Old代的容量 (字节)
         OU:Old代目前已使用空间 (字节)
         PC:Perm(持久代)的容量 (字节)
         PU:Perm(持久代)目前已使用空间 (字节)
         YGC:从应用程序启动到采样时年轻代中gc次数
         YGCT:从应用程序启动到采样时年轻代中gc所用时间(s)
         FGC:从应用程序启动到采样时old代(全gc)gc次数
         FGCT:从应用程序启动到采样时old代(全gc)gc所用时间(s)
         GCT:从应用程序启动到采样时gc用的总时间(s)

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

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

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

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

         OGCMX:old代的最大容量 (字节)

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

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

         PGCMX:perm代的最大容量 (字节)   

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

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

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

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

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

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

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

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

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

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

         TT: 持有次数限制

         MTT : 最大持有次数限制

 --------------------------------------------------------------------------------------------------------------------------------------------------------------

 jinfo:实时地查看和调整虚拟机的各项参数。

通过java -XX:+PrintFlagsFinal查看参数默认值

---------------------------------------------------------------------------------------------------------------------------------------------------------------

jmap命令:jmap的用途是为了展示java进程的内存映射信息,或者堆内存详情

jmap(Memory Map for Java)命令用于生成堆转储快照(一般称为heapdump或dump文件)。如果不使用jmap命令,要想获取Java堆转储快照还有一些比较“暴力”的手段:譬如在第2章中用过的-XX:+HeapDumpOnOutOfMemoryError参数,可以让虚拟机在OOM异常出现之后自动生成dump文件,通过-XX:+HeapDumpOnCtrlBreak参数则可以使用【Ctrl】+【Break】键让虚拟机生成dump文件,又或者在Linux系统下通过Kill -3命令发送进程退出信号“恐吓”一下虚拟机,也能拿到dump文件。

jmap的作用并不仅仅是为了获取dump文件,它还可以查询finalize执行队列,Java堆和永久代的详细信息,如空间使用率、当前用的是哪种收集器等。

 

histo

jmap -histo pid 展示class的内存情况,可以采用jmap -histo pid >a.log(再如:jamp -histo:live 2464 >testjmap.txt)将其保存到文件中,在一段时间后使用文本对比工具,可以对必出GC回收了哪些对象。jmap -dump:format=b,file=outfile 5446可以将5446进程内存heap输出出来到outfile文件里,在配合MAT(内存分析工具)。

展示的信息为编号,实例数,字节,类名

 

 

heap

jmap -heap pid 展示pid的整体堆信息


[root@localhost ~]# jmap -heap 5446
Attaching to process ID 5446, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 24.45-b08

using thread-local object allocation.
Parallel GC with 10 thread(s) #10个gc线程

Heap Configuration: #堆内存初始化配置
   MinHeapFreeRatio = 40 #-XX:MinHeapFreeRatio设置JVM堆最小空闲比率
   MaxHeapFreeRatio = 70 #-XX:MaxHeapFreeRatio设置JVM堆最大空闲比率
   MaxHeapSize      = 3722444800 (3550.0MB) #-XX:MaxHeapSize=设置JVM堆的最大大小
   NewSize          = 1310720 (1.25MB) #-XX:NewSize=设置JVM堆的‘新生代’的默认大小
   MaxNewSize       = 17592186044415 MB #-XX:MaxNewSize=设置JVM堆的‘新生代’的最大大小
   OldSize          = 5439488 (5.1875MB) #-XX:OldSize=设置JVM堆的‘老生代’的大小
   NewRatio         = 2 #-XX:NewRatio=:‘新生代’和‘老生代’的大小比率
   SurvivorRatio    = 8 #-XX:SurvivorRatio=设置年轻代中Eden区与Survivor区的大小比值
   PermSize         = 134217728 (128.0MB) #-XX:PermSize=<value>:设置JVM堆的‘永生代’的初始大小
   MaxPermSize      = 268435456 (256.0MB) #-XX:MaxPermSize=<value>:设置JVM堆的‘永生代’的最大大小
   G1HeapRegionSize = 0 (0.0MB)

Heap Usage:
PS Young Generation
Eden Space: #Eden区内存分布
   capacity = 651165696 (621.0MB)
   used     = 29038624 (27.693389892578125MB)
   free     = 622127072 (593.3066101074219MB)
   4.459483074489231% used
From Space: #其中一个Survivor区的内存分布
   capacity = 1572864 (1.5MB)
   used     = 0 (0.0MB)
   free     = 1572864 (1.5MB)
   0.0% used
To Space: #另一个Survivor区的内存分布
   capacity = 296747008 (283.0MB)
   used     = 0 (0.0MB)
   free     = 296747008 (283.0MB)
   0.0% used
PS Old Generation #当前的Old区内存分布
   capacity = 2481979392 (2367.0MB)
   used     = 120759968 (115.16567993164062MB)
   free     = 2361219424 (2251.8343200683594MB)
   4.865470212574594% used
PS Perm Generation #当前的 “永生代” 内存分布
   capacity = 268435456 (256.0MB)
   used     = 139659040 (133.18923950195312MB)
   free     = 128776416 (122.81076049804688MB)
   52.02704668045044% used

 

dump

导出的文件可以供分析用,比如jhat或者mat,以便查找内存溢出原因

假如指定live选项,那么只输出活的对象到文件. 

jmap –dump:live,[format=b,]file=/usr/java/dump.log 5446

-finalizerinfo 打印正等候回收的对象的信息

jmap -finalizerinfo 5446

 
64位机上使用需要使用如下方式:

-permstat 打印classload和jvm heap长久层的信息. 包含每个classloader的名字,活泼性,地址,父classloader和加载的class数量. 另外,内部String的数量和占用内存数也会打印出来

$jmap -permstat 5446

Ø  -F 强迫.在pid没有相应的时候使用-dump或者-histo参数. 在这个模式下,live子参数无效. 

Ø  -h | -help 打印辅助信息 

Ø  -J 传递参数给jmap启动的jvm.

-----------------------------------------------------------------------------------------------------------------------------

jhat命令

用途:是用来分析java堆的命令,可以将堆中的对象一html的形式显示出来,包括对象的数组,大小等等,并支持对象查询语言

第一步:导出堆

jmap -dump:live,file=dump.txt 5446

第二步:分析堆文件

jhat dump.txt

第三步:查看html(再输入:http://访问机器的ip地址:7000后:)

注意:在访问的html下方有各种条件的查询:

(2)从根集能引用到的对象

(3)显示平台包括的所有类的实例数量

(4)堆实例的分布表
 

(5)执行对象查询语句
 

windows下按[Ctrl+C]停止

-------------------------------------------------------------------------------------------------------------------------------------------------------

jstack:java堆栈跟踪工具

jstack(Stack Trace for Java)命令用于生成虚拟机当前时刻的线程快照(一般称为threaddump或javadoc文件)。线程快照就是当前虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等都是导致线程长时间停顿的常见原因。线程出现停顿的时候通过jstack来查看各个线程的调用堆栈,就可以知道没有响应的线程到底在后台做些什么事情,或者等待着什么资源。

 

jstack命令
该命令打印java线程的堆栈跟踪,可以得知哪些线程被阻塞或正等待,以便于查找如线程死锁的原因
用法:
jstack [ option ] pid
-F:强制产生一个线程dump
-m:打印java和native frames
-l:打印关于锁的附加信息

jstack [-l] 5446

 

 

时间: 2024-11-02 01:03:04

jps,jstat,jinfo,jmap,jhat,jstack工具的使用/查看Linux磁盘信息的相关文章

jvm系列(四):jvm调优-命令大全(jps jstat jmap jhat jstack jinfo)

文章同步发布于github博客地址,阅读效果更佳,欢迎品尝 运用jvm自带的命令可以方便的在生产监控和打印堆栈的日志信息帮忙我们来定位问题!虽然jvm调优成熟的工具已经有很多:jconsole.大名鼎鼎的VisualVM,IBM的Memory Analyzer等等,但是在生产环境出现问题的时候,一方面工具的使用会有所限制,另一方面喜欢装X的我们,总喜欢在出现问题的时候在终端输入一些命令来解决.所有的工具几乎都是依赖于jdk的接口和底层的这些命令,研究这些命令的使用也让我们更能了解jvm构成和特性

[转载]JDK自带VM分析工具jps,jstat,jmap,jconsole

一.概述      SUN 的JDK中的几个工具,非常好用.秉承着有免费,不用商用的原则.以下简单介绍一下这几种工具.(注:本文章下的所有工具都存在JDK5.0以上版本的工具集里,同javac一样,不须特意安装)  .           我一共找到以下四个工具:重点看看jconsole和jmap. jps :与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号. jstat :一个极强的监视VM内存工具.可以用来监视VM内存内的各种堆和非堆

JVM问题诊断常用命令:jinfo,jmap,jstack

1.jinfo 描述:输出给定 java 进程所有的配置信息.包括 java 系统属性和 jvm 命令行标记等. 用法: jinfo [ option ] pid jinfo [ option ] executable core jinfo [ option ] [server-id@]remote-hostname-or-IP 例子: jinfo pid 得到结果如下:   Java代码   JVM version is 14.0-b16      Java System Properties

Linux工具快速上手,Linux很实用命令

Linux工具快速上手   前言 Linux下有很多命令行工具供我们使用,每个工具总是提供了大量参数供我们选择: 实际工作中,我们用到的工具,最常用的总是那么几个参数组合: 为此,我写了这本书相对实用的书: 这本书专注于Linux工具的最常用用法,以便读者能以最快时间掌握,并在工作中应用: 说明 全书分为三个部分: 第一部分为基础篇,介绍我们工作中常用的工具的高频用法: 第二部分为进阶篇,介绍的工具更多的适合程序员使用,分为程序构建.程序调试及程序优化: 第三部分是工具参考篇,主要介绍实用工具的

DBA工具——DMV——通过sys.dm_exec_procedure_stats查看存储过程执行信息

原文:DBA工具--DMV--通过sys.dm_exec_procedure_stats查看存储过程执行信息 对于DBA来说,经常要手机存储过程的某些信息: 执行了多少次 执行的执行计划如何 执行的平均读写如何 执行平均需要多少时间 列名 数据类型 说明 database_id int 存储过程所在的数据库 ID. object_id int 存储过程的对象标识号. type char(2) 对象的类型: P = SQL 存储过程 PC = 程序集 (CLR) 存储过程 X = 扩展存储过程 t

黑客盯上美国助学申请工具漏洞 窃取10万纳税人信息

美国国税局(Internal Revenue Service,IRS)约翰`科士奇宁周四表示,美国学生申请助学金使用的一款在线工具遭遇黑客攻击,可能导致超过10万名纳税人的信息被窃. 科士奇宁周四在参议院财政委员会(Senate Finance Committee)听证会上作证称,当用户使用"数据检索工具"(Data Retrieval Tool)填写联邦政府助学金免费申请(Free Application for Federal Student Aid,FAFSA)时,IRS发现用户

di - 比 df 更有用的磁盘信息工具

如果你是个Linux命令行用户,你肯定会使用df命令检查文件系统的磁盘使用情况.尽管df是一个受欢迎的命令,但仍然不能提供一些高级的功能,如一个用户实际的磁盘可用空间,以及各种有用的显示格式等.还有另一个命令行实用工具可用,不仅提供了这些高级功能也提供了df的所有特性.在本文中,我们将讨论磁盘信息工具 -- di 注释 - 如果你想了解 df 更多信息, 查看 df命令教程. di - 磁盘信息工具 从这个di帮助手册页很明显的发现 di 提供了一些很有价值的特性,值得一试.让我们看一些这个工具

di 4.31发布 磁盘信息工具

di是一个磁盘信息工具,用于显示df的一切信息.其特点是能够显示任何格式的磁盘使用情况,它可以用于检查用户和组配额,使用户能看到可用空间供其使用,而不是全系统的磁盘空间.该工具的目的是用于高度便携式跨平台和成为一个优秀的异构网络. di 4.31该版本文件系统将返回一个"权限被拒绝"不再生成和显示错误消息.修复了汇集(ZFS)的文件系统时没有安装主池的问题. 软件信息:http://www.gentoo.com/di/ 下载地址:http://www.gentoo.com/di/di-

di 4.30发布 磁盘信息工具

di是一个磁盘信息工具,用于显示'df'命令的一切相关信息.它能够显示在任何格式下磁盘的使用情况,还可以检查用户和组配额,使用户能看到可用磁盘空间. di 4.30版本支持长命令行选项. 软件信息:http://www.gentoo.com/di/ 下载地址:http://www.gentoo.com/di/di-4.30.tar.gz