Swap是Linux下的虚拟内存,也叫交换分区。当Swap使用率较高时,可通过以下方式增加其大小。
1.查看当前系统Swap空间
# free -mh
total used free shared buff/cache available
Mem: 31Gi 21Gi 414Mi 69Mi 9.0Gi 8.9Gi
Swap: 15Gi 15Gi 723Mi
2.创建Swap目录
# cd /usr
# mkdir swap
3.增加Swap文件
# dd if=/dev/zero of=/usr/swap/swapfile1 bs=1M count=16384
16384+0 records in
16384+0 records out
17179869184 bytes (17 GB, 16 GiB) copied, 32.0021 s, 537 MB/s
bs=1M 表示写入的每个块的大小为1M,count=16384 表示创建大小为16384M(16GB)的Swap文件
4.查看创建的Swap文件
# du -sh /usr/swap/swapfile1
16G /usr/swap/swapfile1
5.将目标文件标识为Swap分区文件
# mkswap /usr/swap/swapfile1
mkswap: /usr/swap/swapfile1: insecure permissions 0644, 0600 suggested.
Setting up swapspace version 1, size = 16 GiB (17179865088 bytes)
no label, UUID=386dee2a-bca6-4ca4-a943-5f01aeba9f70
6.激活swap文件
# swapon /usr/swap/swapfile1
swapon: /usr/swap/swapfile1: insecure permissions 0644, 0600 suggested.
7.编辑/etc/fstab文件
vim /etc/fstab
在末行增加以下内容
/usr/swap/swapfile1 swap swap defaults 0 0
8.查看是否挂载成功
# swapon -s
Filename Type Size Used Priority
/dev/dm-1 partition 16506876 15748892 -2
/usr/swap/swapfile1 file 16777212 0 -3
显示挂载成功后大约在几分钟后在探针中显现,显现后效果如图
sysctl -p
要调整系统如何使用Swap,可修改内核参数 vm.swappiness ,参数取值范围 0 到 100,具体含义如下:
- 值越大:表示系统越倾向于使用交换空间(swap),即将内存中不常用的页面(如进程的非活动数据)移到磁盘的交换分区中,从而释放内存供其他进程使用。
- 值越小:表示系统越倾向于保留物理内存中的数据,尽量减少使用交换空间。
一般取值为60,该值平衡了内存使用和性能,适合大多数场景,尽量避免频繁的磁盘 I/O。
查看该值命令: cat /proc/sys/vm/swappiness
修改该值可编辑 /etc/sysctl.conf 文件,修改或添加 vm.swappiness 参数,如:
vm.swappiness=60
编辑完运行 sysctl -p 使之生效。
参考链接:https://timberkito.com/?p=98