[讨论] weblogic 10.3下JVM的NewSize与MaxNewSize设置问题报错
saai
2011-12-06
环境:
redhat5.6 64位 weblogic10.3 jdk1.6.0_05 物理内存 16G 问题描述: 将weblogic的启动参数 USER_MEM_ARGS="-Xms1024m –Xmx1024m -XX:PermSize=64M -XX:MaxPermSize=160m -XX:NewSize=256m -XX:MaxNewSize=448m -Xss128k" 启动进程的时候出现以下报错: Error occurred during initialization of VM Could not reserve enough space for object heap 但参数修改为: USER_MEM_ARGS="-Xms1024m –Xmx1024m -XX:PermSize=64M -XX:MaxPermSize=160m -XX:NewSize=256m -XX:MaxNewSize=256m -Xss128k" 或者这样: USER_MEM_ARGS="-Xms1024m –Xmx1024m -XX:PermSize=64M -XX:MaxPermSize=160m -XX:MaxNewSize=448m -Xss128k" 这样就正常了 想问问有没有碰到过这样问题的朋友,有以下几个问题: 1.解释下当NewSize与MaxNewSize设置成不一致的情况下会带来什么样的影响? 2.我的配置在weblogic9.2下完全正常,这个问题又或者是weblogic10.3的问题? |
|
RednaxelaFX
2011-12-06
刚才这个问题转了一手已经到我这边过一次,但当时信息不足无法给出有用的解答。
现在知道JDK的版本是1.6.0_05,事情就好办多了。 在我的一台测试机上, $ java -version java version "1.6.0_05" Java(TM) SE Runtime Environment (build 1.6.0_05-b13) Java HotSpot(TM) 64-Bit Server VM (build 10.0-b19, mixed mode) 出问题的情况: $ java -Xms1024m -Xmx1024m -XX:PermSize=64M -XX:MaxPermSize=160m -XX:NewSize=256m -XX:MaxNewSize=448m -Xss128k -XX:+PrintCommandLineFlags -XX:MaxHeapSize=1073741824 -XX:MaxNewSize=469762048 -XX:MaxPermSize=167772160 -XX:NewSize=268435456 -XX:PermSize=67108864 -XX:+PrintCommandLineFlags -XX:ThreadStackSize=128 -XX:+UseParallelGC Error occurred during initialization of VM Could not reserve enough space for object heap 事实上这里指定-XX:NewSize=10m照样报错。所以肯定不是内存不够的问题,而是VM自己出问题了。 去掉NewSize的指定: $ java -Xms1024m -Xmx1024m -XX:PermSize=64M -XX:MaxPermSize=160m -XX:MaxNewSize=448m -Xss128k -XX:+PrintCommandLineFlags -XX:MaxHeapSize=1073741824 -XX:MaxNewSize=469762048 -XX:MaxPermSize=167772160 -XX:PermSize=67108864 -XX:+PrintCommandLineFlags -XX:ThreadStackSize=128 -XX:+UseParallelGC 在较新的JDK 6上用前面会出问题的参数来启动: $ ~/jdk/6u27_x64/bin/java -Xms1024m -Xmx1024m -XX:PermSize=64M -XX:MaxPermSize=160m -XX:NewSize=256m -XX:MaxNewSize=448m -Xss128k -XX:+PrintCommandLineFlags -XX:InitialHeapSize=1073741824 -XX:MaxHeapSize=1073741824 -XX:MaxNewSize=469762048 -XX:MaxPermSize=167772160 -XX:NewSize=268435456 -XX:ParallelGCThreads=4 -XX:PermSize=67108864 -XX:+PrintCommandLineFlags -XX:ThreadStackSize=128 -XX:+UseCompressedOops -XX:+UseParallelGC 这是JVM的bug,而且在较新的JDK 6上已经没有这个问题了。 在测试机上随手试了下,6u7还不行,6u14已经没有这个问题了。 << 好吧,顺手把6u6一直到6u13都试过了都不行,最早修复该问题的版本就是6u14了。 请试试升级JDK吧,现在我能推荐的版本是JDK6u29。 相关的几个bug的链接: Bug 6822429: configuration anomaly in JRE 6 wrt NewSize parameter: JVM refuses to start Bug 6979312: 1.5.0_24 heap generation size calculation problem Bug 6524727: GC ergonomics does not honor the minimum young gen size implied by a -Xms and NewRatio |
|
saai
2011-12-06
谢谢!学习了
|
|
coffeesweet
2011-12-07
那是不是在weblogic10.3指定的JDK修改一下版本就能行了??
楼主正常的weblogic9.2指定的JDK版本不是jdk1.6.0_05吗?? |