Linux下Java性能监控
Linux下Java性能监控
一、JVM堆内存使用监控
获取thread dump的3种方法:
3)cmd ->jvisualvm,远程连接,选择堆Dump生成heap dump日志文件
二、占用cpu高的线程
5284co_ad 21 0 3028m 2.5g 9432S 1.0 16.3 6629:44java
21994mysql 15 0 449m 88m 5072 S 1.0 0.6 67582:38mysqld
8657 co_sparr 19 0 2678m 892m 9220S 0.3 5.7 103:06.13 java
21233 co_ad2 15 0 1807m 630m 9492S 1.3 4.0 0:05.12java
20503 co_ad2_s 15 0 1360m 560m 9176S 0.3 3.6 0:46.72java
21134 co_ad2 15 0 1807m 630m 9492S 0.3 4.0 0:00.72java
22673 co_ad2 15 0 1807m 630m 9492S 0.3 4.0 0:03.12 java
这里我们分析21233这个线程,并且注意的是,这个线程是属于21125这个进程的。
3)jstack查找这个线程的信息
jstack [进程]|grep -A 10 [线程的16进制]
即:jastack 21125|grep -A 10 52f1
结果:
- "http-8081-11" daemon prio=10 tid=0x00002aab049a1800 nid=0x52bb in Object.wait() [0x0000000042c75000]
- java.lang.Thread.State: WAITING (on object monitor)
- at java.lang.Object.wait(Native Method)
- at java.lang.Object.wait(Object.java:485)
- at org.apache.tomcat.util.net.JIoEndpoint$Worker.await(JIoEndpoint.java:416)
三、Thread Dump诊断java应用问题
首先查找到服务器的进程号(process id), 然后获取堆栈.
1)ps –ef | grep java
2)kill -3 <pid> (发送一个SIGQUIT信号给Java应用之后,通常会有当前的Thread Dump输出。输出一次Thread Dump,结束进程并等待3秒让应用释放资源)
(些Java应用服务器是在控制台上运行,如Weblogic,为了方便获取threaddump信息,在weblogic启动的时候,会将其标准输出重定 向到一个文件,用"nohup ./startWebLogic .sh > log.out &"命令,执行"kill -3 <pid>",Thread dump就会输出到log.out里。Tomcat的Thread Dump会输出到命令行控制台或者logs的catalina.out文件里。为了反映线程状态的动态变化,需要接连做三次以上thread dump,每次间隔10-20s。)
Linux下Java性能监控的更多相关文章
- Linux下通过server-status监控性能
Linux下通过server-status监控性能 前提:安装好Apache,在opt/路径下 查看Apache的工作模式 可以知道是 prefork.c模式 配置server-status 性能 进 ...
- Java性能监控
Java性能监控 上次介绍了如何使用jvisualvm监控java,今天做进一步讲解!Java性能监控主要关注CPU.内存和线程. 在线程页中,点击线程Dump,可以生成threaddump日志,通过 ...
- Linux下java/bin目录下的命令集合
Linux下JAVA命令(1.7.0_79) 命令 详解 参数列表 示例 重要程度 资料 appletviewer Java applet 浏览器.appletviewer 命令可在脱离万维网浏览器环 ...
- 【转载】Linux系统与性能监控
原文地址:http://kerrigan.sinaapp.com/post-7.html Linux System and Performance Monitoring http://www.hous ...
- Linux系统与性能监控
原文地址:http://kerrigan.sinaapp.com/post-7.html Linux System and Performance Monitoring http://www.hous ...
- 关于 Java 性能监控您不知道的 5 件事,第 1 部分
责怪糟糕的代码(或不良代码对象)并不能帮助您发现瓶颈,提高 Java? 应用程序速度,猜测也不能帮您解决.Ted Neward 引导您关注 Java 性能监控工具,从5 个技巧开始,使用Java 5 ...
- Linux系统和性能监控之CPU篇
Linux系统和性能监控之CPU篇 性能优化就是找到系统处理中的瓶颈以及去除这些的过程.本文由sanotes.net站长tonnyom在2009年8月翻译自Linux System and Perfo ...
- Linux下,如何监控某个进程到底向哪个地址发起了网络调用
Linux下,如何监控某个进程到底向哪个地址发起了网络调用 有时候,有些应用,比如idea,你发起某个操作时,其底层会去请求网络,获取一些数据. 但是不知道,请求了什么地址.举个例子,在idea中,m ...
- Linux下java进程CPU占用率高分析方法
Linux下java进程CPU占用率高分析方法 在工作当中,肯定会遇到由代码所导致的高CPU耗用以及内存溢出的情况.这种情况发生时,我们怎么去找出原因并解决. 一般解决方法是通过top命令找出消耗资源 ...
随机推荐
- POJ 1258(最小生成树+知识)
用kruskal算法,利用w[i]给r[i]间接排序,从而r[i]可以按照边大小保存序号,同时要判断是否在一个集合里面 #include <cstdio> #include <ios ...
- LeetCode ClimbingStairs
class Solution { public: int climbStairs(int n) { ) ; ; ; ; i<n; i++) { int t = a + b; a = b; b = ...
- Ubuntu16.04 下安装tomcat
有两种常用方法: 一.通过 apt-get 命令进行在线安装(会自动配置好环境变量和服务) 二.通过下载并解压 .tar.gz 包进行手动安装(需要手动配置环境变量) 一.通过 apt-get 命令进 ...
- Java设计模式—享元模式
享元模式:是池技术的重要实现方式. 定义如下: 使用共享对象可有效地支持大量的细粒度的对象. 个人理解:享元模式利用共享对象的技术,解决了Java中内存溢出的问题. 享元模式的定义为我们提出了两个要求 ...
- 基于TCP/IP的程序设计
TCP特点 (1)面向连接的传输 (2)端到端的通信 (3)高可靠性,确保传输数据的正确性,不会出现丢失或者乱序 (4)全双工方式传输 (5)采用字节流方式,以字节为单位传输字节序列 (6)紧急数据传 ...
- 通信与实际用例应用(消息队列和进程撰写的ATM机与消息队列的五子棋对站)
int semget(key_t key, int nsems, int semflg); 功能:创建信号量或获取信号量 nsems:信号量的数量 semflg: IPC_CREAT|IPC_EXEC ...
- sort、sorted、heapq、bisect排序
aa=[1,2,8,7,0,13,28,3]sorted(aa) #原list不变,从小到大排序 aa.sort() #改变原lisaa.sort(reverse=True) #反转 for i in ...
- [转发]CPU个数、CPU核心数、CPU线程数
我们在选购电脑的时候,CPU是一个需要考虑到核心因素,因为它决定了电脑的性能等级.CPU从早期的单核,发展到现在的双核,多核.CPU除了核心数之外,还有线程数之说,下面文本就来解释一下CPU的核心数与 ...
- xise官方网站|XISE官网|xise最新版下载|超级XISE WBMS管理V12.0版本官方网站|
诠释: 1. 破解VIP登陆限制 2.去后门 (自查) 下载地址 :https://pan.baidu.com/s/1eR2rUOM 查毒地址:http://a.virscan.org/a3983f3 ...
- php给$_POST赋值会导致值为空
在调试一个程序的时候发现很奇怪的现象,post传过来的值再某些地方为空,先看下面的代码 <?php if($_POST['submit'] == 'Add'){ if($_POST['type' ...