`
xiangxingchina
  • 浏览: 506456 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java profile【cpu负载过高】

 
阅读更多

问题描述: cpu负载陡增,内存占用情况稳定。(在多cpu的情况下,比如4核,free 看到cpuload 15%,但是查看单cpu会达到 100% 负载。。。)

 

1分析工具jstack:

 

/usr/java/jdk1.6.0_13/bin/jstack -l 11831  >   jstack.log  // 进程 pid

 

以前 jstack 弄出来的栈文件总是不知道看些什么。通过这次问题的定位,发现 jstack 可以很快缩小排查范围。 比较适合定位线程相关的资源消耗。

 

核心看点:

  1  检查活动状态的线程,查看提示行代码。如果不能找到问题,可以相隔几分钟从新 dump 一次,看该行是否重现。

  2   在同一个 dump 文件多次出现同一个线程,提示同一行。往往会是“锁”。

 

 

 

2 /usr/java/jdk1.6.0_13/bin/jmap -J-d64 -dump:live,format=b,file=heap_dump.bin 15605   // 进程 pid 文件名

dump 到的 bin 文件使用基于 eclipse 的工具“ MemoryAnalyzer ”,可以得到很完整的内存分析报告。

 

个人理解:仅仅是内存方面的分析,好像没办法分析 cpu 占用的东西。

 

3 IDC 上,直接分析 java cpu 负载高的工具还不算多, jstack 只是说缩小排查范围,可能还需要下面这些技巧():

 

eclipse profile 工具: http://eclipsecolorer.sourceforge.net/index_profiler.html

         这个东东非常强大,可惜无法部署到 IDC 环境,也无法 dump 数据下来本机分析。对于可以在测试环境下重现的 cpu 负载高问题,可以尝试配置 profile

 

Strace   http://hi.baidu.com/chinaw3/blog/item/4c5b772c39c485ee8a1399c2.html

strace 命令是一种强大的工具,它能够显示所有由用户空间程序发出的系统调用。
   strace 显示这些调用的参数并返回符号形式的值。 strace 从内核接收信息,而且不需要以任何特殊的方式来构建内核。
  下面记录几个常用 option .  
   1 -f -F 选项告诉 strace 同时跟踪 fork vfork 出来的进程
   2 -o xxx.txt 输出到某个文件。
   3 -e execve 只记录 execve 这类系统调用        

 

这个命令的威力要自己试过了才知道。。嘿嘿

 

Java profile 参数: http://java.sun.com/developer/onlineTraining/Programming/JDCBook/perf3.html

cpu=samples|times|old

CPU usage

off

详细情况在“ Where the Application Spends its Time ”这个小节里面。 这个页面最后也顺带介绍了一下 strace

分享到:
评论

相关推荐

    yourkit java profile

    yourkit java profile,查看jvm的工具,图形化,功能强大

    profile_java

    profile_java

    BESSModel.zip_bess battery_load profile_电池负载均衡_调峰_负载均衡

    BESS通常用于负载均衡,调峰,负载转移应用等。 此BESS块从工作空间获取每小时负载曲线(kW)输入,并计算电网和电池使用量输出到工作空间。 必须以两列格式准备负载配置文件,其中第一列是从一天的0小时开始的...

    java-onvif.zip_-baijiahao_ONVIF java_java onvif_java-onvif_refer

    利用java 实现与摄像机的onvif通讯

    java @Profile注解详解

    主要介绍了java @Profile注解详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    ubuntu 切换java版本profile文件

    解压文件,放在home目录下,因为是隐藏文件,使用ll命令查看才能看得到,解压放到home目录后修改权限,sudo chmod a+x .profile*

    cpuprofile-webpack-plugin:为您的Webpack构建生成一个cpuprofile

    cpuprofile-webpack-plugin 为您的Webpack构建生成一个cpuprofile 可以将配置文件导入GoogleChrome开发工具。 此外,还会生成表示形式: :warning: 警告 :warning: 该库是一个进行中的工作,使用后果自负。 但是请...

    F5负载均衡设备-关于One Connect的工作机制

    详细解释F5负载均衡设备上实现One Connnect的原理,如何实现Client端和Server端的连接聚合。

    java核心技术高级特性Chp3网络

    java核心技术

    Linux下JAVA-HOME配置指南.pptx.pptx

    JAVA_HOME的定义 JAVA_HOME是一个环境变量,它指向的是JDK(Java Development Kit)的安装目录,对于...通常在Linux系统中,我们可以通过修改bashrc或bash_profile文件来设置JAVA_HOME,使其指向正确的JDK安装目录。

    Java 课件Java 数据库连接 vb数据库 数据库爱好 数据

    Java 与数据库连接,数据库的应用实例 Java 数据库连接 vb数据库 数据库爱好 数据 Java 数据库连接 vb数据库 数据库爱好 数据Java 数据库连接 vb数据库 数据库爱好 数据

    自定义添加linux系统java环境变量脚本及安装包

    各位小伙伴肯定都遇到过拿到一个linux环境发现没有java环境,又需要屁颠屁颠跑去找java安装包配置环境变量的问题吧? 本资源为二狗自己编写的快速定义java环境变量的脚本,可以帮助你剩下不少时间,操作前建议备份/...

    Java EE 8 web profile 规范 和full platform规范

    Java EE , web profile ,full platform ,规范

    华为java培训讲义

    LINUX系统(在" .bash_profile "下的环境变量设置) JAVA_HOME=/opt/jdk1.5.0_06 CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar PATH=$PATH:$JAVA_HOME/bin:. export JAVA_HOME CLASSPATH ...

    harpro:消耗相关的 HAR 和 CPUPROFILE 文件生成报告

    Harpro 使用相关的 HAR 和 CPUPROFILE 文件来生成已下载但未使用的 JavaScript 的报告。 Harpro 需要 node.js。 harpro [--har] [--pro] [--verbose] Harpro 将独立处理 --har 或 --pro 选项中引用的文件。 如果...

    Java Performance

    Using modern Java Virtual Machine (JVM) and OS observability tools to profile running systems, with almost no performance penalty Gaining “under the hood” knowledge of the Java HotSpot VM that can ...

    x86平台h.264 main profile全规格高性能解码库

    由于main profile的复杂度比较高,不推荐在不支持MMX,SSE2技术的计算机上使用本解码库产品。 5)产品标杆:在性能指标上一直参照业界性能最佳coreAVC解码库进行对比开发,目前纯解码性能稳定在其120%以上,而且...

    java[游戏必备]

    Java手机软件平台 Java手机软件平台采用的基本Java平台是CLDC (Connected Limited Device Configuration)和MIDP (Mobile Information Device Profile),是J2ME (Java 2 Micro Edition)的一部分,在中国一般称为...

    JavaME+API

    MID Profile All Classes Packages java.io java.lang java.util javax.microedition.io javax.microedition.lcdui javax.microedition.lcdui.game javax.microedition.media javax.microedition.media....

    Linux中profile、bashrc、bash_profile之间的区别和联系

    .profile(由Bourne Shell和Korn Shell使用)和.login(由C Shell使用)两个文件是.bash_profile的同义词,目的是为了兼容其它Shell。在Debian中使用.profile文件代 替.bash_profile文件。 2..bashrc文件会在bash shell...

Global site tag (gtag.js) - Google Analytics