Linux增加虚拟内存

五迷三道 提交于 2019-12-05 23:36:27

 

 

Docker容器启动Mysql镜像报错,提示无法分配内存,报错信息如下:

 

 

 

 

   由此我们看到Swap为0,考虑适当增加swap。

   Linux开启swap空间有好几种方法,在这里只介绍比较常用的两种。

  • 使用交换文件
    这种方式适用于,已经装完系统但是没有多余分区可以用来做swap分区。
  • 使用交换分区
    这种方式适用于有多余的分区可以用来做swap分区。

使用交换文件开启Swap

a.创建交换文件

> fallocate -l 4G /swapfile
或
> dd if=/dev/zero of=/swapfile bs=1M count=4096

b.设置可访问权限

> chmod 600 /swapfile

c.格式化文件

> mkswap /swapfile

d.激活swap空间

> swapon /swapfile

f.开机自动启用swap空间

  编辑/etc/fstab,在文件末尾添加:/swapfile none swap default 0 0

关闭 SWAP

  当系统出现内存不足时,开启 SWAP 可能会因频繁换页操作,导致 IO 性能下降。

  如果要关闭 SWAP,可以采用如下方法。
1、free -m #查询SWAP分区设置

2、使用命令swapoff 关闭 SWAP,比如:
  swapoff /mnt/swapfile

3、修改 /etc/fstab 文件,删除或注释相关配置,取消 SWAP 的自动挂载:

4、 通过 free -m 确认 SWAP 已经关闭。

5、 swappiness 参数调整:
  可以使用下述方法临时修改此参数,这里配置为 0%:
  echo 0 >/proc/sys/vm/swappiness
  若需要永久修改此配置,在系统重启之后也生效的话,可以修改 /etc/sysctl.conf文件,并增加以下内容:vm.swappiness=0

 

 


 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!