我在服务器上部署了一个Web应用程序。 我创建了一个脚本,以便对应用程序执行加载(压力测试)。压力使用10个线程生成不同的请求。 我进入了以下状态,如tomcat经理所示:
可用内存:34.57 MB总内存:1166.43 MB最大内存:1166.43 MB
最大线程数:200当前线程数:59当前线程忙:12 最大处理时间:60295419 ms处理时间:1.8809264E7 s请求数:233217错误计数:8100字节收到:4.11 MB字节发送:7493.59 MB
根据此状态,12个线程忙于处理请求,而其他47个线程处于就绪状态。 最初分配的1166.43MB中有34.57 MB可用内存。我怀疑,因为tomcat没有销毁未使用的就绪线程,内存没有被释放,但我不确定。 有没有人有任何其他见解?有谁知道如何超时就绪线程?
谢谢
答案 0 :(得分:2)
那47个线程坐在tomcats thread pool中。他们将在您申请期间保持活力。创建和销毁线程可能非常耗时,因此让线程等待池中的工作可以加速应用程序,而不是每次收到请求时都创建新线程。请参阅how to configure your thread pool上的tomcat文档(例如,增加/减少最大线程数)。
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="60" minSpareThreads="4"/>