在安全点操作期间,如果没有很短的旋转和阻止时间,可能会导致非常长的同步时间吗?

时间:2019-01-08 15:30:17

标签: java jvm

我们的JVM中的安全点操作有时需要很长时间才能同步线程。但是,在这些情况下,旋转和阻塞时间非常短。 常见原因显示为<100ms旋转,但超过30秒长达4分钟的同步时间。

到目前为止,无论是在Safepointtimeout上转储线程,还是尝试对当时发生的情况进行日志分析都没有帮助。

该系统是在Windows Server VM上使用JMF(和JDK 1.7)的实时RTP流应用程序。

使用的JVM标志:

-server
-Xloggc:./Log/gc.log
-XX:+PrintGCDetails
-XX:+PrintGCDateStamps
-Xmx2G
-XX:-OmitStackTraceInFastThrow
-XX:+PrintSafepointStatistics
–XX:PrintSafepointStatisticsCount=1
-XX:+SafepointTimeout
-XX:SafepointTimeoutDelay=20

安全点的日志如下(包括一些周围的日志)

55577.063: RevokeBias                       [    2122          0              3    ]      [     0     0     0     0     0    ]  0   
55577.066: BulkRevokeBias                   [    2126        168              4    ]      [    49     0 94867     2    13    ]  0   
55671.953: RevokeBias                       [    2111          1              0    ]      [     0     0    15     1    16    ]  0   



56867.883: RevokeBias                       [    1742          0              1    ]      [     0     0     0     0     0    ]  0   
56868.738: RevokeBias                       [    1746        457              1    ]      [    88     0 39473     2     0    ]  0   
56908.219: RevokeBias                       [    1755          0              5    ]      [     0     0     0     1     0    ]  0     

我想知道什么样的情况会导致这些大量的同步时间,而又不算为旋转或阻塞时间。

提前谢谢

0 个答案:

没有答案