`

tomcat启动CPU占用很高

 
阅读更多

这是一个用来显示应用中所有的线程以及其运行状态的JSP页面,无需其他Java类支持,扔到web项目中即可运行。<html>

<head>
<title>Threads in oschina</title>
<style>
body {font-size:8pt;}
ol {line-height:18px;}
</style>
</head>
<body>
<strong>java.io.tmpdir:</strong>
<ul>
<li><%=System.getProperty("java.io.tmpdir")%></li>
</ul>
<br/>
<strong>Memory:</strong>
<ol>
<li>freeMemory=<%=Runtime.getRuntime().freeMemory()/(1024*1024)%>M</li>
    <li>totalMemory=<%=Runtime.getRuntime().totalMemory()/(1024*1024)%>M</li>
    <li>maxMemory=<%=Runtime.getRuntime().maxMemory()/(1024*1024)%>M</li>
</ol>
<br/>
<strong>Thread:</strong>
<ol>
<%for(Thread t : list_threads()){%>
<li><%=t.getName()%>(<b><%=t.getState()%></b>) : <%=t.getClass().getName()%></li>
<%}%>
</ol>
<%!
public static java.util.List<Thread> list_threads(){
    int tc = Thread.activeCount();
    Thread[] ts = new Thread[tc];
    Thread.enumerate(ts);
    return java.util.Arrays.asList(ts);
}
%>
</body>
</html>
 
-----------------------------------------------------------------

很多朋友碰到怎样的问题:tomcat启动CPU占用很高,Tomcat -6.0.18版本,本网通过互联网收集了以下的答案,以方便用户参考解决问题,具体问题如下:

 

开启tomcatCPU占用很高,一直降不下来,今天又好了,请问是为什么啊,谢谢

 

用户提供的答案1:

 

我用的这个版本,没有问题。还是在商用。

 

换个6.0的最高版本试试。

 

 

用户提供的答案2:

 

一般这种问题多半是应用程序导致的。

 

首先看看CPU占用高的时候访问是否正常,我之前经常遇见这样的问题,多半是某处代码死循环导致。

 

有个办法你试试用下面这个jsp文件看看系统中的线程,看有没有那些跟应用有关的该退出的没退出的。

 

http://www.oschina.net/code/snippet_12_2917

 

 

用户提供的答案3:

 

引用来自#3楼“红薯”的帖子

 

一般这种问题多半是应用程序导致的。

 

首先看看CPU占用高的时候访问是否正常,我之前经常遇见这样的问题,多半是某处代码死循环导致。

 

有个办法你试试用下面这个jsp文件看看系统中的线程,看有没有那些跟应用有关的该退出的没退出的。

 

http://www.oschina.net/code/snippet_12_2917

 

 

用户提供的答案4:

 

Thread:

  1. main(RUNNABLE) : java.lang.Thread
  2. Timer-0(TIMED_WAITING) : java.util.TimerThread
  3. com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0(TIMED_WAITING) : com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread
  4. com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1(TIMED_WAITING) : com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread
  5. com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2(TIMED_WAITING) : com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread
  6. org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-1(TIMED_WAITING) : org.quartz.simpl.SimpleThreadPool$WorkerThread
  7. org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-2(TIMED_WAITING) : org.quartz.simpl.SimpleThreadPool$WorkerThread
  8. org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-3(TIMED_WAITING) : org.quartz.simpl.SimpleThreadPool$WorkerThread
  9. org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-4(TIMED_WAITING) : org.quartz.simpl.SimpleThreadPool$WorkerThread
  10. org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-5(TIMED_WAITING) : org.quartz.simpl.SimpleThreadPool$WorkerThread
  11. org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-6(TIMED_WAITING) : org.quartz.simpl.SimpleThreadPool$WorkerThread
  12. org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-7(TIMED_WAITING) : org.quartz.simpl.SimpleThreadPool$WorkerThread
  13. org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-8(TIMED_WAITING) : org.quartz.simpl.SimpleThreadPool$WorkerThread
  14. org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-9(TIMED_WAITING) : org.quartz.simpl.SimpleThreadPool$WorkerThread
  15. org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-10(TIMED_WAITING) : org.quartz.simpl.SimpleThreadPool$WorkerThread
  16. ContainerBackgroundProcessor[StandardEngine[Catalina]](TIMED_WAITING) : java.lang.Thread
  17. http-5666-Acceptor-0(RUNNABLE) : java.lang.Thread
  18. TP-Processor1(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
  19. TP-Processor2(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
  20. TP-Processor3(WAITING) : org.apache.tomcat.util.threads.ThreadWithAttributes
  21. TP-Processor4(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
  22. TP-Monitor(TIMED_WAITING) : java.lang.Thread
  23. Thread-13(TIMED_WAITING) : com.cache.CacheTimer
  24. Thread-12(TIMED_WAITING) : com.cache.Cache
  25. net.sf.ehcache.CacheManager@1daf0bf(TIMED_WAITING) : java.util.TimerThread
  26. TP-Processor5(WAITING) : org.apache.tomcat.util.threads.ThreadWithAttributes
  27. TP-Processor6(WAITING) : org.apache.tomcat.util.threads.ThreadWithAttributes
  28. TP-Processor7(WAITING) : org.apache.tomcat.util.threads.ThreadWithAttributes
  29. TP-Processor8(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
  30. TP-Processor9(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
  31. TP-Processor10(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
  32. TP-Processor11(WAITING) : org.apache.tomcat.util.threads.ThreadWithAttributes
  33. TP-Processor12(WAITING) : org.apache.tomcat.util.threads.ThreadWithAttributes
  34. TP-Processor13(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
  35. TP-Processor14(WAITING) : org.apache.tomcat.util.threads.ThreadWithAttributes
  36. TP-Processor15(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
  37. TP-Processor16(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
  38. TP-Processor17(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
  39. TP-Processor18(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
  40. TP-Processor19(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
  41. TP-Processor20(WAITING) : org.apache.tomcat.util.threads.ThreadWithAttributes
  42. TP-Processor21(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
  43. TP-Processor22(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
  44. TP-Processor23(WAITING) : org.apache.tomcat.util.threads.ThreadWithAttributes
  45. TP-Processor24(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
  46. TP-Processor25(WAITING) : org.apache.tomcat.util.threads.ThreadWithAttributes
  47. TP-Processor26(WAITING) : org.apache.tomcat.util.threads.ThreadWithAttributes
  48. TP-Processor27(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
  49. TP-Processor28(WAITING) : org.apache.tomcat.util.threads.ThreadWithAttributes
  50. pool-1-thread-1(TIMED_WAITING) : java.lang.Thread
  51. TP-Processor29(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
  52. TP-Processor30(WAITING) : org.apache.tomcat.util.threads.ThreadWithAttributes
  53. TP-Processor31(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
  54. TP-Processor32(WAITING) : org.apache.tomcat.util.threads.ThreadWithAttributes
  55. File Reaper(WAITING) : org.apache.commons.io.FileCleaningTracker$Reaper
  56. TP-Processor33(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
  57. TP-Processor34(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
  58. TP-Processor35(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
  59. TP-Processor36(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
  60. TP-Processor37(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
  61. TP-Processor38(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
  62. TP-Processor39(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
  63. TP-Processor40(WAITING) : org.apache.tomcat.util.threads.ThreadWithAttributes
  64. TP-Processor41(WAITING) : org.apache.tomcat.util.threads.ThreadWithAttributes
  65. TP-Processor42(WAITING) : org.apache.tomcat.util.threads.ThreadWithAttributes
  66. TP-Processor43(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
  67. TP-Processor44(WAITING) : org.apache.tomcat.util.threads.ThreadWithAttributes
  68. TP-Processor45(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
  69. TP-Processor46(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
  70. TP-Processor47(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
  71. TP-Processor48(WAITING) : org.apache.tomcat.util.threads.ThreadWithAttributes
  72. TP-Processor49(WAITING) : org.apache.tomcat.util.threads.ThreadWithAttributes
  73. TP-Processor50(WAITING) : org.apache.tomcat.util.threads.ThreadWithAttributes
  74. TP-Processor51(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
  75. TP-Processor52(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
  76. org.springframework.scheduling.quartz.SchedulerFactoryBean#0_QuartzSchedulerThread(TIMED_WAITING) : org.quartz.core.QuartzSchedulerThread 

 

 
 

用户提供的答案5: 

 

 

 

刚看了下api,感觉还不是很明白。 

 

 

 

线程状态。线程可以处于下列状态之一:

  • NEW
     

    至今尚未启动的线程处于这种状态。

  • RUNNABLE

     

     

    正在 Java 虚拟机中执行的线程处于这种状态。

  • BLOCKED
     

    受阻塞并等待某个监视器锁的线程处于这种状态。

  • WAITING 
     

     

    无限期地等待另一个线程来执行某一特定操作的线程处于这种状态。

  • TIMED_WAITING
     

    等待另一个线程来执行取决于指定等待时间的操作的线程处于这种状态。

  • TERMINATED
     已退出的线程处于这种状态。  
分享到:
评论

相关推荐

    记一次tomcat进程cpu占用过高的问题排查记录

    本文主要记录一次tomcat进程,因TCP连接过多导致CPU占用过高的问题排查记录。 问题描述 linux系统下,一个tomcat web服务的cpu占用率非常高,top显示结果超过200%。请求无法响应。反复重启依然同一个现象。 问题...

    tomcat崩溃自启动

    1. **服务监控**:除了脚本,还可以使用专门的系统监控工具,如Nagios、Zabbix等,实时监控Tomcat的运行状态,包括CPU、内存使用情况、网络连接等。 2. **异常处理**:在编写脚本时,应考虑到各种可能的异常情况,...

    线上服务CPU100%问题快速定位实战

    此时,我们需要确定哪些服务进程导致了CPU过载,进而定位到具体是哪个线程及哪段代码导致了CPU占用过高。 #### 三、定位步骤详解 ##### 步骤一:找到最耗CPU的进程 **工具:top** 1. **命令执行**:首先使用`top...

    LambdaProbe监控Tomcat 和Jconsole 监控Tomcat

    5. **CPU使用率**:监控CPU的使用情况,识别高CPU消耗的原因。 6. **本地和远程连接**:可以连接到本地或远程的Java进程进行监控。 JConsole相比LambdaProbe,可能提供了更详细和深入的监控视图,但其使用相对复杂...

    Apache Tomcat JBOSS Nginx区别

    Nginx 采取了分阶段资源分配技术,使得它的 CPU 与内存占用率非常低。Nginx 官方表示保持 10,000 个没有活动的连接,它只占 2.5M 内存,所以类似 DOS 这样的攻击对 nginx 来说基本上是毫无用处的。Nginx 比 ...

    Tomcat性能调优方案[参考].pdf

    通过压力测试验证,在并发连接很多的情况下,CPU的处理能力越强,系统运行速度越快。 二、 Java虚拟机调优 Java虚拟机调优是指选择合适的JVM版本,以满足项目的需求。在选择JVM版本时,需要考虑到项目的性能要求,...

    tomcat 服务上线修改

    - **-server**: 指定JVM运行模式为server模式,适用于多核CPU的高性能服务器。 - **-Xms**: 设置JVM启动时的初始堆内存大小。 - **-Xmx**: 设置JVM的最大堆内存大小。 - **-XX:PermSize**: 设定永久代(PermGen ...

    一次因Java应用造成CPU过高的排查实践过程

    本文将深入探讨一次由于Java应用导致CPU占用过高的排查实践过程。 首先,当发现应用CPU使用率异常时,第一步是确认是否真的是计算密集型任务导致的。在大多数情况下,CPU高负荷往往是由于程序中的逻辑错误,如死...

    TomcatMonitor

    在【描述】中提到的"loadrunner 中对tomcat的监控",意味着我们要关注的重点是如何利用LoadRunner来监控Tomcat服务器的关键指标,如CPU使用率、内存消耗、请求响应时间、线程状态等。LoadRunner支持创建Vuser(虚拟...

    Tomcat6安装文件

    - 性能优化:相比于之前的版本,Tomcat6在性能上有显著提升,包括更快的启动速度和更高的并发处理能力。 - 安全性:提供了更强的安全管理功能,支持HTTPS协议,有助于保护Web应用程序的数据安全。 - 管理工具:...

    sprintboot项目undertow替换tomcat方法

    - **监控**: 使用监控工具跟踪服务器运行指标,如内存使用、CPU占用、线程数等,这有助于进一步优化配置。 - **兼容性**: 确保替换过程中项目代码无需做大的调整,因为Spring Boot的自动配置机制可以很好地兼容不同...

    tomcat 日志设置解决方案

    虽然Tomcat自带了JULI,但很多开发者更倾向于使用如Log4j或Logback这样的日志框架,因为它们功能更强大,配置更灵活。要在Tomcat中使用这些框架,需要排除JULI并引入新框架的依赖。 6. **监控与报警** 为了实时...

    tomcat结合nginx使用小结.pdf

    2. **资源消耗低**:相比于其他服务器,Nginx对内存和CPU资源的占用非常低。 3. **反向代理与负载均衡**:通过配置Nginx,可以实现将外部请求代理到内部的多个应用服务器上,实现负载均衡。 4. **静态资源处理**:...

    winserver2008下apahce连多个tomcat下效率问题

    标题“winserver2008下apahce连多个tomcat下效率问题...通过上述分析,我们可以了解到该主题涵盖了服务器架构、性能调优、安全防护等多个方面,对于运行在Windows Server 2008上的大型Web应用部署具有很高的参考价值。

    Tomcat性能的测试

    4. **内部配置调整**:Tomcat自身也有很多可调整的参数,例如最大线程数、连接器设置、会话管理、缓存策略等。调整这些配置可以改善Tomcat的并发处理能力和资源利用率。 5. **监控与分析**:在测试过程中,实时监控...

    tomcat监护程序

    2. **异常检测**:监护程序不仅要检查Tomcat是否运行,还需要识别出可能导致问题的异常行为,如CPU占用过高、内存泄漏等。这些异常情况可能导致Tomcat崩溃,因此需要及时处理。 3. **自动重启机制**:一旦检测到...

    DBCP,C3P0,Tomcat_JDBC 性能及稳定性测试代码

    4. **资源消耗**:监控内存和CPU使用情况,对比不同连接池在运行时的资源占用。 5. **异常处理**:模拟各种异常情况,如网络中断、数据库宕机等,观察连接池的恢复能力和错误处理机制。 在项目中的"src"目录可能...

    tomcat-jvm优化

    ### Tomcat-JVM优化策略详解 #### 一、理解Tomcat与JVM的关系 Tomcat作为一款开源的Servlet容器,其运行依赖于JVM(Java虚拟机)。这意味着,要优化Tomcat的性能,首先需要对JVM进行合理的配置。本文将深入探讨...

    调整Tomcat的并发线程

    在实际调整Tomcat并发线程数时,需要特别注意的是,增加线程数会增加服务器的资源消耗,如果服务器的CPU、内存等资源不足以支撑如此高并发的需求,反而可能造成系统不稳定。因此,仅仅简单地增加maxThreads并不能...

Global site tag (gtag.js) - Google Analytics