查看系统状态
执行free可以看到当前系统内存使用状态
执行
free
返回如下结果
total used free shared buff/cache available
Mem: 497940 318220 26272 33352 153448 80264
Swap: 0
0 0
可以看到swap是0,也就是我们还没有使用swap。但物理内存仅剩26M.
接下来查看磁盘使用情况,保证剩余空间充足,执行
df -h
返回如下结果
Filesystem Size Used Avail Use% Mounted on
devtmpfs 220M 0 220M 0% /dev
tmpfs 244M 0 244M 0% /dev/shm
tmpfs 244M 33M 211M 14% /run
tmpfs 244M 0 244M 0% /sys/fs/cgroup
/dev/xvda1 20G 2.8G 18G 14% /
overlay 20G 2.8G 18G 14% /var/lib/docker/overlay2/07635fa2c036cd24b4d6423a459ae2123e44c2ff0b440c57ec417a1aeff42d70/merged
overlay 20G 2.8G 18G 14% /var/lib/docker/overlay2/372b71b24fb58016b41de6ab06a35700a72e190187836dc7dade0240790c406d/merged
tmpfs 49M 0 49M 0% /run/user/1000
可以看到Avail即可用空间充足
创建SWAP
使用dd命令创建单个文件1M,总大小为1G的swap分区(其中的count等于想要的块的数量,bs*count=文件大小,例如2G仅需将1024修改为2048)
dd if=/dev/zero of=/root/swapfile bs=1M count=1024
格式化为交换分区文件(建立swap的文件系统):
mkswap /root/swapfile
启用交换分区文件(启用swap文件):
swapon /root/swapfile
使系统开机时自启用,在文件/etc/fstab中添加一行:
/root/swapfile swap swap defaults 0 0
再次使用free
命令查看,输出如下结果,看到swap创建成功
[root@ip-172-26-6-100 centos]# free
total used free shared buff/cache available
Mem: 497940 311536 35216 33304 151188 89796
Swap: 1048572 6656 1041916
扩展内容
查看swap使用率
cat /proc/sys/vm/swappiness
返回值30,即30%使用率,每1G内存使用300M SWAP
我们可以临时调整 swappiness 的值到一个合适的参数,从而达到最优化使用 Swap 的目的。这里我们将其设为50。
使用 sysctl 命令:
sysctl vm.swappiness=50
停止交换分区
swapoff /data/swapfile
删除/etc/fstab中的自动挂载
vim /etc/fstab
# /data/swapfile swap swap defaults 0 0
删除分区文件
rm /data/swapfile