当前位置:   article > 正文

SpringCloud占用内存过大的解决方法_-xms512m -xmx1024m

-xms512m -xmx1024m

问题介绍

我们平时在运行SpringCloud项目的时候经常遇到内存不够无法正常启动的i情况,当我们需要部署项目到云服务器的时候(个人学习使用的肉鸡服务器)1核2G,2核4G简直是直接被干趴下,这里我会介绍解决这个问题的方法。

解决方法

IDEA

1.打开 Edit Configurations

在这里插入图片描述
配置JVM内存
在这里插入图片描述
左边如果是spring cloud 的话肯定是在spring boot下,如果没有,可以点击左上角的+号手动添加,一般启动过的项目这里会有的。

关于jvm参数后面会讲。

这里要注意的是,Eureka项目不需要太多资源(我这里设置128M),Zuul服务可以比Eureka服务多一点(256M)。其它业务性服务才需要更多的资源(512M)。

请根据自己电脑配置情况调整

关于jvm配置

参考1:相关介绍有如下描述

  1. 设置JVM内存的参数有四个:

-Xmx Java Heap最大值,默认值为物理内存的1/4,最佳设值应该视物理内存大小及计算机内其他内存开销而定;

-Xms Java Heap初始值,Server端JVM最好将-Xms和-Xmx设为相同值,开发测试机JVM可以保留默认值;

-Xmn Java Heap Young区大小,不熟悉最好保留默认值;

-Xss 每个线程的Stack大小,不熟悉最好保留默认值;

参考2:相关介绍有如下描述:

一般用到最多的是

-Xms512m 设置JVM促使内存为512m。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。

-Xmx512m ,设置JVM最大可用内存为512M。

-Xmn200m:设置年轻代大小为200M。整个堆大小=年轻代大小 + 年老代大小 + 持久代大小。持久代一般固定大小为64m,所以增大年轻代后,将会减小年老代大小。此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8。

-Xss128k:设置每个线程的堆栈大小。JDK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K。更具应用的线程所需内存大小进行调整。在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000左右。

Linux适配

上面的方法适合在本地进行开发的时候进行使用,当我们需要把项目部署上线的时候,肯定就没有IDE工具了对吧,我们通常把项目打成jar包,下面上命令

nohup  java -Xms512m -Xmx512m -jar Tfoe-goods-1.0-SNAPSHOT.jar &
  • 1

在这里插入图片描述
这里我又将业务性内存调整了一下,因为服务器还要运行Jenkins,实属无奈之举这里还是推荐512M。

在这里插入图片描述
这里是阿里云的监控截图,以前没有配置的时候是不可能跑起来的!

总结

困难千千万,只怕有心人。加油打工人!!!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/616086
推荐阅读
相关标签
  

闽ICP备14008679号