gpt4 book ai didi

java - Apache Tomcat 请求线程

转载 作者:搜寻专家 更新时间:2023-10-31 19:35:44 25 4
gpt4 key购买 nike

我们有一个应用程序泄漏了一点内存,有点保守。

我正在使用 jvisualvm 尝试找出导致问题的原因。

我看到线程数在以以下名称开头的线程上增长了不少:http-8080- 示例:http:8080-42

我的第一个猜测是,每个线程都是来自客户端的请求命中,因为每个客户端请求都在其自己的线程中处理。

我的问题是这些线程已经运行了很长时间(到目前为止 10 分钟)。

我的问题是:

我的假设是否正确?如果是这样,为什么线程运行了这么长时间?它肯定不会还在忙于满足客户的请求吗?

最佳答案

Tomcat 总是有许多等待的 HTTP 线程,例如,如果我们查看默认的连接器设置:

<Connector port="80" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />

我们可以看到应该始终至少有 25 个线程处于 Activity 状态,但正在等待连接(达到 maxThreads 限制)。这是由 min 和 maxSpareThreads 属性控制的。

JVisual VM 如何声明线程正在等待或锁定资源等等?

关于java - Apache Tomcat 请求线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5622715/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com