前言
部署服务的时候起不来, 一个15个微服务模块, 只能启动14个, 再多启动一个就会挤掉一个, 猜测内存不够?
1. 问题确认, 内存不够
首先查看 linux 的内存使用情况:
free -m
对于每个字段的解读:
total : 总数, 全部的
used: 使用中,用过的
free: 可以用的,自由的
shared: 共享, 不知道什么用
buff / cache: 缓存
available: 可用的
mem: 存储器
swap: 交换器
基本上看 存储器 mem 的 可用容量 free的大小就行了, 查看内存的使用情况
参考文档 = https://www.cnblogs.com/bonelee/p/7301020.html
2. 解决方案, 在启动jar的时候加上内存限制
nohup命令: 在后台输出日志命令
参考文档 = https://www.runoob.com/linux/linux-comm-nohup.html
nohup java -Xms堆内存初始值m -Xmx堆内存最大值m -jar xx.jar >xxx.log &
#---
nohup java -Xms256m -Xmx512m -jar service-eureka.jar >eureka.log &
Xms:堆内存初始大小
Xmx:堆内存最大值
#PermSize:永久内存初始大小
#MaxPermSize:永久内存最大值
堆内存和永久内存区别以及其他参数设置,参考jvm运行机
3. 总结
-
free -m 查看linux的内存使用情况
-
启动 jar 包的命令以及参数:
java -jar xxx.jar
java -Xms256m -Xmx512m -jar xxx.jar -
-Xms堆内存初始大小数值m
-Xmx堆内存最大数值m -
nohup 后台输出打印日志命令