当前位置: 首页 > 知识库问答 >
问题:

在Tomcat中标识使用100%cpu使用率的正在运行的服务

端木安国
2023-03-14

我的基于Web的Java EE应用程序基于以下技术:

  • 框架:Struts 2.0
  • 服务器:Tomcat 6.0
  • 前端UI:JSP、JSTL/Struts标记、HTML
  • 数据库:Microsoft SQL Server 9.00.2047.00
  • 语言:核心java、XML、XSLT。

现在我面临的问题是,我的web应用程序的某些进程将消耗更多的CPU使用量。有时我的Tomcat服务器会使用100%的CPU;这就是为什么我的电脑挂了。我无法确定哪个进程会导致这种100%的cpu使用率。

现在,我正在寻找任何第三方应用程序或任何实用程序,它为我提供CPU使用信息细节,名称为运行进程(服务),运行在Tomcat中。

共有1个答案

何高歌
2023-03-14

听起来你在找一个Java分析器...我听说过关于HPROF的好消息(需要一点时间来适应,但应该会提供你需要的所有信息(而且是免费的)。以下是Sun提供的关于HPROF的一些说明。

http://java.sun.com/developer/technicalarticles/programming/hprof.html

我没有亲自在服务器上运行过它,但我有同事必须识别与你类似的问题--它应该会给你你需要的东西。

还要记住,观察流程会改变流程的性能--所以这不是在生产中运行的事情。参见观察者效应

 类似资料:
  • 我在服务器上运行一个Java软件,24小时/天。今天早些时候(在服务器区域设置的午夜后几个小时检测到,这是值得注意的,因为它是本月的第一天),我收到了作为客户端连接到该软件的用户报告,称该软件突然变得不可用。JVM从未被中断或重新启动。它上一次重启是在几天前,从那以后它一直正常运行(使用大约5%或更少的CPU,这是正常的)。 这一次,当我检查该进程时,它实际上是在吞噬它可以从服务器上运行的其他应用

  • 我有一个HttPURLConnection程序,它正在与运行在同一台机器上(本例中是CentOS)但部署在其他tomcat服务器上的某个应用程序建立连接。这意味着在部署在不同tomcats上的两个应用程序之间建立了HttpConnection,其中两个tomcats都运行在同一台机器上。 下面是我的代码: 然而,同样的代码在生产环境中运行得非常好,每秒大约有50个请求。 当我使用JVisualVM

  • 问题内容: 我们的生产环境中存在问题,HTOP命令中的4个线程的CPU使用率为100%。为了进一步研究该问题,我生成了一个线程转储,以查找正在占用CPU的线程。 这是我发现的。这4个线程具有相同的堆栈跟踪,所有堆栈跟踪均处于 RUNNABLE 状态。不幸的是,由于堆栈跟踪没有引用我的内部代码,所以我一直停留在调查中,而更多地是在Richfaces方面。我认为这是JSF呈现页面的部分。 堆栈跟踪。

  • 我在应用程序中使用。在环境中运行应用程序时,应用程序使用的不足1%。当同一个应用程序在我的服务器上运行时,它将使用100%的。当禁用线程时,将恢复正常。 我正在使用和。 下面是线程: 为什么要使用100%的?

  • 问题内容: 我正在用Python做一个机器学习项目,所以我必须做并行预测功能,这是我在程序中使用的功能。 问题是我所有的CPU仅加载20-40%(总和为100%)。我使用multiprocessing.dummy,因为我在酸洗功能中的多处理模块有一些问题。 问题答案: 使用时,您使用的是线程,而不是进程: 复制API的API,但仅不过是模块周围的包装器。 这意味着您受到全局解释器锁(GIL)的限制

  • 我是开发web服务的新手。我正在使用axis2创建web服务并在Tomcat中部署。我通过从博客中获取一些知识并在Tomcat7中部署它来做到这一点problem.when我在SOAP UI中检查该Web服务。我得到了错误。 我所做的是。我创建了一个具有我的方法的java类。该方法用于插入记录 solr.so 我正在使用http客户端,基本名称值对等,我为该类制作aar文件并将其部署到tomcat