1、用free -m 命令查看当前swap大小
[root@test1 deploy]# free -h
total used free shared buff/cache available
Mem: 15G 923M 7.5G 425M 7.3G 14G
Swap: 0B 0B 0B
[root@test1 deploy]#
2、使用下面的命令创建2G的空间
dd if=/dev/zero of=/home/swap/swapfile bs=1024M count=10
if 表示infile,of表示outfile,bs=1024M 代表增加的模块大小,count=10代表10个模块,也就是10G空间
[root@app01 home]# dd if=/dev/zero of=/home/swap/swapfile bs=1024M count=10
记录了10+0 的读入
记录了10+0 的写出
10737418240字节(11 GB)已复制,44.7328 秒,240 MB/秒
3、mkswap swapfile将文件格式化为swap格式,然后使用blkid swapfile查看文件格式是否为swap
[root@app01 home]# mkswap /home/swap/swapfile
[root@app01 home]# blkid /home/swap/swapfile
4、启用交换分区文件
[root@app01 home]# swapon /home/swap/swapfile
swapon: /home/swap/swapfile:不安全的权限 0644,建议使用 0600。
free -m查看swap已经增加了,但这只是临时性的,如果机器重启会失效
[root@app01 home]# free -h
total used free shared buff/cache available
Mem: 15G 10G 1.1G 840M 3.8G 3.7G
Swap: 9G 0B 9G
重启后仍然生效
vim /etc/fstab
最后一行添加
/home/swap/swapfile swap swap defaults 0 0
重启或free -m测试 swap添加成功
5、如果不再需要swap,可以清理该分区:
[root@mysql01 var]# swapoff /home/swap/swapfile
6、系统使用swap的规则阈值(实际上,并不是等所有的物理内存都消耗完毕之后,才去使用swap的空间,什么时候使用是由swappiness 参数值控制。)
查看当前设置
cat /proc/sys/vm/swappiness
swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间。
swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。
临时修改
sysctl vm.swappiness=10
永久修改,在/etc/sysctl.conf 文件里添加如下参数:
vm.swappiness=10
激活设置
[root@timeserver ~]# sysctl -p