gpt4 book ai didi

performance - ParallelGCFailedAllocation 的大 'sync' 值

转载 作者:行者123 更新时间:2023-12-04 00:08:23 24 4
gpt4 key购买 nike

有时我会在我的 gc.log 中看到长时间的停顿

2014-07-18T18:42:26.137+0400: 7846.980: [GC [PSYoungGen: 86267K->10032K(87744K)] 251198K-175254K(272512K), 0.0066190 secs] [Times: user=0.08 sys=0.00, real=0.01 secs]

Total time for which application threads were stopped: 0.6394170 seconds

Total time for which application threads were stopped: 0.0014570 seconds

但这些暂停不会影响 GC 时间和 CPU 使用时间。

安全点统计(+XX:PrintSafePointStatistics):

vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count7846.348: ParallelGCFailedAllocation [ 370 0 2 ] [ 0 0 630 1 7 ] 0

(同步时间 = 630 毫秒)在这种情况下,“同步”是什么意思?

最佳答案

sync 这里是到达安全点所花费的总时间。换句话说,就是从安全点请求到所有可运行的 Java 线程最终被阻塞的那一刻之间的延迟。

由于以下原因之一,安全点同步有时可能需要很长时间:

  • 应用程序没有获得足够的 CPU 时间,因为操作系统正忙于密集的磁盘 I/O,或者当它开始交换时,或者当另一个高优先级进程占用所有 CPU 时间时。
  • 一些 Java 线程执行长时间的不可中断操作,例如使用 System.arraycopy()clone()ByteBuffer.get() 等复制大量数据。
  • MappedByteBuffer I/O。

要记录在 500 毫秒内无法在安全点上阻塞的线程的名称,请使用

-XX:+SafepointTimeout -XX:SafepointTimeoutDelay=500

关于performance - ParallelGCFailedAllocation 的大 'sync' 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25039960/

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