java cpu_Java High CPU故障排除指南–第1部分

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/355913.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android:ellipsize=end 不起作用,android:ellipsize=end 失效或者 相关的Bug

其实这文章有点傻逼。相关的问题TextView android:ellipsize“end”超出一个字符时不显示…的解决http://www.pocketdigi.com/20140122/1261.html上面我到没有遇到过。但是我遇到的更神奇。就是在使用android:ellipsize“end”正常的情况下这个属性。该textView的文本就不能加入…

适用于具有Couchbase和WildFly的多容器和多主机应用程序的Docker Machine,Swarm和Compose...

该博客将说明如何使用Docker创建部署在多个主机上的多容器应用程序。 这将使用Docker Machine,Swarm和Compose实现。 是的,所有这三个工具一起使此博客更加有趣! 该图说明了关键组件: Docker Machine用于配置多个Docker主机 …

一键复制android代码,兼容安卓和ios实现一键复制内容到剪切板

js兼容安卓和ios实现粘贴板一键复制color: #000;background: #fff;overflow-y: scroll;-webkit-text-size-adjust: 100%;-ms-text-size-adjust: 100%;}html*{outline:0;-webkit-text-size-adjust: none;-webkit-tap-highlight-color: transparent}*{margin:0;padding:0}.conten…

adf时间作用域_ADF:在任务流终结器中支持bean作用域

adf时间作用域介绍 当我们需要在任务流消失之前做一些最终工作(干净的资源,紧密的连接等)时,这是使用任务流终结器的非常普遍的建议做法。 和往常一样,我们使用在任务流中声明的托管bean。 托管Bean可以具有不同的范围…

Drools:fireAllRules,fireUntilHalt和Timers内部代码清理的详细说明

在六月,我们在博客上发布了一个新的内部状态机,用于管理用户,计时器和引擎线程之间的交互。 现在,我们对该代码进行了另一次大的内部清理,以使其更易于阅读和理解。 如前所述,所有操作(插入&am…

nodejs+vue+ElementUi房屋房产销售预约看房系统bqv00

完成房产销售系统,对房源的信息、用户信息及各种资料进行收集和科学的管理,该系统的功能基本可以满足当前市面上的小型房产企业对于房产销售的基本要求,收集各个地区的房源信息并进行分类管理,用户通过注册账号登录网站查询房源信…

ios framework 找不到.h_找不到好看的壁纸?上万张「高清壁纸」,都在iOS捷径里...

所需工具:iOS捷径获取方法:后台私信回复「363」不和大家废话,今天给大家分享一个超好用的ios壁纸捷径,用了它之后再也不怕找不到喜欢的壁纸了~将克拉壁纸的捷径链接在Safari浏览器打开,就会自动跳转到一个获取捷径的窗…

div内容用html语言写,html – 使用DIV作为另一个元素的背景

这里我用2个div做了一个例子:> .content,包含前端所需的一切> .background – 包含文本,图像和背景中的所有其他内容要将一个div包装在另一个div上(制作叠加层),你必须将它们放入相同的元素中,在本例中它是#wrapper div.放置位置:包装的相对宽度/高…

jetty 配置jndi_使用Jetty设置JNDI(嵌入式)

jetty 配置jndi我在开发工作区上运行嵌入式Jetty,从而节省了一些恶性的编译和部署周期。 我与Jetty的合作不多,易用性使我着迷于它。 我需要设置JNDI才能检索与数据库相关的活动的连接池。 尽管某些地方有完整的文档,但大多数都是分散的。 因…

auot lisp 选择集处理_离散量的计算机处理63_1Cv6

计算机语言运用--数值计算6-离散量的计算机处理63_1Cv6计算机:电子线路组成的计算机器。人与计算机则是通过计算机语言-符号系统说给计算机听而交流。计算机语言有低级语言-机器语言、汇编、高级语言-C/C/C#/VB/PASCAL/LISP/JAVA/PYTHON/……成百上千种之多。作为一…

linkedblockingqueue 后 take 不消化_消化不良的成因及护理

疾病名称:消化不良就诊科室:消化内科疾病成因心理和精神的不良应激:患者的精神不愉快、长期闷闷不乐或突然受到猛烈的刺激等均可引起。不良饮食习惯:包括刺激性食物(咖啡、浓茶、甜食、油腻、生冷等)和不良…

Yandex.Algorithm 2011 Round 2 D. Powerful array 莫队

题目链接:点击传送D. Powerful arraytime limit per test5 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputAn array of positive integers a1, a2, ..., an is given. Let us consider its arbitrary subarray al, al  …

html 形状div,div+css实现各种形状(精心整理)

1.正方形.div {width: 100px;height: 100px;background: red;}2.矩形.div {width: 200px;height: 100px;background: red;}3.圆形.div {width: 100px;height: 100px;background: red;-moz-border-radius: 50px;-webkit-border-radius: 50px;border-radius: 50px;}4.椭圆.div {w…

4.1.5事件

用事件有一种监听的思想 一个事件对应一个委托 事件是委托类型 一个事件对应一个委托,委托可以对应多个方法 如气球爆炸了 气球的反应 小孩的反应 事件源有代码自动激发事件 扔出事件 —————————————— 3.只能在类的内部触发事件 4.可以在内部…

485不用双绞线可以吗_现在在上海,挡风玻璃可以一个标志都不用贴吗?

问近日,有市民咨询:现在在上海,车上挡风玻璃可以一个标志都不用贴吗?答可以一个标志都不贴。自2020年3月1日起,本市机动车在本市办理注册、变更、转移登记和核发检验标志、补换检验标志业务时,将自动生成检…

2021上饶市高考中考成绩查询,2021年上饶中考成绩公布查询时间 上饶中考成绩查询方式入口...

2018年上饶中考成绩公布查询时间 上饶中考成绩查询方式入口2018年上饶高考结束了,可是上饶中考又来了!6月注定是一个不平淡的月份。又一大批孩子朝着青春出发踏着坚定的脚步,行走在如火的六月。宁静的清晨,静谧的夜,那条反反复复走…

git中文件的三种状态

用xcode的时候,左侧栏文件的邮右边时不时会看到M,A这一类的字母。当然,这些以后再写上。先说一下git里文件的三种状态 已提交(committed) 已经提交的本地仓库(repository),需要手动…

桌面怎么设置 计算机 网络,Win10 10130桌面电脑网络图标怎么设置?

越来越多朋友的计算机安装Windows10系统,现在Windows10系统已经升级到10130版,我的计算机升级到了10130版。安装Windows10的10130版系统后,桌面只有回收站和软媒的图标,如何把电脑、网络、用户的文件、控制面板等图标设置到桌面上…

swift 打开第三方应用_iOS卡通人物帧动画入门9(大结局):番外篇-扩展第三方类

扩展第三方类细心的朋友可能会发现,我们前面计算主角的大小用的总是同一方向第一帧纹理的大小,如果纹理大小有出入的话,会产生较大的偏差,最好的方法是取当前动画帧纹理的大小。不过这有些难度,所以我们退之求其次&…

vue如何过滤html标签,去除富文本中的html标签及vue、react、微信小顺序中的过滤器...

在猎取富文本后,又只需显现部分内容,须要去除富文本标签,然后再截取个中一部分内容;然后就是过滤器,在微信小顺序中运用照样挺屡次的,在vue及react中也遇到过1.富文本去除html标签去除html标签及 空格let r…