文档章节

linux中找到最耗CPU的那段Java代码

laichendong
 laichendong
发布于 2014/06/25 09:27
字数 457
阅读 178
收藏 1
点赞 1
评论 0
在这里总结一下查找linux,sun JDK环境下最耗CPU性能的java代码段的方法。基本上原理就是使用top命令查看最耗cpu的进程和线程(子进程)。使用jstack把java线程堆栈给dump下来。然后,在堆栈信息中查找出对应的代码块。具体操作如下:

一、使用top查找出最耗cpu的进程号(PID)

2013011622221320130116215224(提示:可以按shift+p来按cpu排序。) 这里我们看到最耗cpu的进程是:17315

二、使用jstack dump对应PID的堆栈信息保存备查

20130116215630 这没什么好说的。有时候需要加-F (强制选项)。另外,在jdk1.6.0.23之前,有一个bug。无法用这种方法dump下详细的堆栈信息。只有线程号。 dump下来的文件内容大概长这样:20130116220414几个比较有用的信息包括 线程名称、nid(native id, 一会儿会用到)、线程状态

三、再次使用top查出对应PID中最耗cpu的子进程(java线程)

2013011621582220130116215957top命令使用-p参数来指定进程号,-H参数来显示线程。这里可以看到最耗cpu的进程(java中的线程)是17316

四、从dump下来的堆栈信息中查找耗费性能的代码块

从上面开到,我们用top找出来的pid是十进制的。而dump下来的nid是十六进制的。其实他们是一个东西。只是进制不同。于是我们利用printf命令格式化来转换一下进制(当然,也可以用其他方式): 20130116221543   20130116221709 通过在vim中查找,就能找到问题所在了。 :D 20130116221855

好了,基本就是这样一个步骤,对于分析线上问题还是有一定帮助的。have fun!

© 著作权归作者所有

共有 人打赏支持
laichendong
粉丝 8
博文 85
码字总数 71483
作品 0
朝阳
程序员
Linux下如何对tomcat Java线程进行分析?

在生产环境(Linux)有什么办法知道当前某个线程的运行情况,比如是不是挂住了,是不是吃了好多cpu和内存。 以下是针对tomcat上的应用的. 其他的java程序, 只要你能触发他的thread dump并且拿到...

DongHenry
2013/09/26
0
0
Java Tomcat vs PHP CLI Server 性能对比

测试环境: Ubuntu 14.04 with i5-3230M Tomcat 8.0.5 with 64bit jre1.7.0_55 PHP 5.5.8 with Zend OPcache v7.0.3-dev 测试脚本: 显示当前服务器时间 Java Tomcat: t.jsp <%@ page session=......

eechen
2014/09/22
0
34
LINUX类主机JAVA应用程序占用CPU、内存过高分析手段

转载声明:本文为DBA+社群原创文章,转载必须连同本订阅号二维码全文转载,并注明作者名字及来源:DBA+社群(dbaplus)。 做为一个IT运维人员,通常在运维过程中会遇到各种各样的问题,系统问...

丁启良
2015/12/04
0
0
Java基础-环境变量设置及Java命令行使用

一、Java环境变量设置 windows 下配置JDK环境变量: 1. 安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为D:javajdk1.5.008; 2. 安装完成后,右击“我的电脑”,点击“属...

陶邦仁
2012/11/11
0
0
Ubuntu10.04中手动安装jdk6

在UBUNTU中搭建android开发环境,需要安装jdk。命令行下载特别慢,手动安装吧。 提示:最好使用root登录,不然下面第三步的移动文件夹会提示你的权限不够。 一,下载jdk安装文件:jdk-6u24-li...

拉风的道长
2012/07/18
0
0
windows下揪出java程序占用cpu很高的线程 并找到问题代码 死循环线程代码

我的一个java程序偶尔会出现cpu占用很高的情况 一直不知道什么原因 今天终于抽时间解决了 系统是win2003 jvisualvm 和 jconsole貌似都只能看到总共占用的cpu 看不到每个线程分别占用的cpu呢 ...

本人纯属虚构
2013/04/24
0
4
java性能监控常用的几个命令

找到性能问题的第一步是监控应用的行为,通过监控提供的线索,我们可以将性能问题进行归类并分析。 1、CPU使用率:大多数操作系统的CPU使用率分为用户态CPU使用率和系统态CPU使用率。用户态C...

小天120
2014/03/16
0
1
RedHat Linux 5 SUN JDK的安装

1、下载jdk,可以直接在RHEL上下载,也可以在本机下载,然后通过psftp传上去(jdk-6u20-linux-i586-rpm.bin),当然FileZilla这样的FTP工具更好用 2、用putty连接linux 3、执行jdk-6u20-linu...

晨曦之光
2012/03/09
0
0
【JVM系列】深入了解JVM 、JRE、JDK三者的联系

JDK: Java Development Tool Kit(Java开发工具包)。JDK就是我们用来做事情的工具,它包括JRE还有其他工具。我们所说版本的不同,也就是说它里面的工具有差异。就像是你不同的工具箱里放着不同...

磊神Ray
2011/09/21
0
1
Java应用性能分析工具:async-profiler

作者: 一字马胡 转载标志 【2017-12-15】 更新日志 厉害的内容 及时对项目进行性能检测,并且分析检测结果数据,发现热点代码是一项充满意义的工作,因为可能因为某一段热点代码会拖慢整个系...

疼丸李白
2017/12/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

ES15-JAVA API 索引管理

1.创建连接 创建连接demo package com.sean.esapi.client;import java.net.InetSocketAddress;import org.elasticsearch.action.get.GetResponse;import org.elasticsearch.clien......

贾峰uk
7分钟前
0
0
单点登录的设计,从单域名到多域名(经验分享)

个人实践总结,最初的的需求,多个产品线都在同一个根域名下面。 独立的用户中心分离,单独负责用户登录和用户信息获取、变更等处理逻辑。 第一步,用户登录成功,分配给用户一个memToken(令...

小海bug
9分钟前
0
0
合格前端第十二弹-TypeScript + 大型项目

写在前面 TypeScript 已经出来很久了,很多大公司很多大项目也都在使用它进行开发。上个月,我这边也正式跟进一个对集团的大型运维类项目。 项目要做的事情大致分为以下几个大模块 一站式管理...

qiangdada
12分钟前
0
0
编程学习之如何在Node.js中优化服务器端渲染?[图]

编程学习之如何在Node.js中优化服务器端渲染?[图] 在 Airbnb,我们花了数年时间将所有前端代码迁移到 React 架构,Ruby on Rails 在 Web 应用中所占的比例每天都在减少。实际上,我们很快会...

原创小博客
14分钟前
0
0
gradle学习笔记

相关文档 适合新手的 gradle 自学教程合集 Gradle教程

OSC_fly
28分钟前
0
0
Virtual Serial Port - RFC2217

Virtual Serial Port for Linux RFC-2217 The COM Port Control Protocol pyserial - RFC 2217 NetSerial - Windows Telnet COM Port - RFC Official Using Python, How do I make a virtual......

zungyiu
35分钟前
0
0
全球的IPv6部署急剧增加,中国进度较慢

导读 全球的IPv6部署继续增加,但中国在IPv6方面还需要努力,从部署图上分析,中国几乎没有几个地方是普及IPv6的。这6年来,自世界IPv6发布以来,全球网络和服务提供商的IPv6部署水平急剧增加...

问题终结者
39分钟前
1
0
好看的电影记录

星际迷航三 狂暴之路 新木乃伊 黑夜传说 铁血战士2

xd03122049
43分钟前
0
0
记录Yii2框架开发遇到微信错误提示

转载地址 记录Yii2框架开发遇到微信错误提示 微信公共号开发,提示“该公众号暂时无法提供服务,请稍后再试”,如何解决? 以前使用Yii框架的时候,并没有像Yii2,以前的Yii框架似乎用起来在...

durban
45分钟前
1
0
LSM树(Log-Structured Merge Tree)存储引擎浅析

其实每一种数据库,它都是一种抽象的数据结构的具体实现。 随着rocksDB(facebook的),levelDB(google的),以及我们熟知的hbase,他们都是使用的LSM树结构的数据库。 它的核心思路其实非常...

算法之名
58分钟前
13
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部