我知道如何创建和使用交换分区,但我也可以使用文件吗?
如何在 Linux 系统上创建交换文件?
答案1
让我们从基本信息开始,您应该检查哪些内容vm.swappiness
已设置,如果明智地设置为比 60(默认值)更可接受的值,则应该没有问题。该命令可以以普通用户身份运行:
sysctl vm.swappiness
例如,我有 32GB RAM 服务器和 32GB 交换文件vm.swappiness
= 1.引用维基百科:
vm.swappiness
= 1:内核版本 3.5 及更高版本,以及 Red Hat 内核版本 2.6.32-303 及更高版本:最小交换量而不完全禁用它。
在此示例中,我们创建一个交换文件:
8GB大小,
位于
/
(根目录)。
根据您的需要更改这两件事。
打开终端并成为
root
(su
);如果你有sudo
启用后,您还可以执行以下操作sudo -i
:看man sudo
对于所有选项):sudo -i
为交换文件分配空间:
dd if=/dev/zero of=/swapfile bs=1G count=8
或者,如果您的系统支持它,您可以添加status=progress
到该命令行。
请注意,此处指定的大小G
以 GiB 为单位(1024 的倍数)。
答案2
$ sudo fallocate -l 1G /swapfile
$ sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576
$ sudo chmod 600 /swapfile
$ sudo mkswap /swapfile
$ sudo swapon /swapfile
编者注:步骤 1 和步骤 2 可以互换。
答案3
请检查创建 16GB SWAP 内存的脚本:
#!/bin/bash
#find Free
free -h
#Checking availability space
df -h
#swap Off
sudo swapoff /swapfile
#Allocate swap
sudo fallocate -l 16G /swapfile
#correct amount of space was reserved
ls -lh /swapfile
#file only accessible to root
sudo chmod 600 /swapfile
#amount of space was reserved for the root
ls -lh /swapfile
#now mark the file as swap space
sudo mkswap /swapfile
#Swap On
sudo swapon /swapfile
#swap Show
sudo swapon --show
#statment
echo -e "\n\n Swap 16Gb done"
exit 0