现象:在分布式部署时,单个服务的虚拟机不断变大,直到内存被用的所剩无几,然后出现各种各样的异常


解决思路:优化虚拟机堆的空间大小,根据实际物理内存的大小进行比例分配,并且,堆不进行自动扩展。然后使用ParNew+CMS进行垃圾回收,在多线程高并发的情况下,表现很好


export CATALINA_OPTS="$CATALINA_OPTS -Xms3000m"                  //堆初始值

export CATALINA_OPTS="$CATALINA_OPTS -Xmx3000m"                  //堆最大值
export CATALINA_OPTS="$CATALINA_OPTS -XX:MaxPermSize=256m"       //Java虚拟机永久代大小最大值
export CATALINA_OPTS="$CATALINA_OPTS -Xmn512m"                   //堆最小值
export CATALINE_OPTS="$CATALINA_OPTS -XX:+UseConcMarkSweepGC"        //使用CMS垃圾收集器
export CATALINA_OPTS="$CATALINA_OPTS -XX:+UseParNewGC"           //使用parallel New垃圾收集器
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐