我在服务器上部署了一个web应用程序。我创建了一个脚本,以便在应用程序上执行加载(压力测试)。压力使用10个线程生成了不同的请求。我进入了如下状态,如tomcat的管理器所示:
可用内存:34.57MB总内存: 1166.43 MB最大内存: 1166.43 MB
最大线程数: 200当前线程计数: 59当前线程忙: 12最大处理时间: 60295419毫秒处理时间: 1.8809264E7 s请求计数: 233217错误计数: 8100字节接收:4.11MB发送字节: 7493.59 MB
根据此状态,12个线程忙于服务请求,而其他47个线程处于就绪状态。在最初分配的1166.43MB内存中,有34.57MB可用。我怀疑,由于tomcat不会销毁未使用的就绪线程,所以内存不会被释放,但我不确定。还有没有人有其他见解?有人知道如何让就绪线程超时吗?
谢谢
发布于 2010-07-05 18:08:08
这47个线程位于tomcats thread pool中。它们将在您的应用程序期间保持存活状态。线程的创建和销毁可能很耗时,因此让线程在池中等待工作可以加快应用程序的速度,而不是在每次收到请求时都创建一个新线程。请参阅how to configure your thread pool上的tomcat文档(例如增加/减少最大线程数)。
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="60" minSpareThreads="4"/>https://stackoverflow.com/questions/3178551
复制相似问题