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

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

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

生产问题解决心态审查

在我们进行下一步之前,重要的是要检查您的生产问题解决思路。 在我与Java EE生产支持团队的经验中,最常见的“反应”之一就是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

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

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

相关文章

php进程间通信 yoc_swoole的process模块创建和使用子进程

swoole中为我们提供了一个进程管理模块 Process,替换PHP的 pcntl 扩展,方便我们创建进程,管理进程,和进程间的通信。swoole提供了2种进程间的通信:1、基于 unix socket 的管道 pipe。2、基于 sysvmsg 的消息队列。我们…

mysqls压力测试怎么用_阿里研究员:测试稳定性三板斧,我怎么用?

阿里妹导读:如何治理测试稳定性问题?很多人会说:环境、流程管控、监控、工具化、加机器、专人负责、等等。这些都是对的。不过这些都是解决方案层面的,而不是方法论和理论体系层面的。今天,阿里研究员郑子颖来说说测试…

HttpModule与HttpHandler详解

ASP.NET对请求处理的过程:当请求一个*.aspx文件的时候,这个请求会被inetinfo.exe进程截获,它判断文件的后缀(aspx)之后,将这个请求转交给 ASPNET_ISAPI.dll,ASPNET_ISAPI.dll会通过http管道&…

【iOS开发】---- 强大的UI修改工具 UIAppearance-有图片效果

iOS5及其以后提供了一个比较强大的工具UIAppearance&#xff0c;可以轻松的统一你的界面&#xff0c;它提供如下两个方法&#xff1a; (id)appearance (id)appearanceWhenContainedIn:(Class <>)ContainerClass,... 第一个方法是统一全部改&#xff0c;比如你设置UINav…

使用Jetty设置JNDI(嵌入式)

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

交华为换机access配置_华为交换机Hybrid接口及基础配置

一、回顾VLANVLAN基本概念VLAN即虚拟局域网&#xff0c;是将一个物理的LAN在逻辑上划分成多个广播域(多个VLAN)的通信技术。VLAN内的主机间可以直接通信&#xff0c;而VLAN间不能直接互通&#xff0c;从而将广播报文限制在一个VLAN内。由于VLAN之间的隔离&#xff0c;所以一些类…

HttpClient使用之下载远程服务器中的文件(注意目录遍历漏洞)

参考文献&#xff1a; http://bbs.csdn.net/topics/390952011 http://blog.csdn.net/ljj_9/article/details/53306468 1.下载地址 http://hc.apache.org/downloads.cgi Apache-》Projects-》HttpComponents 2.DownloadServlet 1 package com.servlet;2 3 import java.io.Buffer…

git push 的符号笔有什么用_如何同步多个 git 远程仓库

点击上方“后端技术精选”&#xff0c;选择“置顶公众号”技术文章第一时间送达&#xff01;作者&#xff1a;taadismy.oschina.net/taadis/blog/3073220题外话&#xff0c;开发中遇到问题或者学习新技术时缺少交流环境&#xff0c;可以点击加入【后端技术交流群】日常需求以前…

2、Spring的 IoC详解(第一个Spring程序)

Spring是为了解决企业应用开发的复杂性而创建的一个轻量级的控制反转&#xff08;IoC&#xff09;和面向切面&#xff08;AOP&#xff09;的容器框架。在这句话中重点有两个&#xff0c;一个是IoC&#xff0c;另一个是AOP。今天我们讲第一个IoC。 一. IoC理论的背景 我们都知道…

js 获取father_(原创)Node.JS实战26:强大的工作池。收藏吧!你一定会用的到。...

在实际项目中&#xff0c;如果遇到需要大计算量的操作&#xff0c;按需fork&#xff08;分叉&#xff09;其实不是一个好的选择。因为fork的子进程也是V8&#xff08;NodeJS的核心引擎&#xff09;的新实例&#xff0c;每创建一个新实例&#xff0c;需要约30毫秒启动时间&#…

修复steam服务器失败,steam服务器链接失败

steam服务器链接失败 内容精选换一换当NTP服务器异常时产生该告警。当NTP服务器异常消除时&#xff0c;该告警恢复。主OMS节点配置的NTP服务器异常&#xff0c;可能会导致主OMS节点与外部服务器不能同步时间&#xff0c;集群时间可能会产生飘移。NTP服务器网络异常。与NTP服务器…

将jar添加到发布目录_第32批免购置税新能源车型目录发布;通用BEV3平台将入华...

1、第32批免购置税新能源车型目录发布&#xff0c;几何X/理想ONE等283款车型入选6月2日&#xff0c;工信部发布《免征车辆购置税的新能源汽车车型目录(第三十二批)》&#xff0c;共有283款新能源车型入选。其中新能源乘用车方面包括&#xff0c;一汽大众Q2L/e-BORA、东风风神E7…

HPROF –内存泄漏分析教程

本文将为您提供有关如何通过生成和分析Sun HotSpot JVM HPROF堆转储文件来分析JVM内存泄漏问题的教程。 一个现实的案例研究将用于此目的&#xff1a;Weblogic 9.2内存泄漏影响Weblogic Admin服务器。 环境规格 Java EE服务器&#xff1a;Oracle Weblogic Server 9.2 MP1 中…

mq服务器与客户端消息同步,使用 ActiveMQ 实现JMS 异步调用

目录简介服务之间的同步调用&#xff0c;可以使用 HTTP 或 RPC 来完成&#xff0c;但并非所有的调用都需要同步&#xff0c;有些场景下&#xff0c;当客户端调用服务端时&#xff0c;并不需要等待服务端做出响应&#xff0c;此时就应该使用异步调用。异步调用的常用方式是基于 …

多个数字数组_七个问题帮助初学者深入理解Java数组

短文涨姿势&#xff0c;看了不白看&#xff0c;不关注等啥&#xff1f;几乎所有的高级语言当中&#xff0c;都提供了一种叫做”数组”的东西&#xff0c;Java语言当然也不例外。我们通过数组可以很方便的存储和管理一组数据。因为在Java语言当中使用数组非常的方便&#xff0c;…

java 异常练习题1

建立exception包&#xff0c;建立Bank类&#xff0c;类中有变量double balance表示存款,Bank类的构造方法能增加存款&#xff0c;Bank类中有取款的发方法withDrawal(double dAmount),当取款的数额大于存款时,抛出InsufficientFundsException,取款数额为负数&#xff0c;抛出Nag…

大话设计模式读书笔记--6.原型模式

简单的复制粘贴极有可能造成重复代码的灾难, 但是java中提供了克隆的功能, 如果一个对象创建过程复杂,又要频繁使用, 在初始化信息不发生变化的情况下,应当采取克隆而不是new一个对象 定义 原型模式: 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象 也就是说,…

Java 7#8:测试台上的NIO.2文件通道

关于新JDK 7功能的另一篇博客文章。 这次我正在写有关新的AnsynchronousFileChannel类的文章。 我将在两周内深入分析新的JDK 7功能&#xff0c;并决定连续编号我的帖子。 只是为了确保我不会感到困惑&#xff1a;-)这是我关于Java 7的第七篇文章&#xff08;我承认–碰巧–这也…

5页面title样式修改_认识html:实现网站页面是这么简单的一回事

互联网时代人们通过上网浏览信息&#xff0c;打开浏览器上网看到丰富的图文、视频、音乐等多媒体信息&#xff0c;一系列信息反馈和视觉冲击之后&#xff0c;您有没有想过&#xff0c;互联网这么发达的时代&#xff0c;您觉得花一点点时间学会做个网站页面不真香&#xff1f;概…

iOS指南针

前言&#xff1a; 这个小项目使用到了CoreLocation框架里面的设备朝向功能&#xff0c;对CoreLocation感兴趣的可以翻一下之前的文章 在另一个博客站有朋友发现一个尴尬的问题&#xff08;图片的东西2个方向是不对的&#xff09;&#xff0c;原谅我的大意&#xff0c;赶时间就直…