第一步
需要使用root权限。登录这些就不用多说了。
第二步
创建交换文件,这里会创建一个16GB的交换文件,具体的大小要根据你系统的内存或你的需求来看。
我们使用的命令为:
# sudo dd if=/dev/zero of=/opt/swapfile/16GB.swap bs=1024 count=16777216
if=/dev/zero : 从/dev/zero文件中读取数据。
of=/opt/swapfile/16GB.swap : 这里设置的文件为需要创建的交换文件,内容是从/dev/zero中读取来。
bs=1024 : 每次读取和写入1024 BYTES。
count=16777216 : 需要写入块的数量,块大小就是bs所设置的大小。这里设置的是16777216个。
这里需要注意的是,应该如何换算
1024102416=16777216
第一个1024是bs的大小,1024BYTE,为1M。
第二个1024是指1024个1M, 为1G
第三个16是指16G。
# dd if=/dev/zero of=/opt/swapfile/16GB.swap bs=1024 count=16777216
16777216+0 records in
16777216+0 records out
17179869184 bytes (17 GB) copied, 92.9432 s, 185 MB/s
# ll -h /opt/swapfile/16GB.swap
-rw-r--r-- 1 root root 16G Dec 18 12:49 /opt/swapfile/16GB.swap
1
2
3
4
5
6
7
这样,16G的交换文件创建完成。
第三步
设置交换文件的权限。这一步是为了安全。再讲就非常基础了。
# chown root:root /opt/swapfile/16GB.swap
# chmod 0600 /opt/swapfile/16GB.swap
第四步
将刚创建的交换文件设置为交换分区。
# mkswap /opt/swapfile/16GB.swap
Setting up swapspace version 1, size = 16777212 KiB
no label, UUID=d1514772-2707-4462-80b2-e352c2e5655f
第五步
启用交换分区。
# swapon /opt/swapfile/16GB.swap
第六步
让系统开机自动启用。
需要悠/etc/fstab文件,在这个文件中加入以下内容:
/opt/swapfile/16GB.swap none swap sw 0 0
linux在启动时会自动加载。
第七步
验证。
通过free -m 验证。
# free -m
total used free shared buff/cache available
Mem: 15886 407 369 0 15109 15133
Swap: 16383 0 16383
查看交换分区的使用情况:
# swapon -s
Filename Type Size Used Priority
/opt/swapfile/16GB.swap file 16777212 0 -1
也可以通过查看文件/proc/meminfo。
# grep -i --color swap /proc/meminfo
SwapCached: 0 kB
SwapTotal: 16777212 kB
SwapFree: 16777212 kB
也可以通过
top
atop
htop
查看交换分区的使用情况。
如何停用swap分区或swap文件
停用swap分区和文件,使用swapoff
# swapoff /opt/swapfile/16GB.swap
再查看交换分区的使用信息:
# swapon -s
配置交换分区
交换分区在设置好后,可以通过设置/proc/sys/vm/swappiness文件来控制内核将内存中的页交换到交换分区中。设置的值超市,则交换分区使用就会更高。默认值为60。如果需要修改,可以通过以下两种方法:
# sysctl vm.swappiness=20
或
# echo 30 > /proc/sys/vm/swappiness
如果需要永久的更改,可以将值写入到 /etc/sysctl.conf
echo 'vm.swappiness=30' >> /etc/sysctl.conf