从Ubuntu/Debian/Fedora/CentOS的文件中创建交换空间

时间:2020-02-23 14:44:31  来源:igfitidea点击:

如何在Ubuntu/Debian/Centos&Fedora Linux上创建交换?
当物理内存量(RAM)耗尽时,使用Linux中的交换空间。
当系统需要更多内存资源和RAM已满时,内存中的非活动页面被移动到交换空间。
交换空间对于具有少量RAM的机器至关重要。

通常建议将交换空间保持在硬盘上的专用交换分区中。
但对于系统安装较小的磁盘大小,可以在文件上创建此操作。
推荐的交换空间数量随系统中的RAM的数量而增加。

推荐系统交换空间

以下是Red Hat的推荐相对于物理内存大小使用的交换量。

我的系统有8 GB的RAM。

$grep MemTotal /proc/meminfo | awk '{print /1024}'
7492.51

我将创建8 GB的交换文件,满足"至少4 GB"公式。

在Linux中创建交换文件

1 - 创建一个空文件:

sudo fallocate -l 8096M /swapfile

可以使用DD命令完成相同的操作。

$sudo dd if=/dev/zero of=/swapfile bs=1G count=8 oflag=direct
8+0 records in
8+0 records out
8589934592 bytes (8.6 GB, 8.0 GiB) copied, 35.7336 s, 240 MB/s

2 - 使用以下命令设置交换文件。

$sudo mkswap /swapfile
mkswap: /swapfile: insecure permissions 0644, 0600 suggested.
Setting up swapspace version 1, size = 8 GiB (8589930496 bytes)
no label, UUID=549d4cd2-f1cf-4839-8ddf-1a20df9af48e

3 - 更改交换文件的安全性。

交换文件不应该是世界可读性的。
只有root用户应该具有读写权限。

sudo chmod 0600 /swapfile

4 - 打开交换文件

指定应发生分页和交换的文件。

sudo swapon /swapfile

5 - 在启动时启用交换文件

让我们添加行以在引导到/etc/fstab文件时启用交换文件。

$sudo nano /etc/fstab
# Mount swap file at boot
/swapfile swap swap defaults 0 0

下次系统靴子时,它激活新的交换文件。

6 - 测试交换

让我们验证SWAP是否处于活动状态,可用于分页。
使用下面显示的三种方法中的任何一种。

$cat /proc/swaps
Filename				Type		Size	Used	Priority
/swapfile                               file		8388604	0	-2
$free -h
              total        used        free      shared  buff/cache   available
Mem:          7.3Gi       2.5Gi       2.7Gi       232Mi       2.2Gi       4.3Gi
Swap:         8.0Gi          0B       8.0Gi
$sudo swapon --show
NAME      TYPE SIZE USED PRIO
/swapfile file   8G   0B   -2

删除交换文件

如果要删除交换文件,请使用以下过程。

1 - 禁用交换文件。

sudo swapoff -v /swapfile

2 - 从/etc/fstab文件中删除其条目。

3 - 删除实际的交换文件:

sudo rm /swapfile