如何创建Linux交换文件

时间:2020-01-09 14:17:00  来源:igfitidea点击:

如何通过命令行选项为云服务器创建Linux交换文件?
如何在Ubuntu 20.04 LTS或CentOS Linux 7/8服务器上添加交换空间?
交换空间不过是Linux内核内存子系统对磁盘,分区或文件的控制。
当服务器开始用尽物理RAM(随机存取存储器)时,Linux内核使用交换空间。
换句话说,交换空间将保存不活动的页面。
物理RAM和交换的组合称为虚拟内存。
对于休眠状态,交换空间对于Linux便携式计算机和台式机用户也至关重要。

Linux桌面用户在休眠之前使用交换空间来保存RAM内容。

创建Linux交换文件的步骤

  • 显示当前在Linux上的交换空间和RAM使用情况:
$ free -h
$ swapon --summary
  • 接下来,使用dd命令创建一个用于交换空间的新文件:
# Example: 2 Gib Linux swap file #
$ sudo dd if=/dev/zero of=/swap-file count=2 bs=1GiB
  • 确保出于安全原因使用chmod命令和chown命令设置正确的Linux文件系统权限:
$ sudo chmod -v 0600 /swap-file
$ sudo chown -v root:root /swap-file
# List permissions #
$ ls -l /swap-file
  • 运行以下mkswap命令以使用文件设置Linux交换区域:
$ sudo mkswap /swap-file
  • 通过执行swapon命令激活交换空间:
$ sudo swapon /swap-file

使用CLI在Linux上添加交换文件

在Linux上显示RAM和交换使用情况

您可以使用以下任一命令:

$ swapon --summary
$ free -h
$ top
$ htop
$ vmstat

在Linux上显示交换使用情况摘要

{零散}

如何在Linux上持续激活交换空间文件

确保Linux系统重启后激活了交换文件。
要使更改永久生效,请编辑/etc/fstab文件:

$ sudo vi /etc/fstab

追加以下配置指令:

/swap-file swap swap defaults 0 0

保存并关闭文件。

如何设置交换空间和文件优先级

缺省情况下,Linux内核使用第一个激活的交换空间,直到其满为止。
然后内核开始使用第二个交换空间,依此类推。
不过,Linux允许我们定义优先级。
默认优先级为-2,Linux可以首先使用最高优先级。
编辑/etc/fstab并添加pri,如下所示:

/dev/sdb none swap sw  0 0
/swap-file swap swap pri=5 0 0
/swap-file-2 swap swap pri=10 0 0

现在,我的Linux内核首先使用pri = 10的/swap-file-2。
当该空间已满时,Linux使用pri = 5的/swap文件。
最后,Linux使用优先级为-2的/dev/sdb。

关于Linux swappiness的说明

swappiness值在/proc/sys/vm/swappiness文件中定义。
它控制Linux内核如何积极地交换内存页面。
较高的值会增加攻击性,而较低的值会降低攻击性。
缺省值为60。
使用cat命令查看值:

$ cat /proc/sys/vm/swappiness
`60`

我建议保留默认值,这对于大多数用户来说非常有用。
但是,您可以按如下所示将其更改为40:

$ sudo echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.d/99-swappiness.conf

有关更多信息,请参见在Linux或Unix上使用sudo命令时如何将文本追加到文件中以及如何使用sysctl.conf永久更改/proc /文件系统。

删除交换文件

要删除您的交换文件?

  • 禁用交换文件:
$ sudo swapoff -v /swap-file
  • 使用rm命令删除物理交换文件:
$ sudo rm -v -i /swap-file
  • 编辑/etc/fstab并删除交换文件的条目。例如:
/swap-file swap swap defaults 0 0