Tomcat AJP 在达到最大线程数之前就阻塞了

Tomcat AJP 在达到最大线程数之前就阻塞了

我们看到 AJP 显示最大线程数为 200,但当达到 70 个线程时,它开始抛出mod_jk.log以下错误。在有大量可用线程的情况下,以下错误的原因是什么。我们没有为 Worker MPM 明确定义任何 http 线程,假设它会选择默认值。

CPU 和内存看起来不错。

Tomcat 状态显示:

最大线程数:200
当前线程数:70
当前线程繁忙:57

[Sun Apr 28 13:19:56 2024] [warn] ajp_get_endpoint::jk_ajp_common.c (3372): Unable to get the free endpoint for worker worker4 from 10 slots
[Sun Apr 28 13:19:56 2024] [error] jk_handler::mod_jk.c (2928): Could not get endpoint for worker=worker4
[Sun Apr 28 13:19:56 2024] [info] jk_handler::mod_jk.c (2991): Service error=0 for worker=worker4

我们目前还无法找出问题的根本原因。netstat显示数据库连接非常低,所有外部调用端点也不高。无法找出这 70 个线程用在哪里,也无法接受超过 70 个连接。

相关内容