`
xiangxingchina
  • 浏览: 520248 次
  • 性别: 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

分享到:
评论

相关推荐

    java虚拟机(WINCE)

    - 资源优化:由于WINCE系统资源有限,应尽可能优化Java代码,减少内存占用和CPU负载。 - API适配:由于JME的API与Java Standard Edition(Java SE)有所不同,需要检查并适配使用的API是否在JME中可用。 - 性能测试...

    weblogic集群安装及nginx https反向代理及负载均衡配置

    - **配置环境变量**:在 `/etc/profile` 文件中添加相应的 JAVA_HOME、CLASSPATH 和 PATH 环境变量,并使更改立即生效。 - **验证安装**:通过 `java -version` 命令验证 JDK 的安装情况。 ##### 1.7 解决 WebLogic...

    weblogic集群安装及nginx反向代理及负载均衡配置

    - **CPU**:建议至少配备双核处理器,对于生产环境推荐四核及以上。 - **内存**:最低 4GB,推荐 8GB 或更高。 - **硬盘空间**:确保至少有 20GB 的可用空间用于安装 WebLogic Server 和相关组件。 - **网络**:保证...

    awr报告详细分析

    SGA是Oracle数据库中用于存储数据和控制信息的内存区域,其中Shared Pool是SGA的一部分,主要用来存储最近解析或编译过的SQL、PL/SQL以及Java代码,还包括数据字典信息。由于library cache和dictionary cache中的...

    JProfiler使用完全手册

    3. 堆栈分析:查看导致CPU负载高的特定堆栈轨迹。 **四、内存分析** 1. 内存分配视图:追踪对象的创建和销毁,找出内存泄漏源头。 2. 垃圾收集分析:观察垃圾回收过程,优化内存管理策略。 3. 对象生存分析:研究...

    linux安装配置运行jmeter[参考].pdf

    同时,注意监控系统的资源使用情况,如CPU、内存和磁盘,确保系统能够应对负载测试带来的压力。 总的来说,Linux上的JDK安装和JMeter配置涉及多个步骤,包括卸载旧版本、安装新版本、配置环境变量、设置默认JDK以及...

    Oracle AWR运行日志分析工具详解.docx

    Load Profile 部分显示数据库负载概况,包括 Redo Size、Logical Reads、Block Changes、Physical Reads、Physical Writes、User Calls、Parses 等指标。 * Redo Size:每秒产生的日志大小(单位字节),可标志数据...

    jdk-8u301-linux-x64.tar.gz

    对于**服务器运维**,配置好JDK是基础,而了解如何管理和优化JVM(Java Virtual Machine)性能,监控Java应用的内存、CPU使用情况,以及日志管理等都是关键技能。此外,熟悉Linux系统的常用命令和性能监控工具(如...

    oracle AWR性能分析详解

    如果快照周期没有覆盖数据库高负载的时段,或者快照周期过长而导致包含了大量数据库空闲时间,那么分析结果可能就无法真实反映性能问题,这会导致DBA对数据库性能的理解出现偏差。 总结来说,Oracle AWR性能分析是...

    Oracle AWR报告 解读

    Library cache用来存储最近解析或编译过的SQL、PL/SQL和Java类等,而dictionary cache用来存储最近引用的数据字典信息。Shared Pool的管理对于数据库性能至关重要,因为cache miss发生在Shared Pool的代价比在buffer...

    LSF简易使用手册

    LSF,全称为Load Sharing Facility,是Platform公司开发的一款分布式资源管理系统,主要用于集群环境中的任务调度、监控和负载分析。它的主要目标是对集群资源进行统一的管理和调度,确保高效利用计算资源。 ### ...

    Alfresco部署

    接着,需要编辑用户的bash配置文件(~/.bash_profile),设置JAVA_HOME、JAVA_BIN和CLASSPATH等环境变量,并更新PATH,确保系统能够找到Java。此外,还需要创建软链接,以便在/usr/bin目录下直接使用java和javac命令...

    J2ME技术手册

    开发者应避免内存泄漏,及时释放不再使用的对象,并优化代码以降低CPU负载。 **J2ME的挑战** 尽管J2ME有其优点,但在实际开发中也存在挑战,如设备差异性大、性能限制以及调试工具不足等。开发者需要熟悉各种设备...

    Wls-weblogic管理监控.docx

    - CPU使用:检查CPU是否长时间高负荷运行,即使在低负载情况下,持续的高CPU使用可能是程序执行效率低下或者存在资源争抢问题。 - 内存监控:观察内存占用情况,过高的内存使用可能导致系统性能下降,甚至出现内存...

    线程过多and高效MIDP编程

    线程过多的问题在MIDP编程中尤为突出,因为每个线程都会占用内存,并可能导致CPU负载增加,从而影响电池寿命和设备性能。当大量线程同时运行时,操作系统可能会忙于上下文切换,这会消耗额外的时间和资源,降低程序...

    tomcat8.0版本

    - **Java EE 7支持**:Tomcat 8.0实现了Java EE 7 Web Profile,提供对WebSocket、JSP 2.3、Servlet 3.1规范的支持。 - **NIO.2支持**:引入了新的Java NIO.2 API,提高了并发性能和连接管理效率。 - **更好的JAR...

    如何看AWR报告.pdf

    AWR报告的Load Profile部分展示了重做日志大小(Redo size)、逻辑读取次数(Logical reads)、块更改次数(Block changes)和物理读取次数(Physical reads)等统计信息。这些数据有助于分析SQL语句的效率和数据库...

    XiaoHH-nexus上传.rar

    对Nexus的性能进行监控,如内存使用、CPU负载和磁盘空间,以确保其稳定运行。Nexus提供了内置的监控接口,也可以结合其他监控工具如Prometheus、Grafana进行集成。 通过以上步骤,你可以在Linux环境中成功安装并...

    Linux系统中Apache服务器的配置与管理.pdf

    对于大型网站,可能需要更高性能的硬件以应对高并发访问。 在软件层面,Apache-Tomcat服务器的安装和配置涉及多个步骤。首先,我们需要在Linux系统上安装Java Development Kit (JDK) 1.6或以上版本。可以通过下载...

    Linux AS3上Weblogic的安装配置

    10. **集群和负载均衡**:如果需要高可用性和负载均衡,可以配置WebLogic集群。这涉及到多个WebLogic Server实例之间的通信和数据同步。 11. **监控和性能调优**:使用WebLogic内置的监控工具和JMX接口来监视服务器...

Global site tag (gtag.js) - Google Analytics