第一步
需要使用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
03-23 17:49