The stack size specified is too small, Specify at

服务器上启动一个java程序,其余服务器正常,有一个总是失败,最后发现了:java

The stack size specified is too small, Specify at least 228k 服务器

个人jvm参数是:并发

-server -Xmx2048m -Xms2048m -Xss128k -XX:MaxPermSize=512m -XX:PermSize=512m -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=80 -XX:+PrintGCDetailsjvm


JDK7启动对xss参数有最小值要求,必须大于228才能启动JVMxss

修改这个: -Xss256k -spa


-XX:+UseConcMarkSweepGC

该标志首先是激活CMS收集器。默认HotSpot JVM使用的是并行收集器。code

-XX:CMSInitiatingOccupancyFraction

当堆满以后,并行收集器便开始进行垃圾收集,例如,当没有足够的空间来容纳新分配或提高的对象。对于CMS收集器,长时间等待是不可取的,由于在并发垃圾收集期间应用持续在运行(而且分配对象)。所以,为了在应用程序使用完内存以前完成垃圾收集周期,CMS收集器要比并行收集器更先启动。orm

由于不一样的应用会有不一样对象分配模式,JVM会收集实际的对象分配(和释放)的运行时数据,而且分析这些数据,来决定何时启动一次CMS垃圾收集周期。为了引导这一过程, JVM会在一开始执行CMS周期前做一些线索查找。该线索由 -XX:CMSInitiatingOccupancyFraction=<value>来设置,该值表明老年代堆空间的使用率。好比,value=75意味着第一次CMS垃圾收集会在老年代被占用75%时被触发。一般CMSInitiatingOccupancyFraction的默认值为68(以前很长时间的经从来决定的)。server

相关文章
相关标签/搜索