赞
踩
我们平时在运行SpringCloud项目的时候经常遇到内存不够无法正常启动的i情况,当我们需要部署项目到云服务器的时候(个人学习使用的肉鸡服务器)1核2G,2核4G简直是直接被干趴下,这里我会介绍解决这个问题的方法。
1.打开 Edit Configurations
配置JVM内存
左边如果是spring cloud 的话肯定是在spring boot下,如果没有,可以点击左上角的+号手动添加,一般启动过的项目这里会有的。
关于jvm参数后面会讲。
这里要注意的是,Eureka项目不需要太多资源(我这里设置128M),Zuul服务可以比Eureka服务多一点(256M)。其它业务性服务才需要更多的资源(512M)。
请根据自己电脑配置情况调整
参考1:相关介绍有如下描述
-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左右。
上面的方法适合在本地进行开发的时候进行使用,当我们需要把项目部署上线的时候,肯定就没有IDE工具了对吧,我们通常把项目打成jar包,下面上命令
nohup java -Xms512m -Xmx512m -jar Tfoe-goods-1.0-SNAPSHOT.jar &
这里我又将业务性内存调整了一下,因为服务器还要运行Jenkins,实属无奈之举这里还是推荐512M。
这里是阿里云的监控截图,以前没有配置的时候是不可能跑起来的!
困难千千万,只怕有心人。加油打工人!!!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。