【问题描述】
在使用spring cloud过程中一个很严重的资源问题就是内存占用过高,而实际上开发测试并没有很大的访问量,甚至却出现了服务无法正常访问的问题。
【原因分析】
主要是因为:spring cloud的单个微服务部署到Linux系统服务器上时,在8G内存的linux系统电脑上启动占用的内存就达到1G左右。只部署了5个左右的微服务,内存已经不够用了。
在网上也看了很多方法,很多人建议在eclipse或者idea上面进行jvm的参数设置:
但是,经过实际的部署验证发现,还是没有效果。
根本原因:是由于Spring-Boot工程的启动参数,spring boot生成的jar包就是一个普通的jar包;
这个jar包的jvm参数,还必须要从java -jar 的命令中,赋值设置内存占用最大最小和初始值才有作用。
【解决方案】
在Linux系统的服务器上面,启动各个spring cloud的微服务jar包的时候,需要在java -jar 的命令中间增加jvm的内存参数设置:-Xms64m -Xmx128m
nohup java -Xms64m -Xmx128m -jar xxx.xxxx-xxx-xxxxxx-0.0.1-SNAPSHOT.jar &