linux 使用文件增加虚拟内存 swap

之前买了个云服务器玩,不过是最低配置的1核1G,后来发现这个内存太小了,随便装几个软件就不行了,内存消耗较大的像 redis 运行起来很多问题。

这些时间了解了下 docker 容器,去尝试了下发现 mysql 就挂了,而且怎么样也启动不了了,后来发现是内存实在是不够了

后来网上了解,如果服务器的总是报告内存不足,并且时常因为内存不足而引发服务被强制kill的话,在不增加物理内存的情况下,启用swap交换区作为虚拟内存是一个不错的选择。当然这个选择是在你对访问速度和缓存那些没什么要求的情况下,比如你自己测试玩的

虚拟内存一般设置为物理内存的2倍即可

新增swap分区

这里使用文件作为swap分区 ,下面操作需要在root用户下操作

使用 free -h 查看当前内存占用情况,可以看到物理内存所剩无几,下面的swap也是使用的文件作为虚拟内存使用的

img

创建要作为swap分区的文件:增加1GB大小的交换分区,则命令写法如下,其中的count等于想要的块的数量(bs*count=文件大小),如下面是2G

# dd if=/dev/zero of=/root/swapfile2 bs=1M count=2048

img

这里我使用的of为/root/swapfile2 ,可以看到该文件是新创建的,这时候这个文件还不能直接使用为swap文件

修改文件权限,如不修改,在启用swap文件的时候会提示下面信息(不影响使用,建议修改)

# chmod 0600 /root/swapfile2

img

格式化为交换分区文件,建立swap的文件系统,/root/swapfile2需要与上面的of的值一致,这个目录可以自定义

# mkswap /root/swapfile2

img

启用swap文件:

# swapon /root/swapfile2

img

可以看到未启用时虚拟内存为2G,启用后内存增加了2G

使系统开机时自启用

# vim /etc/fstab

img

在文件/etc/fstab中添加一行

/root/swapfile2 swap swap defaults 0 0

调整swap空间使用的优先级

如果内存够大,应当告诉 linux 不必太多的使用 SWAP 分区, 可以通过修改 swappiness 的数值。

swappiness=0 的时候表示最大限度使用物理内存,然后才是 swap空间,swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。

各个操作系统的优先级可能都不一样,如果不调整,你会发现添加的虚拟内存几乎没有用到

查看当前swappiness值

# cat /proc/sys/vm/swappiness

修改swappiness值为60(临时修改,重启后即还原为默认值)

# sudo sysctl vm.swappiness=60

img

永久修改swappiness默认值(重启生效)

# vim /etc/sysctl.conf

找到vm.swappiness ,如果没有则需要手动添加一行 vm.swappiness = 60 保存即可

img

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值