gpt4 book ai didi

java - 生命周期测试中高负载下的 JVM 卡住

转载 作者:搜寻专家 更新时间:2023-10-31 19:53:39 26 4
gpt4 key购买 nike

使用 JVM 运行:

java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)

操作系统:

CentOS release 6.4 (Final)

JVM 选项:

-Xmx4g -Xms4g -XX:MaxPermSize=4g -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintClassHistogram -XX:+CMSClassUnloadingEnabled -verbose:gc -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:+DisableExplicitGC

运行于OSGI环境,Aerospike DB,NETTY(NIO)进行联网。

进行周末长寿测试。这是最后一次打印:

[2015-12-11 09:54:51,185] INFO  : [GC pause (young)

2 天后,我在 pid 上运行 strace,然后是下一个打印:

[2015-12-11 09:54:51,185] INFO  : [GC pause (young) 3598M->1458M(4096M), 0.0280020 secs]
[2015-12-13 11:54:54,353] INFO : [GC pause (young) 3598M->1464M(4096M), 180001.5628870 secs]

第一个打印完成,下一个打印显示 2 天 GC。

在卡住期间,jvm 没有响应线程转储信号 (pkill -QUIT pid)。这种卡住每隔几天发生一次。卡住不仅发生在 G1 收集器上,也发生在 CMS 收集器上。我该如何开始调试它,什么可能会导致这种情况?

谢谢。

编辑:再次卡住,这次 strace 没有解除卡住。第二次卡住是使用jstack解除的。

更新:发现问题了!看看下面的答案。

最佳答案

我找到问题了!
它是 futex_wait() 中的一个内核错误,已向后移植到我们的内核版本。
你可以在这里阅读:
https://groups.google.com/forum/#!topic/mechanical-sympathy/QbmpZxp6C64

关于java - 生命周期测试中高负载下的 JVM 卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34251580/

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