如何在Ubuntu 20.04/CentOS 7上使用交换文件,如何创建Linux交换文件

时间:2020-03-21 11:43:15  来源:igfitidea点击:

本教程通过使用一些命令将文件制作为SWAP驱动器,我们可以其中制作SWAP驱动器并将该驱动器添加到相应的启动和服务管理器中。

步骤1(切换到root用户帐户)

$su 
Password:

步骤2(为交换文件分配空间)

注意:SWAP驱动器是内存大小的两倍。
如果我们有2GB的内存,则SWAP驱动器的大小为4GB。
其中我们可以将2G更改或者分配给各自的SWAP驱动器大小。

# fallocate -l 2G /mnt/swapfile.swap

步骤3(创建交换文件)

注意:这里我们使用2GB,因此就MB而言为2048,我们可以更改该值。
该给定命令需要一些时间,具体取决于磁盘和CPU的大小。
因此,在执行此命令期间请耐心等待。

# dd if=/dev/zero of=/mnt/swapfile.swap bs=2048 count=1048576

输出示例

1048576+0 records in
1048576+0 records out
2147483648 bytes (2.1 GB) copied, 49.4045 s, 43.5 MB/s

步骤4(格式化交换文件)

# mkswap /mnt/swapfile.swap

输出示例

Setting up swapspace version 1, size = 2 GiB (2147483648 bytes)
no label, UUID=6f6a8a10-f2ae-4256-9a5c-7084cd0697e1

步骤5(启用交换文件)

# swapon /mnt/swapfile.swap

输出示例

swapon: /mnt/2GB.swap: insecure permissions 0644, 0600 suggested.

步骤6(提供交换文件的文件权限)

注意:如果在生产环境中使用交换空间,则这是可选命令,必须对交换文件使用600或者644权限。

# chmod 600 /mnt/swapfile.swap

步骤7(将交换文件添加到启动管理器)

# vim /etc/fstab

将给定命令添加到最后一行

# /etc/fstab
# Created by anaconda on Fri Sep 4 06:44:00 2014
## Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#UUID=d1b5c2e9-d304-40c1-9ab5-a00ce2ab5450/ext4 defaults 1 1
/mnt/swapfile.swap none swap sw 0 0

':wq'保存并退出

步骤8(将交换文件添加到systemd引导管理器中)

# vim /etc/sysctl.conf

注意:其中我们可以从值10开始放置swappiness = 60,在这种类型的更大值中,我们使用的默认值为60。

将给定命令添加到最后一行

# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
## Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/and put new settings there.
## For more information, see sysctl.conf(5) and sysctl.d(5).
kernel.sysrq = 1
vm.swappiness=60

':wq'保存并退出

检查Swapon状态并重新启动PC /服务器

# swapon -s
# systemctl reboot

我们已经在CentOS和Ubuntu上使用交换文件创建了Linux交换驱动器。