这是一个用来显示应用中所有的线程以及其运行状态的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:
- main(RUNNABLE) : java.lang.Thread
- Timer-0(TIMED_WAITING) : java.util.TimerThread
- com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0(TIMED_WAITING) : com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread
- com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1(TIMED_WAITING) : com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread
- com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2(TIMED_WAITING) : com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread
- org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-1(TIMED_WAITING) : org.quartz.simpl.SimpleThreadPool$WorkerThread
- org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-2(TIMED_WAITING) : org.quartz.simpl.SimpleThreadPool$WorkerThread
- org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-3(TIMED_WAITING) : org.quartz.simpl.SimpleThreadPool$WorkerThread
- org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-4(TIMED_WAITING) : org.quartz.simpl.SimpleThreadPool$WorkerThread
- org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-5(TIMED_WAITING) : org.quartz.simpl.SimpleThreadPool$WorkerThread
- org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-6(TIMED_WAITING) : org.quartz.simpl.SimpleThreadPool$WorkerThread
- org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-7(TIMED_WAITING) : org.quartz.simpl.SimpleThreadPool$WorkerThread
- org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-8(TIMED_WAITING) : org.quartz.simpl.SimpleThreadPool$WorkerThread
- org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-9(TIMED_WAITING) : org.quartz.simpl.SimpleThreadPool$WorkerThread
- org.springframework.scheduling.quartz.SchedulerFactoryBean#0_Worker-10(TIMED_WAITING) : org.quartz.simpl.SimpleThreadPool$WorkerThread
- ContainerBackgroundProcessor[StandardEngine[Catalina]](TIMED_WAITING) : java.lang.Thread
- http-5666-Acceptor-0(RUNNABLE) : java.lang.Thread
- TP-Processor1(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
- TP-Processor2(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
- TP-Processor3(WAITING) : org.apache.tomcat.util.threads.ThreadWithAttributes
- TP-Processor4(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
- TP-Monitor(TIMED_WAITING) : java.lang.Thread
- Thread-13(TIMED_WAITING) : com.cache.CacheTimer
- Thread-12(TIMED_WAITING) : com.cache.Cache
- net.sf.ehcache.CacheManager@1daf0bf(TIMED_WAITING) : java.util.TimerThread
- TP-Processor5(WAITING) : org.apache.tomcat.util.threads.ThreadWithAttributes
- TP-Processor6(WAITING) : org.apache.tomcat.util.threads.ThreadWithAttributes
- TP-Processor7(WAITING) : org.apache.tomcat.util.threads.ThreadWithAttributes
- TP-Processor8(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
- TP-Processor9(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
- TP-Processor10(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
- TP-Processor11(WAITING) : org.apache.tomcat.util.threads.ThreadWithAttributes
- TP-Processor12(WAITING) : org.apache.tomcat.util.threads.ThreadWithAttributes
- TP-Processor13(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
- TP-Processor14(WAITING) : org.apache.tomcat.util.threads.ThreadWithAttributes
- TP-Processor15(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
- TP-Processor16(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
- TP-Processor17(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
- TP-Processor18(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
- TP-Processor19(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
- TP-Processor20(WAITING) : org.apache.tomcat.util.threads.ThreadWithAttributes
- TP-Processor21(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
- TP-Processor22(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
- TP-Processor23(WAITING) : org.apache.tomcat.util.threads.ThreadWithAttributes
- TP-Processor24(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
- TP-Processor25(WAITING) : org.apache.tomcat.util.threads.ThreadWithAttributes
- TP-Processor26(WAITING) : org.apache.tomcat.util.threads.ThreadWithAttributes
- TP-Processor27(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
- TP-Processor28(WAITING) : org.apache.tomcat.util.threads.ThreadWithAttributes
- pool-1-thread-1(TIMED_WAITING) : java.lang.Thread
- TP-Processor29(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
- TP-Processor30(WAITING) : org.apache.tomcat.util.threads.ThreadWithAttributes
- TP-Processor31(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
- TP-Processor32(WAITING) : org.apache.tomcat.util.threads.ThreadWithAttributes
- File Reaper(WAITING) : org.apache.commons.io.FileCleaningTracker$Reaper
- TP-Processor33(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
- TP-Processor34(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
- TP-Processor35(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
- TP-Processor36(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
- TP-Processor37(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
- TP-Processor38(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
- TP-Processor39(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
- TP-Processor40(WAITING) : org.apache.tomcat.util.threads.ThreadWithAttributes
- TP-Processor41(WAITING) : org.apache.tomcat.util.threads.ThreadWithAttributes
- TP-Processor42(WAITING) : org.apache.tomcat.util.threads.ThreadWithAttributes
- TP-Processor43(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
- TP-Processor44(WAITING) : org.apache.tomcat.util.threads.ThreadWithAttributes
- TP-Processor45(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
- TP-Processor46(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
- TP-Processor47(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
- TP-Processor48(WAITING) : org.apache.tomcat.util.threads.ThreadWithAttributes
- TP-Processor49(WAITING) : org.apache.tomcat.util.threads.ThreadWithAttributes
- TP-Processor50(WAITING) : org.apache.tomcat.util.threads.ThreadWithAttributes
- TP-Processor51(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
- TP-Processor52(RUNNABLE) : org.apache.tomcat.util.threads.ThreadWithAttributes
- org.springframework.scheduling.quartz.SchedulerFactoryBean#0_QuartzSchedulerThread(TIMED_WAITING) : org.quartz.core.QuartzSchedulerThread
用户提供的答案5:
刚看了下api,感觉还不是很明白。
线程状态。线程可以处于下列状态之一:
-
NEW
至今尚未启动的线程处于这种状态。
-
RUNNABLE
正在 Java 虚拟机中执行的线程处于这种状态。
-
BLOCKED
受阻塞并等待某个监视器锁的线程处于这种状态。
-
WAITING
无限期地等待另一个线程来执行某一特定操作的线程处于这种状态。
-
TIMED_WAITING
等待另一个线程来执行取决于指定等待时间的操作的线程处于这种状态。
-
TERMINATED
已退出的线程处于这种状态。
相关推荐
本文主要记录一次tomcat进程,因TCP连接过多导致CPU占用过高的问题排查记录。 问题描述 linux系统下,一个tomcat web服务的cpu占用率非常高,top显示结果超过200%。请求无法响应。反复重启依然同一个现象。 问题...
1. **服务监控**:除了脚本,还可以使用专门的系统监控工具,如Nagios、Zabbix等,实时监控Tomcat的运行状态,包括CPU、内存使用情况、网络连接等。 2. **异常处理**:在编写脚本时,应考虑到各种可能的异常情况,...
此时,我们需要确定哪些服务进程导致了CPU过载,进而定位到具体是哪个线程及哪段代码导致了CPU占用过高。 #### 三、定位步骤详解 ##### 步骤一:找到最耗CPU的进程 **工具:top** 1. **命令执行**:首先使用`top...
5. **CPU使用率**:监控CPU的使用情况,识别高CPU消耗的原因。 6. **本地和远程连接**:可以连接到本地或远程的Java进程进行监控。 JConsole相比LambdaProbe,可能提供了更详细和深入的监控视图,但其使用相对复杂...
Nginx 采取了分阶段资源分配技术,使得它的 CPU 与内存占用率非常低。Nginx 官方表示保持 10,000 个没有活动的连接,它只占 2.5M 内存,所以类似 DOS 这样的攻击对 nginx 来说基本上是毫无用处的。Nginx 比 ...
通过压力测试验证,在并发连接很多的情况下,CPU的处理能力越强,系统运行速度越快。 二、 Java虚拟机调优 Java虚拟机调优是指选择合适的JVM版本,以满足项目的需求。在选择JVM版本时,需要考虑到项目的性能要求,...
- **-server**: 指定JVM运行模式为server模式,适用于多核CPU的高性能服务器。 - **-Xms**: 设置JVM启动时的初始堆内存大小。 - **-Xmx**: 设置JVM的最大堆内存大小。 - **-XX:PermSize**: 设定永久代(PermGen ...
本文将深入探讨一次由于Java应用导致CPU占用过高的排查实践过程。 首先,当发现应用CPU使用率异常时,第一步是确认是否真的是计算密集型任务导致的。在大多数情况下,CPU高负荷往往是由于程序中的逻辑错误,如死...
在【描述】中提到的"loadrunner 中对tomcat的监控",意味着我们要关注的重点是如何利用LoadRunner来监控Tomcat服务器的关键指标,如CPU使用率、内存消耗、请求响应时间、线程状态等。LoadRunner支持创建Vuser(虚拟...
- 性能优化:相比于之前的版本,Tomcat6在性能上有显著提升,包括更快的启动速度和更高的并发处理能力。 - 安全性:提供了更强的安全管理功能,支持HTTPS协议,有助于保护Web应用程序的数据安全。 - 管理工具:...
- **监控**: 使用监控工具跟踪服务器运行指标,如内存使用、CPU占用、线程数等,这有助于进一步优化配置。 - **兼容性**: 确保替换过程中项目代码无需做大的调整,因为Spring Boot的自动配置机制可以很好地兼容不同...
虽然Tomcat自带了JULI,但很多开发者更倾向于使用如Log4j或Logback这样的日志框架,因为它们功能更强大,配置更灵活。要在Tomcat中使用这些框架,需要排除JULI并引入新框架的依赖。 6. **监控与报警** 为了实时...
2. **资源消耗低**:相比于其他服务器,Nginx对内存和CPU资源的占用非常低。 3. **反向代理与负载均衡**:通过配置Nginx,可以实现将外部请求代理到内部的多个应用服务器上,实现负载均衡。 4. **静态资源处理**:...
标题“winserver2008下apahce连多个tomcat下效率问题...通过上述分析,我们可以了解到该主题涵盖了服务器架构、性能调优、安全防护等多个方面,对于运行在Windows Server 2008上的大型Web应用部署具有很高的参考价值。
4. **内部配置调整**:Tomcat自身也有很多可调整的参数,例如最大线程数、连接器设置、会话管理、缓存策略等。调整这些配置可以改善Tomcat的并发处理能力和资源利用率。 5. **监控与分析**:在测试过程中,实时监控...
2. **异常检测**:监护程序不仅要检查Tomcat是否运行,还需要识别出可能导致问题的异常行为,如CPU占用过高、内存泄漏等。这些异常情况可能导致Tomcat崩溃,因此需要及时处理。 3. **自动重启机制**:一旦检测到...
4. **资源消耗**:监控内存和CPU使用情况,对比不同连接池在运行时的资源占用。 5. **异常处理**:模拟各种异常情况,如网络中断、数据库宕机等,观察连接池的恢复能力和错误处理机制。 在项目中的"src"目录可能...
### Tomcat-JVM优化策略详解 #### 一、理解Tomcat与JVM的关系 Tomcat作为一款开源的Servlet容器,其运行依赖于JVM(Java虚拟机)。这意味着,要优化Tomcat的性能,首先需要对JVM进行合理的配置。本文将深入探讨...
在实际调整Tomcat并发线程数时,需要特别注意的是,增加线程数会增加服务器的资源消耗,如果服务器的CPU、内存等资源不足以支撑如此高并发的需求,反而可能造成系统不稳定。因此,仅仅简单地增加maxThreads并不能...