如何创建交换文件?

如何创建交换文件?

我知道如何创建和使用交换分区,但我也可以使用文件吗?

如何在 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大小,

  • 位于/(根目录)。

根据您的需要更改这两件事。

  1. 打开终端并成为root(su);如果你有sudo启用后,您还可以执行以下操作sudo -i:看man sudo对于所有选项):

    sudo -i
    
  2. 为交换文件分配空间:

    dd if=/dev/zero of=/swapfile bs=1G count=8
    

或者,如果您的系统支持它,您可以添加status=progress到该命令行。

请注意,此处指定的大小G以 GiB 为单位(1024 的倍数)。

  1. 更改交换文件的权限,以便仅root可以访问它:

    chmod 600 /swapfile
    
  2. 使该文件成为交换文件:

    mkswap /swapfile
    
  3. 启用交换文件:

    swapon /swapfile
    
  4. 验证交换文件是否正在使用:

    cat /proc/swaps
    
  5. 打开您熟悉此文件的文本编辑器,例如nano如果不确定:

    nano /etc/fstab
    
  6. 要使此交换文件在重新启动后可用,请添加以下行:

    /swapfile        none        swap        sw        0        0
    

答案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

相关内容