Linux中swap交换分区配置教程

设置交换分区一共有两种方式,第一种就是单独分一个区作为交换分区,另外一种就是创建一个用于交换分区的文件,把这个文件设置为交换分区。

查看未设置交换分区之前

free -h

方法一

mkswap /dev/sdc

设置为交换分区

swapon /dev/sdc

设置为重启也生效,修改配置文件

[root@dubbo ~]# vim /etc/fstab 

UUID=10702f09-a7b0-472a-a38f-e17e8fc9df80 swap                    swap    defaults        0 0

取消交换分区设置

swapoff -a

方法二

可查询物理内存大小和swap空间大小,swap空间通常应为物理内存两倍大。/root/swapfile是交换分区存放在磁盘上的位置。创建swapfile:

说明:/dev/zero会提供无限空字符去写入文件, bs为每块大小,count为数量,bs*count就是交换分区的总大小了

dd if=/dev/zero of=/root/swapfile bs=1M count=4096
  • PS:块大小为1M数量是4096所以是4G
  • 格式化,将swapfile设置为swap空间(第二步:把这个文件变成swap文件)
 mkswap swapfile

启用交换空间(第三步:启用这个swap文件)

swapon swapfile

(删除交换空间是swapoff swapfile)至此增加交换空间的操作结束了。
可以使用free命令查看swap空间大小是否发生变化;

 开机挂载方式和以上一样

交换内存使用率一直是0 即swap不生效问题解决

  1. 修改 swpapiness 参数

在 Linux 系统中,可以通过查看 /proc/sys/vm/swappiness 内容的值来确定系统对 SWAP 分区的使用原则。当 swappiness 内容的值为 0 时,表示最大限度地使用物理内存,物理内存使用完毕后,才会使用 SWAP 分区。当 swappiness 内容的值为 100 时,表示积极地使用 SWAP 分区,并且把内存中的数据及时地置换到 SWAP 分区。

查看修改前为 0,需要在物理内存使用完毕后才会使用 SWAP 分区;可以使用下述方法临时修改此参数,假设我们配置为空闲内存少于 10% 时才使用 SWAP 分区:

echo 10 >/proc/sys/vm/swappiness

若需要永久修改此配置,在系统重启之后也生效的话,可以修改 /etc/sysctl.conf 文件,并增加以下内容:

# vim /etc/sysctl.conf
vm.swappiness=10
# sysctl -p

参考文献:https://developer.aliyun.com/ask/137406?spm=a2c6h.13706215.ask-content.1.3818688epeFusS

阅读剩余
THE END