现象:在分布式部署时,单个服务的虚拟机不断变大,直到内存被用的所剩无几,然后出现各种各样的异常
解决思路:优化虚拟机堆的空间大小,根据实际物理内存的大小进行比例分配,并且,堆不进行自动扩展。然后使用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垃圾收集器
————————————————
版权声明:本文为优快云博主「xueyepiaoling」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/xueyepiaoling/article/details/79345730
针对分布式部署中单个服务虚拟机内存消耗过大问题,本文详细介绍了如何优化虚拟机堆空间配置,采用固定比例分配策略,避免自动扩展。同时,通过使用ParNew+CMS垃圾回收策略,在多线程高并发环境下提升系统稳定性。
2万+

被折叠的 条评论
为什么被折叠?



