- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当谈到使用 tomcat 并大量使用数据库的 Web 基础应用程序时?
我的意思是,例如我们几乎每个 HTTP 请求连接都在密集使用数据库。因此,当我们配置的 DP 池maxActive(例如 100)少得多,而 HTTP 连接器maxThreads(例如 200)大两倍时。那么就有可能在 HTTP 连接之间共享一个相同的数据库连接。这可能会导致大量使用数据库/数据库停止连接。
我知道在大多数情况下,Web HTTP 请求配置与数据库池配置无关,但是属性之间的比率 (maxThreads/acceptCount maxActive) 是否存在常见案例/实践?例如。 HTTP maxThreads 比 DB maxActive 大是一种常见的做法(但根据我们的示例,认为大 100% 太多了 - 可以说最大大 20% 或 50%?)并且假设我们有一个更大的值的 accpetCount ,所以要在应用程序处理其他 HTTP 请求时对 HTTP 请求进行排队?
这里有类似的问题:Tomcat - Configuring maxThreads and acceptCount in Http connector但没有更准确的答案
最佳答案
首先,澄清几点:
acceptCount: The maximum queue length for incoming connection requests when all possible request processing threads are in use.
也就是说,找到这些值之间的比率没有太大值(value),因为 maxActive 会施加限制。 maxThreads >= maxActive 是显而易见的经验法则。
maxThreads 永远不会达到,除非您的应用程序负载如此,但是您的数据库池应该能够处理该负载,否则您的应用程序将失败。
在这种情况下调整性能更多的是调整数据库连接池和线程池动态而不是设置限制。一旦达到限制,就没什么可做的了,要么找到导致速度缓慢的代码,要么扩大规模。
池动态指的是最小空闲连接数/线程数、保持空闲多长时间、一次在池中创建多少新条目等。
希望这对您有所帮助!
关于java - tomcat - HTTP 连接器 maxThreads/acceptCount 与 JDBC 池 maxActive 之间的比率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53175905/
我正在使用 tomcat 8 作为 Spring Boot 项目的一部分,我的 acceptCount 设置似乎不起作用。我的服务器接受了将近 1000 个连接,而不是只接受 300 个连接,当然同时
我目前有一个使用 Tomcat 部署的应用程序,它通过 JDBC 与 Postgres 数据库交互。查询非常昂贵,所以我看到的是由 Tomcat 或 Apache 引起的超时(在我的配置中,Apach
HTTP 连接器 maxThreads(处理用户请求的最大 HTTP 线程), HTTP 连接器 acceptCount(当所有可能的请求处理线程都在使用时传入连接请求的最大队列长度) 数据库池m
我是一名优秀的程序员,十分优秀!