前言
在Linux下,SWAP的作用类似Windows系统下的“虚拟内存”。当物理内存不足时,拿出部分硬盘空间当SWAP分区(虚拟成内存)使用,从而解决内存容量不足的情况。
SWAP意思是交换,顾名思义,当某进程向OS请求内存发现不足时,OS会把内存中暂时不用的数据交换出去,放在SWAP分区中,这个过程称为SWAP OUT。当某进程又需要这些数据且OS发现还有空闲物理内存时,又会把SWAP分区中的数据交换回物理内存中,这个过程称为SWAP IN。
当然,swap大小是有上限的,一旦swap使用完,操作系统会触发OOM-Killer机制,把消耗内存最多的进程kill掉以释放内存。
第一步查看内存使用情况
[root@izr ~]# free -m
total used free shared buff/cache available
Mem: 3647 364 181 16 3102 2977
Swap: 0 0 0
这个时候看到我们的swap是没有配置的
第二步通过dd命令增加2gswap空间并设置权限
# dd if=/dev/zero of=/var/newswap bs=1M count=2047
# chown root:root /var/newswap
# chmod 0600 /var/newswap
第三步创建swap文件
# mkswap /var/newswap
最后加载swap
# swapon /var/newswap
查看swap是否生效
# free -m
total used free shared buff/cache available
Mem: 1723 634 358 1 730 936
Swap: 2047 5 2042
看到swap里面有值就证明配置成功了
最后编辑/etc/fstab文件,把swap配置写入防止重启后swap变为0
#vim etc/fastab
在最后一行写入
/var/newswap swap swap defaults 0 0
为了防止写错我们用 mount -a命令看一下是否报错,没报错代表没问题。
卸载swap
# swapoff /var/newswap
# rm -rf /var/newswap