一、jvisualvm使用

JDK1.6中Oracle提供了一个新的JVM监控工具:jvisualvm。下面重点介绍如何在本地通过远程的方式打开Linux服务器上的jvisualvm.

1、Xmanager安装

由于jvisualvm为可视化监控工具,在本地远程服务器时,为了保证能够打开jvisualvm首先必须在本地安装Xmanager;

2、启动jvisualvm

进入Linux JDK Bin目录下,然后分别运行如下命令启动jvisualvm:

(1)export DISPLAY=本地IP:0

(2)./jvisualvm &

jvisualvm启动后如下图所示:

二、飞行记录器的使用

为了分析和定位一个Java线上系统问题,我们需要查看JVM启动时的一些参数设置,例如:垃圾回收算法、堆大小等等。这些参数可能在启动脚本中明确指明,也可能采用默认值。在系统运行过程中其他人也许动态调整了系统参数。 如何实时查看正在运行的JVM的参数呢?此时我们可以使用jcmd.

jcmd是从JDK 7开始引入的一个JVM诊断命令行工具,可以向运行中的JVM发送诊断命令。因此要求JDK版本不得低于jdk1.8.0,也可以检查本地jdk安装目录下是否有jmc.exe文件(本地打开jfr工具),如下所示:

在保证了JDK版本的前提下,欲使Linux上下载下来的jfr文件能在本地运行,还需要在搭有Linux环境的服务器JVM中添加如下参数:

-XX:+UnlockCommercialFeatures -XX:+FlightRecorder ,配置完成后如下所示:

JAVA_OPTS="$JAVA_OPTS -d64 -XX:NewRatio=3 -Xms16g -Xmx128g -XX:PermSize=128M -XX:+UnlockCommercialFeatures -XX:+FlightRecorder"

然后在Linux环境上运行如下命令生成jfr文件:

jcmd pid JFR.start delay=1s duration=60s name=serverRecording filename=recording_`date +%Y%m%d%H%M%S`.jfr settings=profile

待文件生成成功后,下载相应的jfr双击即可查看相关信息。(代码->热点方法->堆栈跟踪)

使用到的其它命令如下:

jcmd                           ----查看JVM进程的PID
      jcmd -l                       
      jcmd pid Thread.print   ----打印堆栈信息,功能类似于jstack -m pid

飞行记录器的示例如下:

三、Xmanager配置访问Linux图形化界面

使用jvisualvm和飞行记录器分析Java程序cpu占用率过高的更多相关文章

  1. 使用jstack分析java程序cpu占用率过高

    在项目中经常会碰到CPU占用率过高的问题,那么碰到这类问题应当如何处理呢?下面提供一种处理思路: 首先top -H -p <pid>以线程的模式查看java应用的运行情况,找到占用cpu或 ...

  2. java应用CPU占用率过高问题的分析

    使用top查询哪个进程占用CPU过高 查看CPU占用高的进程中,哪个线程占用CPU高 可通过以下三种方式查看: 1 top中按SHIFT+H查找哪个线程占用高 2 top -H -p PID命令查看哪 ...

  3. 线上Java程序导致服务器CPU占用率过高的问题排除过程

    博文转至:http://www.jianshu.com/p/3667157d63bb,博文更好效果看原版,转本博文的目的就算是个书签吧,需要时候可以定位原文学习 1.故障现象 客服同事反馈平台系统运行 ...

  4. 记一次线上Java程序导致服务器CPU占用率过高的问题排除过程

    博文转至:http://www.jianshu.com/p/3667157d63bb,转本博文的目的就是需要的时候以防忘记 1.故障现象 客服同事反馈平台系统运行缓慢,网页卡顿严重,多次重启系统后问题 ...

  5. Linux下java进程CPU占用率高分析方法

    Linux下java进程CPU占用率高分析方法 在工作当中,肯定会遇到由代码所导致的高CPU耗用以及内存溢出的情况.这种情况发生时,我们怎么去找出原因并解决. 一般解决方法是通过top命令找出消耗资源 ...

  6. (转)Linux下java进程CPU占用率高-分析方法

    Linux下java进程CPU占用率高-分析方法 原文:http://itindex.net/detail/47420-linux-java-%E8%BF%9B%E7%A8%8B?utm_source ...

  7. Linux下java进程CPU占用率高分析方法(一)

    Linux下java进程CPU占用率高分析方法 在工作当中,肯定会遇到由代码所导致的高CPU耗用以及内存溢出的情况.这种情况发生时,我们怎么去找出原因并解决. 一般解决方法是通过top命令找出消耗资源 ...

  8. Java内存、CPU占用率过高

    windows下揪出java程序占用cpu很高的线程 并找到问题代码 死循环线程代码 linux下查找java进程占用CPU过高原因 Java 占用CPU使用率很高的分析 记一次线上Java程序导致服 ...

  9. Linux下分析某个进程CPU占用率高的原因

      Linux下分析某个进程CPU占用率高的原因 通过top命令找出消耗资源高的线程id,利用strace命令查看该线程所有系统调用  1.top 查到占用cpu高的进程pid 2.查看该pid的线程 ...

随机推荐

  1. 2015年10月23日JS笔记

    ECMAScript标准:JavaScript核心语法 微软:Jscript ECMAScript标准:一纸空文 JavaScript和JScritp都号称完全实现了 ECMAScript标准 W3C ...

  2. 给定金额m和红包数量n

    这一题如果是采用暴力手段,不一定能获得正确答案,而且也非常耗时. 所以下面我们采用一个小技巧,也就是先产生n-1个红包,总得sum<m的,这样最后只要添加一个sum-m的红包钱数就可以了. 具体 ...

  3. 609C Load Balancing

    题意: ”平均数“的意思是:最大数和最小数之间的差值为0或1: 先求“平均”数组,再相减. #include<iostream> #include<cstdlib> #incl ...

  4. leetcode–Binary Tree Maximum Path Sum

    1.题目说明 Given a binary tree, find the maximum path sum.   The path may start and end at any node in t ...

  5. leetcode@ [289] Game of Life (Array)

    https://leetcode.com/problems/game-of-life/ According to the Wikipedia's article: "The Game of ...

  6. RC522天线匹配参数【worldsing笔记】

    图为Device读卡器的参数值 EMC电路对读写距离影响不大:                   L3 和L4 固定为2.2uH:                  C11和C12也是固定值,如果P ...

  7. 搭架私有Git服务器Gogs

    博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:搭架私有Git服务器Gogs.

  8. 利用UIBezierPath实现一个带圆角的视图

    - (void)drawRect:(CGRect)rect { // draw a box with rounded corners to fill the view - UIBezierPath * ...

  9. 3、VS2010+ASP.NET MVC4+EF4+JqueryEasyUI+Oracle项目开发之——用户登录

    近期因为项目赶着上线,一直没时间接着写博客,今天最终空出了时间.声名:我不是专业美工,所以界面问题,希望大家不要拍砖.登录界面例如以下: 在ASP.NET MVC中,要新增一个功能,我们首先要加入一个 ...

  10. Centos 7 yum 安装php

    yum install php php-devel 重启apache使php生效 /etc/init.d/httpd restart 此时可以在目录:/var/www/html/下建立一个PHP文件 ...