gpt4 book ai didi

java - JVM迁移到jdk1.8.0_74后挂了

转载 作者:搜寻专家 更新时间:2023-11-01 00:55:09 25 4
gpt4 key购买 nike

我有一个 Java 应用程序,它曾经在 Java 7 上运行良好。在使用以下配置迁移到 Java 8 后,它开始挂起。

-Xms3g -Xmx3g -verbose:gc -XX:+UseG1GC -XX:G1ReservePercent=25 -XX:+PrintGCDateStamps

我获取了 jstack dump,它显示所有线程都处于 BLOCKED 状态。我还获取了显示以下信息的 jmap 转储。

有人可以帮我解决这个问题吗?

Attaching to process ID 2554, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.74-b02

using thread-local object allocation.
Garbage-First (G1) GC with 18 thread(s)

Heap Configuration:
MinHeapFreeRatio = 40
MaxHeapFreeRatio = 70
MaxHeapSize = 3221225472 (3072.0MB)
NewSize = 1363144 (1.2999954223632812MB)
MaxNewSize = 1932525568 (1843.0MB)
OldSize = 5452592 (5.1999969482421875MB)
NewRatio = 2
SurvivorRatio = 8
MetaspaceSize = 21807104 (20.796875MB)
CompressedClassSpaceSize = 1073741824 (1024.0MB)
MaxMetaspaceSize = 17592186044415 MB
G1HeapRegionSize = 1048576 (1.0MB)

Heap Usage:
G1 Heap:
regions = 3072
capacity = 3221225472 (3072.0MB)
used = 2112667712 (2014.7969360351562MB)
free = 1108557760 (1057.2030639648438MB)
65.58583776156108% used
G1 Young Generation:
Eden Space:
regions = 1665
capacity = 2024800256 (1931.0MB)
used = 1745879040 (1665.0MB)
free = 278921216 (266.0MB)
86.22475401346452% used
Survivor Space:
regions = 5
capacity = 5242880 (5.0MB)
used = 5242880 (5.0MB)
free = 0 (0.0MB)
100.0% used
G1 Old Generation:
regions = 349
capacity = 1191182336 (1136.0MB)
used = 361545792 (344.79693603515625MB)
free = 829636544 (791.2030639648438MB)
30.351842960841218% used

18753 interned Strings occupying 1751224 bytes.

最佳答案

您需要进行线程转储并仔分割析以了解它们被卡在哪里,这很可能是您代码中的线程安全问题。过去,当我们从 Linux 4 机器迁移到 Linux 6(具有多个 CPU 和内核的更强大的机器)时,我们遇到过类似的锁定问题。更快的机器可能会暴露长期存在的与线程相关的编程错误。

关于java - JVM迁移到jdk1.8.0_74后挂了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36616126/

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