Linux增加虚拟内存

 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(或/etc.rc.local,推荐),在文件末尾添加:/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

 


原文地址:https://www.cnblogs.com/lyrb/p/11950726.html