Mic*_*Mao 17 java jvm jvm-crash
昨天当我运行WebLogic Application Server 11g安装程序时,我遇到了OutOfMemory错误,所以我用Google搜索了答案:
java -Xms256m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=256m -jar wls1032_generic.jar
Run Code Online (Sandbox Code Playgroud)
一切正常:)
但是,当我对解决方案三思而后行时,我可能犯了一个错误:我怎么知道这些设置的当前设置?我当然需要在覆盖它们之前检查它们的值,对吧?
有什么想法吗?
相关链接:人们在SO的另一个帖子中提出了试错法,这并不理想.
提前谢谢了.
Str*_*lok 41
您可以使用该jinfo.exe实用程序检查正在运行的JVM的任何JVM标志的值.
%JAVA_HOME%\bin\jinfo.exe -flag <flagName> <pid>
所以要检查-XX:PermSize你可以运行的JVM选项的值
%JAVA_HOME%\bin\jinfo.exe -flag PermSize <pid>
Ala*_*lan 22
你可以jmap在这里使用它的JVM堆转储工具.
例如:
jmap -heap 5900
Run Code Online (Sandbox Code Playgroud)
它将打印:
Heap Configuration:
MinHeapFreeRatio = 40
MaxHeapFreeRatio = 70
MaxHeapSize = 989855744 (944.0MB)
NewSize = 1310720 (1.25MB)
MaxNewSize = 17592186044415 MB
OldSize = 5439488 (5.1875MB)
NewRatio = 2
SurvivorRatio = 8
PermSize = 21757952 (20.75MB)
MaxPermSize = 85983232 (82.0MB)
Heap Usage:
PS Young Generation
Eden Space:
capacity = 242352128 (231.125MB)
used = 9196056 (8.770042419433594MB)
free = 233156072 (222.3549575805664MB)
3.79450185805672% used
From Space:
capacity = 41877504 (39.9375MB)
used = 0 (0.0MB)
free = 41877504 (39.9375MB)
0.0% used
To Space:
capacity = 42663936 (40.6875MB)
used = 0 (0.0MB)
free = 42663936 (40.6875MB)
0.0% used
PS Old Generation
capacity = 80609280 (76.875MB)
used = 34187936 (32.604156494140625MB)
free = 46421344 (44.270843505859375MB)
42.41191088668699% used
PS Perm Generation
capacity = 85393408 (81.4375MB)
used = 63472624 (60.53221130371094MB)
free = 21920784 (20.905288696289062MB)
74.32965317416539% used
Run Code Online (Sandbox Code Playgroud)
它获取内存信息(包括PermGen).5900是Java的进程ID.