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

解决思路:优化虚拟机堆的空间大小,根据实际物理内存的大小进行比例分配,并且,堆不进行自动扩展。然后使用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垃圾收集器
————————————————
版权声明:本文为CSDN博主「xueyepiaoling」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xueyepiaoling/article/details/79345730

Logo

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

更多推荐