背景介绍
虽然说现在的服务器大多数情况下基本上都是512MB的内存起步,如果只是搭建个博客什么的自然是绰绰有余,但是面对某些内存占用大户来说,512MB完全不够用,而内存加一点价格都好高上很多,单单是为了某一项服务而专门购买性能过剩的主机不免有些浪费。所以此时就需要Swap分区出手了.
Swap简介
SWAP就是LINUX下的虚拟内存分区,它的作用是在物理内存使用完之后,将磁盘空间(也就是SWAP分区)虚拟成内存来使用。
添加Swap
1、监测系统是否存在交换分区
swapon --show
无显示即表示当前系统不存在交换分区
2、监测硬盘可用空间大小
swap分区用的是硬盘上的容量,所以要提前看看自己的机器上是否有足够的空闲容量来分区
df -h
输出结果
/dev下的就是我们的硬盘,总共20GB,可用17GB,一般情况下建议分区大小不宜过大,系统内存大小的2倍效果较好,如果你只把它当做RAM的备份使用,推荐最大不要超过4GB。
3、创建swap文件
我的机子是512MB内存,所以我想给它1GB的swap分区
在根目录下
fallocate -l 1G /swapfile
验证是否成功
ls -lh /swapfile
这表示我们已经成功创建了1G的swapflie
4、启用swapfile
首先锁定文件权限使其只有root用户可以读取避免普通用户误删
chmod 600 /swapfile
验证权限
ls -lh /swapfile
可以看到只有root用户拥有读写权限
标记为交换空间
mkswap /swapfile
启用交换空间
swapon /swapfile
验证是否可用
swapon --show
5、永久保留交换文件
现在我们已经配置好了,但是当服务器重启之后,系统不会自动保留swap的设置,所以我们需要额外进行这一步来保留交换文件。
备份
cp /etc/fstab /etc/fstab.bak
添加swapfile信息
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
至此大功告成。
进阶技巧
1、调整swappiness属性
swappiness参数会影响到你的系统数据使用RAM和SWAP的比例,由于SWAP是硬盘上的空间,所以速度相较于内存肯定是非常慢的,从0-100为尽可能使用RAM到尽可能使用SWAP。服务器上推荐设置为0
查看当前swappiness值
cat /proc/sys/vm/swappiness
调整为0
sysctl vm.swappiness=0
输出vm.swappiness=0表示成功
重启之后自动生效
nano /etc/sysctl.conf
文件末尾添加
vm.swappiness=0
完成之后保存关闭文件
2、调整缓存压力设置
这个是系统文件的缓存压力,100-0表示删除缓存时间从快到慢
查询当前值
cat /proc/sys/vm/vfs_cache_pressure
输出值100,我们希望设置一个保守值比如说60
sysctl vm.vfs_cache_pressure=50
同swappiness类似我们需要让其自启生效
nano /etc/sysctl.conf
末尾添加
vm.vfs_cache_pressure=60
至此完结。