我知道如何创建和使用交换分区,但是我也可以使用文件代替吗?
如何在Linux系统上创建交换文件?
我知道如何创建和使用交换分区,但是我也可以使用文件代替吗?
如何在Linux系统上创建交换文件?
Answers:
明确一点是,处理文件而不是分区时会产生一些开销。
此外,我本人在多台计算机上mdadm
都有RAID 上的交换文件,因此还有另外的开销。但是,如果vm.swappiness
明智地将其调整为比默认值60更可接受的值,则应该没有问题。
例如,我在RAID6上具有32GB的RAM服务器和32GB交换文件,其vm.swappiness
=1。引用Wikipedia:
vm.swappiness
= 1:内核版本3.5及更高版本,以及Red Hat内核版本2.6.32-303及更高版本:最小交换量,而没有完全禁用它。
在此示例中,我们创建一个交换文件:
8GB大小
位于 /raid1/
根据您的需要更改这两件事。
打开终端并成为root
(su
); 如果已sudo
启用,则还可以例如执行sudo -i
; 查看man sudo
所有选项):
sudo -i
为交换文件分配空间:
dd if=/dev/zero of=/raid1/swapfile bs=1G count=8
(可选)如果您的系统支持,则可以添加status=progress
到该命令行。
请注意,此处指定的大小G
以GiB(1024的倍数)为单位。
更改交换文件的权限,以便只能root
访问它:
chmod 600 /raid1/swapfile
将此文件设为交换文件:
mkswap /raid1/swapfile
启用交换文件:
swapon /raid1/swapfile
验证是否正在使用交换文件:
cat /proc/swaps
打开您熟悉此文件的文本编辑器,例如,nano
如果不确定:
nano /etc/fstab
要使此交换文件在重新启动后可用,请添加以下行:
/raid1/swapfile none swap sw 0 0