虚拟机性能监控与故障处理工具

一. jps : 虚拟机进程状况工具

  1. 功能:列出正在运行的虚拟机进程,并显示虚拟机执行主类(Main Class, main()函数所在的类)名称和这些进程的本地虚拟机唯一ID(Local Virtual Machine Identifier, LVMID)。其他JDK工具大多需要输入它查询到的LVMID来确定要监控的是哪一个虚拟机进程。
  2. jps命令格式:
    jps [ options ] [ hostid ]
    jps 可以通过RMI协议查询开启了RMI服务的远程虚拟机进程状态,hostid 为RMI注册表中注册的主机名。
  3. 选项
    -q 只输出LVMID,省略主类的名称
    -m 输出虚拟机进程启动时传递给主类 main() 函数的参数
    -l 输出主类的全名,如果进程执行的是Jar包,输出Jar的路径
    -v 输出虚拟机进程启动时JVM参数

二. jstat : 虚拟机统计信息监视工具

  1. 功能:监视虚拟机各种运行状态信息的命令行工具。可以显示本地或者远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据。
  2. jstat命令格式
    jstat [ option vmid [ interval [ s | ms ] [ count ] ] ]
    如果是本地虚拟机进程,VMID与LVMID是一致的,如果是远程虚拟机进程,那VMID的格式应当是 [ protocol: ] [ // ] lvmid [@hostname[ :port ] /servename ]
    参数interval和count代表查询间隔和次数,如果省略这两个参数,说明只查询一次。假设需要每250毫秒查询一次进程2746垃圾收集状况,一共查询20次,那命令应当是:
    jstat -gc 2764 250 20
  3. 选项
    选项option代表着用户希望查询的虚拟机信息,主要分为3类:类装载、垃圾收集、运行期编译状况。
    选项作用-class监视类装载、卸载数量、总空间以及类装载所耗费的时间-gc监视Java堆状况,包括Eden区、两个survisor区、老年代、永久代等的容量、已用空间、GC时间合计等信息。-gccapacity监视内容基本与 -gc 基本相同,但输出主要关注Java堆各个区域使用到的最大、最小空间。-gcutil监视内容基本与 -gc 基本相同,但输出主要关注已使用空间占总空间的百分比-gccause与 -gcutil 功能一样,但是会额外输出导致上一次GC产生的原因-gcnew监视新生代GC状况-gcnewcapacity监视内容基本与 -gcnew 基本相同,输出主要关注使用到的最大、最小空间-gcold监视老年代GC状况-gcoldcapacity监视内容基本与 -gcold 基本相同,输出主要关注使用到的最大、最小空间-gcpermcapacity输出永久代使用到的最大、最小空间-compiler输出JIT编译器编译过的方法、耗时等信息-printcompilation输出已经被JIT编译的方法

三. jinfo : Java配置信息工具

  1. 功能:实时地查看和调整虚拟机各项参数
  2. jinfo命令格式
    jinfo [ option ] pid
  3. 选项
    通过 jinfo -h 命令获取详细信息

四. jmap: Java内存映像工具

  1. 功能:用于生成堆转储快照(一般称为heapdump或dump文件),查询finalize执行队列、Java堆和永久代的详细信息,如空间使用率、当前用的是哪种收集器等。
  2. jmap命令格式
    jmap [ option ] vmid
  3. 选项
    选项作用-dump生成Java堆转储快照。格式为: -dump:[ live, ] format=b, file=<filename>, 其中live子参数说明是否只dump出存活的对象。-finalizerinfo显示在F-Queue中等待Finalizer线程执行finalize方法的对象。只在Linux/Solaris平台下有效。-heap显示Java堆详细信息,如使用哪种回收器、参数配置、分代状况等。只在Linux/Solaris平台下有效。-histo显示堆中对象统计信息,包括类、实例数量、合计容量-permstat以ClassLoader为统计口径显示永久代内存状况。只在Linux/Solaris平台下有效。-F当虚拟机进程对-dump选项没有响应时,可使用这个选项强制生成dump快照。只在Linux/Solaris平台下有效。
  4. 例子
    jmap -dump:format=b,file=eclipse.bin 3500

5.问题
(1)执行jmap -heap命令时,报如下错误:
Attaching to process ID 3991, please wait...
Error attaching to process: sun.jvm.hotspot.debugger.DebuggerException: Can't attach to the process
(2)解决方案
修改/etc/sysctl.d/10-ptrace.conf文件如下:
kernel.yama.ptrace_scope = 1 ---> kernel.yama.ptrace_scope = 0
(即将1改成0),然后重启即可。

五. jhat : 虚拟机堆转储快照分析工具
1.功能:Sun JDK 提供 jhat(JVM Heap Analysis Tool)命令与 jmap 搭配使用,来分析 jmap 生成的堆转储快照。jhat 内置了一个微型的 HTTP/HTML 服务器,生成 dump 文件的分析结果后,可以在浏览器中查看。
2.使用步骤
● 使用jhat [ fileName ] 命令分析堆转储快照文件
● 使用 http://localhost:7000/ 查看分析结果 (端口在输出信息中可以找到)

六. jstack: Java堆栈跟踪工具

  1. 功能:用于生成虚拟机当前时刻的线程快照(一般称为threaddump或者javacore文件)。线程快照就是当前虚拟机每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等都是导致线程长时间停顿的常见原因。线程出现停顿的时候通过 jstack 来查看各个线程的调用堆栈,就可以知道没有响应的线程到底在后台做些什么事情,或者等待什么资源。
  2. jstack命令格式
    jstack [ option ] vmid
  3. 选项
    选项作用-F当正常输出的请求不被响应时,强制输出线程堆栈-l除堆栈外,显示关于锁的附加信息-m如果调用到本地方法的话,可以显示C/C++的堆栈
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,544评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,430评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,764评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,193评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,216评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,182评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,063评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,917评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,329评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,543评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,722评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,425评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,019评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,671评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,825评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,729评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,614评论 2 353

推荐阅读更多精彩内容