java cpu

本文是该系列的第1部分,它将为您提供有关如何进行故障排除和识别Java高CPU问题根本原因的综合指南。

本指南也适用于独立的Java程序,但旨在帮助涉及Java EE企业日常生产支持的个人。 它还将包括最常见的高级CPU问题列表以及高级解决方案。

生产问题解决心态审查

在继续进行之前,重要的是要检查您的生产问题解决思路。 我在Java EE生产支持团队的经验中看到的最常见的“React”之一是Java VM /中间件重新启动通常是执行的第一个恢复操作。 虽然过早重启可以快速消除业务影响,但也可能使您无法获取所有技术事实。 降低了识别根本原因的能力,并使平台在将来再次出现该问题。

在拉动触发器并关闭Java VM进程之前,请问自己以下问题:我是否拥有所有可用数据以在重启后执行根本原因分析? 如果答案是否定的,那么我对您的建议是查看并改进您当前的平台监视和/或疑难解答方法。 在出现高CPU问题之前和期间正确收集性能数据至关重要。

Java高CPU –究竟是什么?

现在回到我们的原始主题,一个高CPU问题是通过观察一个或多个Java VM进程消耗了来自物理主机的过多CPU利用率来定义的。 过多的CPU也可以通过异常高的CPU使用率与已知和已建立的基准来描述。 例如:如果Java VM在高峰负载条件下的平均CPU利用率为40%,则可以将过多的CPU阈值设置为80%左右。

典型的Java VM进程包含多个Java线程,其中一些正在等待工作,而另一些正在执行任务。 如果只有一个Java程序,线程数可能会非常低,而对于处理大量并发事务的Java EE企业平台,线程数可能会非常高。

为了了解和识别一个或多个Java进程的高CPU资源,您需要了解并执行Java VM的所有线程的完整细分,以便您找出最大的贡献者。 该分析练习可以按照下图显示。

了解您的平均CPU使用率

正如我在上一节中提到的,了解当前的平均CPU使用率(称为基准)非常重要。 这是至关重要的数据,作为全面而持续的平台容量规划策略的一部分,需要定期对其进行监视。

正确理解和跟踪从Java VM进程中观察到的平均和“健康” CPU利用率,将使您能够快速检测异常CPU高峰情况并与可能的根本原因(项目引入的问题,意外的负载增加等)相关联。 最后,这将为您提供适当的阈值,以使用您选择的监视工具配置与CPU相关的主动警报。

了解您的生产环境和可用工具

作为中间件和/或应用程序支持的主要部分,您确实需要了解您的生产环境,包括可用于执行低级故障排除任务的现成工具。 对于某些人来说,这可能是微不足道的,但是如果您刚开始为新客户使用新的Java或Java EE平台,我的建议是您应该花足够的时间了解客户的环境规格和业务状况,如下所示:

  • 物理和虚拟主机配置和容量(分配的CPU内核,RAM等的总数)
  • 操作系统供应商,版本和补丁程序级别
  • 中间件供应商,版本和补丁程序级别
  • Java供应商和版本(包括32位和64位); 包括补丁级别
  • Java或Java EE应用程序中使用的第三方API
  • 您可以利用其进行历史数据和趋势分析的现有监视工具
  • 环境历史,已知问题,资源利用等
  • 每个应用程序的业务流量细分以及平台的平均和峰值流量水平; 包括营业高峰期

收集上述所有正确的事实,绝对可以帮助您进行根本原因分析。 包括与CPU相关的问题。

跳到第二部分之前的功课

在我们跳至本CPU故障排除指南的第2部分之前,强烈建议您学习并理解以下各篇文章。 专注于适用于您的环境的环境。 这些文章中的每一篇都会为您提供有关如何对Java VM的每个线程分解CPU的技术分步指南。 为了调查与Java CPU相关的问题而获得的关键故障排除技能。 该技术在某些方面很常见,具体取决于操作系统。

#Solaris上每个线程分析的CPU
http://javaeesupportpatterns.blogspot.com/2011/12/prstat-solaris-pinpoint-high-cpu-java.html

#Linux上每个线程的CPU分析
http://javaeesupportpatterns.blogspot.com/2012/02/prstat-linux-how-to-pinpoint-high-cpu.html

#AIX上每个线程分析的CPU
http://javaeesupportpatterns.blogspot.com/2011/12/prstat-aix-how-to-pinpoint-high-cpu.html

#Windows上每个线程的CPU分析
http://javaeesupportpatterns.blogspot.com/2012/04/java-thread-cpu-analysis-on-windows.html

我希望本文为Java CPU问题提供了一个很好的起点。 第2部分将为您提供故障排除指南,其中包括流程图,可让您根据问题情况选择正确的调查路径。

参考: Java High CPU故障排除指南–第1部分,来自我们的JCG合作伙伴 Pierre-Hugues Charbonneau,位于Java EE支持模式和Java教程博客上。

翻译自: https://www.javacodegeeks.com/2012/05/java-high-cpu-troubleshooting-guide.html

java cpu

java cpu_Java High CPU故障排除指南–第1部分相关推荐

  1. Java High CPU故障排除指南–第1部分

    本文是该系列的第1部分,它将为您提供有关如何进行故障排除和识别Java高CPU问题根本原因的综合指南. 该指南也适用于独立的Java程序,但旨在帮助涉及Java EE企业日常生产支持的个人. 它还将包 ...

  2. [Java故障排除指南- JDK11-学习笔记]-3-诊断工具jcmd

    目录 3 诊断工具jcmd 3.1 简介 3.2 jcmd 有用命令 3.3 使用 jcmd 进行故障排除 3 诊断工具jcmd 3.1 简介 该jcmd实用程序用于向 JVM 发送诊断命令请求,这些 ...

  3. mysql进程内存不足_故障排除指南:MySQL的运行内存不足怎么办?

    原标题:故障排除指南:MySQL的运行内存不足怎么办? [ ] [IT168 评论]故障排除对于所有人来说都不会是一件有趣的事情,尤其是在没有崩溃报告的情况下.如果MySQL因内存不足而崩溃时应该怎么 ...

  4. MacBook键盘无法正常工作?故障排除指南

    MacBook拥有豪华的外观和一些永不褪色的惊人功能.迄今为止,苹果公司已经对所有Mac机型获得了足够的信任,但是最终,它是一个系统,如果不是软件,那么硬件中就会出现一些问题.许多Mac用户面临的最常 ...

  5. iOS故障排除指南:基本技巧

    [2013年1月16日 51CTO外电头条]本文为<iOS故障排除指南:基本技巧>.在iOS程序的数组中的三个对象莫名其妙成了五个.新开发成员的加入令游戏性不升反降:熟悉应用开发的各位朋友 ...

  6. 力士乐驱动器原理图_(IndraDrive)力士乐HCS伺服驱动器故障排除指南.pdf

    (IndraDrive)力士乐HCS伺服驱动器故障排除指南.pdf Electric Drives Linear Motion and and Controls Hydraulics Assembly ...

  7. [Java故障排除指南- JDK11-学习笔记]-1-Java 进行故障排除前的一些准备

    目录 1-Java 进行故障排除前的一些准备 1.1 启用 JVM 故障排除的相关配置 1.1.1 HeapDumpOnOutOfMemoryError配置 1.1.2 飞行记录配置 1.1.3 GC ...

  8. [Java故障排除指南- JDK11-学习笔记]-4-诊断工具之使用JConsole 工具进行故障排除

    4-诊断工具之使用JConsole 工具进行故障排除 JDK 下载中包含的另一个有用工具是JConsole监控工具.该工具与 JMX 兼容.该工具使用 JVM 中的内置 JMX 工具来提供有关正在运行 ...

  9. 安装mysql出现存储不足_故障排除指南:MySQL的运行内存不足怎么办?

    [IT168 评论]故障排除对于所有人来说都不会是一件有趣的事情,尤其是在没有崩溃报告的情况下.如果MySQL因内存不足而崩溃时应该怎么办?Peter Zaitsev曾在2012年写过的一篇博客中给出 ...

最新文章

  1. python计算四元素组合算法_python – 算法,列表元素之间的最近点
  2. SQLite可视化管理工具汇总
  3. textarea选中行删除_Vim、gvim操作花样删除
  4. activiti bpmn 安装不上_小猿圈之Eclipse安装Activiti插件(流程设计器)
  5. scala list 接受java string_「软帝学院」Java零基础学习详解
  6. 顺序表查找+折半查找(二级)
  7. 漫画 | 面试的我 VS 真实的我
  8. js 1000+简写为K,10000+简写为W
  9. Linux下常用配置文件及常用命令介绍
  10. python遍历文件_python3 遍历文件夹目录所有文件
  11. 【a202】【9208】输油管道问题
  12. python怎么学比较有技巧_Python爬虫应该怎么学?程序猿花了一周整理的学习技巧,请收下...
  13. unitywebplayer 32/64 5.3版本
  14. [转] 如何轻松愉快地理解条件随机场(CRF)?
  15. Excel去掉下划线首字母小写的公式
  16. CCS之产生两个正弦波的仿真
  17. wordpress自建网站备案
  18. easyPR车牌识别分析与测试结果
  19. 嵌入式工程师不能不参加的技术盛会
  20. Android学习别“走弯路”,android开发计算器课程设计

热门文章

  1. ElasticJob-分布式作业调度神器,你们还在用Quartz吗
  2. 1分钟了解“区块链分叉”的本质
  3. 对于自绝对父相的理解
  4. 被黑客盯上了…数据都给打包带走了…
  5. ssm(Spring+Spring mvc+mybatis)Spring配置文件——applicationContext-servlet.xml
  6. 计算男孩女孩小孩各有几个 java——CSDN博客
  7. mysql中的isnull
  8. DevExperience(1710)
  9. mybatis_user_guide(3)XML配置
  10. MySQL创建字段+数据处理函数+汇总数据(聚集函数)+分组数据