Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java GcTimeLimit可能没有出错的原因?_Java_Performance_Garbage Collection_Stability - Fatal编程技术网

Java GcTimeLimit可能没有出错的原因?

Java GcTimeLimit可能没有出错的原因?,java,performance,garbage-collection,stability,Java,Performance,Garbage Collection,Stability,我有一个Java的web服务,包含在Jetty中。我将Sun的Java 6与默认的ParallelGC一起使用,并且打开了以下命令行选项:“-verbose:gc-XX:+PrintGCTimeStamps--XX:+PrintGCDetails” 当我的进程内存不足时,我会看到这样的日志行,背对背: 66872.846: [Full GC [PSYoungGen: 932534K->930686K(1865088K)] [PSOldGen: 5595037K->5595024K(5595136

我有一个Java的web服务,包含在Jetty中。我将Sun的Java 6与默认的ParallelGC一起使用,并且打开了以下命令行选项:“-verbose:gc-XX:+PrintGCTimeStamps--XX:+PrintGCDetails”

当我的进程内存不足时,我会看到这样的日志行,背对背:

66872.846: [Full GC [PSYoungGen: 932534K->930686K(1865088K)] [PSOldGen: 5595037K->5595024K(5595136K)] 6527571K->6525710K(7460224K) [PSPermGen: 16488K->16487K(21504K)], 12.2488150 secs] [Times: user=12.25 sys=0.00, real=12.24 secs] 66885.098: [Full GC [PSYoungGen: 932608K->932608K(1865088K)] [PSOldGen: 5595024K->5595024K(5595136K)] 6527632K->6527632K(7460224K) [PSPermGen: 16487K->16487K(21504K)], 9.6745600 secs] [Times: user=9.66 sys=0.01, real=9.67 secs] 66894.773: [Full GC [PSYoungGen: 932608K->932488K(1865088K)] [PSOldGen: 5595024K->5595023K(5595136K)] 6527632K->6527512K(7460224K) [PSPermGen: 16487K->16487K(21504K)], 11.8445420 secs] [Times: user=11.85 sys=0.00, real=11.85 secs] 66906.623: [Full GC [PSYoungGen: 932608K->932608K(1865088K)] [PSOldGen: 5595023K->5595023K(5595136K)] 6527631K->6527631K(7460224K) [PSPermGen: 16487K->16487K(21504K)], 9.6006950 secs] [Times: user=9.60 sys=0.00, real=9.60 secs] 66916.224: [Full GC [PSYoungGen: 932608K->932488K(1865088K)] [PSOldGen: 5595023K->5595023K(5595136K)] 6527631K->6527512K(7460224K) [PSPermGen: 16487K->16487K(21504K)], 9.6498320 secs] [Times: user=9.65 sys=0.00, real=9.65 secs] 66925.881: [Full GC [PSYoungGen: 932608K->0K(1865088K)] [PSOldGen: 5595023K->4133351K(5595136K)] 6527631K->4133351K(7460224K) [PSPermGen: 16487K->16487K(21504K)], 6.8990990 secs] [Times: user=6.90 sys=0.00, real=6.90 secs] 66872.846:[完整GC[PSYoungGen:932534K->930686K(1865088K)][PSOldGen:5595037K->5595024K(5595136K)]6527571K->6525710K(7460224K)[PSPermGen:16488K->16487K(21504K)],12.2488150秒][次:用户=12.25系统=0.00,实际=12.24秒] 66885.098:[完整GC[PSYoungGen:932608K->932608K(1865088K)][PSOldGen:5595024K->5595024K(5595136K)]6527632K->6527632K(7460224K)[PSPermGen:16487K->16487K(21504K)],9.6745600秒][次数:用户=9.66系统=0.01,实际=9.67秒] 66894.773:[完整GC[PSYoungGen:932608K->932488K(1865088K)][PSOldGen:5595024K->5595023K(5595136K)]6527632K->6527512K(7460224K)[PSPermGen:16487K->16487K(21504K)],11.8445420秒][次:用户=11.85系统=0.00,实际=11.85秒] 66906.623:[完整GC[PSYoungGen:932608K->932608K(1865088K)][PSOldGen:5595023K->5595023K(5595136K)]6527631K->6527631K(7460224K)[PSPermGen:16487K->16487K(21504K)],9.6006950秒][次数:用户=9.60系统=0.00,实际=9.60秒] 66916.224:[完整GC[PSYoungGen:932608K->932488K(1865088K)][PSOldGen:5595023K->5595023K(5595136K)]6527631K->6527512K(7460224K)[PSPermGen:16487K->16487K(21504K)],9.6498320秒][次:用户=9.65系统=0.00,实际=9.65秒] 66925.881:[完整GC[PSYoungGen:932608K->0K(1865088K)][PSOldGen:5595023K->4133351K(5595136K)]6527631K->4133351K(7460224K)[PSPermGen:16487K->16487K(21504K)],6.8990990秒][次数:用户=6.90系统=0.00,实际=6.90秒] 前五行显示垃圾收集器完全没有取得任何进展。根据我对JVM的理解,这应该会导致OutOfMemoryError,但我在日志中没有看到类似的情况。有没有可能是某些东西(在JVM级别)阻止了它们被抛出?或者Jetty或我的应用程序正在抑制它们


谢谢你的建议

尝试显式设置该选项,或者改为设置-XX:GCHeapFreeLimit。这些选项的文档很薄,可能无法准确反映正在运行的JVM的行为。(或者相关选项的默认设置已更改。)

观察结果-PermSpace看起来非常小,只有21MB,根本无法收集。使用128或256更好吗?