【‘Not enough space‘ (errno=12)】通过swap扩容,解决内存溢出

问题描述

今天使用Docker部署Kafka时,发现启动失败,通过docker logs命令查看发现原来是云服务器的运行内存不足:

OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c0000000, 1073741824, 0) failed; error='Not enough space' (errno=12)

【‘Not enough space‘ (errno=12)】通过swap扩容,解决内存溢出_第1张图片

通过free -h命令内存,发现的确没剩多少运行内存了,问题原因找到了:
在这里插入图片描述

操作流程

可以通过swap(内存交换空间)扩容可用的运行内存空间,首先声明扩容的内存容量(本次我扩容大约4G):

# 扩容4G运行内存
# of:空间名称,名为swapfile
# bs:单位,kb
# count:数量(4000000 * 1kb ≈ 4G)
dd if=/dev/zero of=swapfile bs=1024 count=4000000

设置swap空间:

mkswap swapfile

启用swap空间:

# 启用
swapon swapfile

注意:如果之前配置设置错误,可以通过命令swapoff swapfile删除swap空间,然后重新设置上述流程!此时通过free -h命令查看内存空间:

在这里插入图片描述

你可能感兴趣的:(java,linux,centos,swap,shell)