解决小内存的vps安装软件各种异常的情况(开启swap,也就是虚拟内存)。
前言
某些时候受限于成本(也就是穷),咱们会购入一些内存非常小(256m)的nat或ipv6 only的小鸡,这种鸡能干啥,懂得都懂。
但是内存太小限制会很大,可能会出现软件装不上,或者装上了之后发现用不了。甚至speedtest都无法测完。
比如:可能出现下面这几种情况
1、安装软件一直处在没有进度的情况
2、安装软件完成了,但是命令不存在
因此,这篇教程也就有了用武之地,通过这篇教程可以解决大多数内存不够用的情况。(要想全部解决,还是推荐使用钞能力)
介绍
swap可以理解为linux下的虚拟内存,是从硬盘中划分出的一个分区。开启之后,当物理内存不够用的时候,内核就会释放缓存区(buffers/cache)里一些长时间不用的程序,然后将这些程序临时放到Swap中,也就是说如果物理内存和缓存区内存不够用的时候,才会用到swap。
检查是否开启swap
free -m
swap那一行的total返回为0表示没有开启swap。
如果是试用finalshell连接,则面板可以直接看出是否有开启swap。红框位置如果有值则表示已开启。
创建swap
#首先分配1g的空间大小的文件
fallocate -l 1G /swapfile
#如果提示fallocate: command not found
#则可以再执行命令:apt install util-linux
#设置只有拥有者有读写权限
chmod 600 /swapfile
#启动swap区
mkswap /swapfile
swapon /swapfile
检查是否开启成功
可以看到,finalshell面板上swap已经设置为1g了。
当然,你也可以使用命令查看
free -m
而且磁盘空间也已经占用了1g。(在执行fallocate分配命令之后,就会占用了)
设置开机自启动
echo "/swapfile swap swap defaults 0 0" >> /etc/fstab
调整Swappiness值
swap作为虚拟内存,毕竟用的还是磁盘的性能,怎么样也比不上真实的内存,所以咱们都应该尽量使用真实内存。
只有真实内存实在不够时才应该使用虚拟内存。此时就需要设置Swappiness值。
Swapiness 的值在 0 到 100 之间 (默认是 60),越低表示越要避免交换,越高表示越积极地使用交换空间。
我们可以使用 cat /proc/sys/vm/swappiness
命令查看当前值。
可以设置Swappiness值为10
#设置swappiness值
echo "vm.swappiness=10" >> /etc/sysctl.conf
#使配置生效
sysctl -p
如果只是要设置swap,那教程到这里就结束了。接下来我们继续讲解关闭swap
关闭swap
如果需要关闭swap,则将之前的操作反向即可。但是步骤的顺序还是得遵循一下的
#首先关闭swap区
swapoff /swapfile
其次找到启动swap时设置的开机自启的配置,并删除
#也就是找到/etc/fstab,然后删除 /swapfile swap swap defaults 0 0
#通过该命令编辑器,可以进入编辑界面,删除上面指定内容
vim /etc/fstab
最后删除分配的文件
rm -rf /swapfile