如何创建交换文件?


11

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

如何在Linux系统上创建交换文件?

Answers:


18

明确一点是,处理文件而不是分区时会产生一些开销。

此外,我本人在多台计算机上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/

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

  1. 打开终端并成为rootsu); 如果已sudo启用,则还可以例如执行sudo -i; 查看man sudo所有选项):

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

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

    (可选)如果您的系统支持,则可以添加status=progress到该命令行。

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

  3. 更改交换文件的权限,以便只能root访问它:

    chmod 600 /raid1/swapfile
    
  4. 将此文件设为交换文件:

    mkswap /raid1/swapfile
    
  5. 启用交换文件:

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

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

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

    /raid1/swapfile        none        swap        sw        0        0
    
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.