一、创建 swap 分区
1.创建 swap 文件
dd if=/dev/zero of=/var/swapfile bs=1024 count=4194304
  • dd:用于读取、转换并输出数据。
  • if=/dev/zero:参数if用于指定源文件。/dev/zero是一个特殊的字符设备文件,当使用或读取它的时候,它会提供无限连续不断的空的数据流。
  • of=/var/swapfile:参数of用于指定目的文件。
  • bs=1024:参数bs用于设置单位数据块同时读入/输出的块字节大小。设定为 1024 字节,即 1KB 。
  • count=4194304:参数count用于设置块的个数。设定的个数是 4194304 = 1024x1024x4 ,每个块的大小是 1KB ,因此 swap 文件总大小为 1024x1024x4x1 KB = 4 GB 。
2.建立 swap 分区
mkswap /var/swapfile
  • mkswap 用于在一个文件或者设备上建立交换分区。此处指定文件为刚创建的/var/swapfile
3.激活 swap 分区
  • 修改不安全的权限
chmod -R 0600 /var/swapfile
  • 激活 swap 分区
swapon /var/swapfile
二、修改 swap 配置
1.开机自动挂载 swap 分区
echo "/var/swapfile swap swap defaults 0 0" >> /etc/fstab
2.调整系统使用 swap 分区的策略

系统使用虚拟内存是有一定策略的,通过参数 swappiness 来平衡。

swappiness 的值越大表示越积极使用 swap 分区,越小表示越积极使用物理内存。以值取 10 为例,代表了当剩余物理内存小于 10% 时,系统开始使用 swap 分区。

如果内存充足,就将 swappiness 值设置很低,甚至为0,以避免系统进行 swap 而影响性能。

如果内存不足,就将 swappiness 值设大,让系统更多地使用 swap 分区,一般设置在 10 ~ 50 之间即可。

  • 查看当前的 swappiness 值
cat /proc/sys/vm/swappiness
  • 临时修改
sysctl vm.swappiness=10
  • 永久修改
echo "vm.swappiness = 10" >> /etc/sysctl.conf
三、删除 swap 分区
  • 停止正在使用的 swap 分区
swapoff /var/swapfile
  • 删除 swap 分区文件
rm -rf /var/swapfile
  • 删除或注释掉之前在/etc/fstab文件里追加的开机自动挂载配置内容,以及在/etc/sysctl.conf文件里追加的 swappiness 值
vim /etc/fstab              # 注释或删除:/var/swapfile swap swap defaults 0 0
vim /etc/sysctl.conf        # 注释或删除:vm.swappiness = 10
最后修改:2024 年 05 月 12 日
如果觉得我的文章对你有用,请随意赞赏。