请求时间包括Java(Tomcat)中的STW(垃圾收集)时间

uqjltbpv  于 2023-02-11  发布在  Java
关注(0)|答案(1)|浏览(138)

catalina jmx中是否有任何请求时间指标,即垃圾收集时间(如果适用)?
我知道GC时间的度量标准,但是我正在寻找能够反映JVM内部端到端请求时间的东西。
多谢了。
JVM内部端到端请求时间的JMX度量。

brc7rcf0

brc7rcf01#

https://tomcat.apache.org/tomcat-8.5-doc/config/http.html中我读到:
连接将在连接器创建的服务器套接字内排队,直到有线程可用于处理连接。一旦达到maxConnections,操作系统将对更多连接进行排队。操作系统提供的连接队列的大小可由acceptCount属性控制。如果操作系统队列已满,则可能会拒绝更多连接请求或超时。
以及:
acceptCount达到maxConnections时操作系统为传入连接请求提供的队列的最大长度。操作系统可能忽略这个设置并为队列使用不同的大小。当这个队列满了时,操作系统可能主动拒绝额外的连接或那些连接可能超时。默认值是100。
所以队列池在JVM "外部",没有任何JMX度量,因此不可能有包含世界停止时间的请求时间度量。
他可以做的是使用下一个命令从操作系统监视队列池:

ss -lt sport 10432
State      Recv-Q     Send-Q         Local Address:Port          Peer Address:Port     Process
LISTEN     0          100                        *:10432                    *:*

在上例中,Tomcat正在侦听端口10432。队列连接池限制为100,队列中的连接数为0。Recv-Q和Send-Q分别反映了在侦听状态端口中发出命令时队列池中的连接数和队列池中的最大连接数。
我执行了下一个命令:

while true ;do
ss -lt sport 10432
done

并且队列池在完全垃圾收集发生时会增加,因此关注垃圾收集花费的时间指标非常重要。
谢谢。

相关问题