背景介绍

虽然说现在的服务器大多数情况下基本上都是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

至此完结。

Last modification:March 21st, 2020 at 03:30 pm