OpenJDK 64-Bit Server VM warning

2020-04-01  本文已影响0人  擦普洱

1.问题描述
废话不多说,直接上图:


图1 错误截图

在启动项目的时候报错,无法分配内存。

2.问题分析

如上图所示:系统一共6.8G 使用了5.9G 剩余215M,那么我们在启动项目的时候设置了JVM的最小内存参数:


图3 查看项目启动需要的最小内存

那么显而易见,内存不够用,导致项目无法启动。

# 使用root权限,创建500M
dd if=/dev/zero of=swapfile bs=1024 count=500000

第二步:将swapfile设置为swap空间

mkswap swapfile

第三步:启用交换空间

swapon swapfile 

至此我们可以查看运行内存的使用情况:


图4 查看内存使用
  1. 问题解决

发现swap已经使用了486M,讲道理启动我的项目需要256M~512M之间,swap空间我只开了500M虽然启动成功了,但是如果后续还有相同的服务上线的话肯定不够用,那么我们该如何去创建合适的swap呢?
可以参考:给Linux分配多少Swap空间才够呢?

#内核空间交换区分利用参数查看命令
cat /proc/sys/vm/swappiness
图6 swap使用阀值

swappiness=0 的时候表示最大限度使用物理内存,然后才是swap空间;swappiness=100 的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面,那么我们的是30,也就是说当内存使用到30%的时候,swap内存启用。

参考地址:https://blog.csdn.net/weixin_44105991/article/details/91320644

上一篇下一篇

猜你喜欢

热点阅读