相关疑难解决方法(0)

使用 NIO 直接缓冲区时设置 -XX:+DisableExplicitGC 的影响

我们正在构建一个具有激进性能 SLA 的 Web 应用程序,由于 System.gc() 调用导致 JVM 出去吃午饭,这些 SLA 会定期被违反。我们已经进行了一些调试,并确定在所有情况下都是内部应用服务器代码在调用 System.gc()。这种情况在应用服务器启动或应用程序部署时会发生几次,我们并不关心这些。但是,当应用程序启动并通过内部应用程序服务器调用 NIO 类运行时,也会定期触发 System.gc()。这是我们能够捕获此事件的堆栈跟踪:

3XMTHREADINFO      "WebContainer : 25" J9VMThread:0x0000000006FC5D00, j9thread_t:0x00007F60E41753E0, java/lang/Thread:0x000000060B735590, state:R, prio=5
3XMJAVALTHREAD            (java/lang/Thread getId:0xFE, isDaemon:true)
3XMTHREADINFO1            (native thread ID:0x1039, native priority:0x5, native policy:UNKNOWN)
3XMTHREADINFO2            (native stack address range from:0x00007F6067621000, to:0x00007F6067662000, size:0x41000)
3XMCPUTIME               CPU usage total: 80.222215853 secs
3XMHEAPALLOC             Heap bytes allocated since last GC cycle=1594568 (0x1854C8)
3XMTHREADINFO3           Java callstack:
4XESTACKTRACE                at java/lang/System.gc(System.java:329)
4XESTACKTRACE                at java/nio/Bits.syncReserveMemory(Bits.java:721)
5XESTACKTRACE                   (entered lock: java/nio/Bits@0x000000060000B690, entry count: 1)
4XESTACKTRACE                at java/nio/Bits.reserveMemory(Bits.java:766(Compiled Code))
4XESTACKTRACE …
Run Code Online (Sandbox Code Playgroud)

java garbage-collection nio

2
推荐指数
1
解决办法
4800
查看次数

标签 统计

garbage-collection ×1

java ×1

nio ×1