AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1017309
Accepted
NerdOfLinux
NerdOfLinux
Asked: 2018-03-20 05:37:40 +0800 CST2018-03-20 05:37:40 +0800 CST 2018-03-20 05:37:40 +0800 CST

fallocate vs dd 交换文件?

  • 772

我想知道创建交换文件与

fallocate -l 1G /swapfile

和

dd if=/dev/zero of=/swapfile bs=1024 count=1024

两者似乎都可以正常工作,但是一个比另一个有优势吗?

我在网上唯一能找到的是它fallocate不适用于所有文件系统。

swap dd
  • 2 2 个回答
  • 11275 Views

2 个回答

  • Voted
  1. Best Answer
    muru
    2018-03-20T05:48:35+08:002018-03-20T05:48:35+08:00

    从手册页:mkswap

    Note  that  a  swap  file  must  not contain any holes.  Using cp(1) to
    create the file is not acceptable.  Neither is use of  fallocate(1)  on
    file  systems  that support preallocated files, such as XFS or ext4, or
    on copy-on-write filesystems like btrfs.   It  is  recommended  to  use
    dd(1)  and  /dev/zero in these cases.  Please read notes from swapon(8)
    before adding a swap file to copy-on-write filesystems.
    

    从手册页:swapon

    You should not use swapon on a file with holes.  This can  be  seen  in
    the system log as
    
          swapon: swapfile has holes.
    
    The  swap file implementation in the kernel expects to be able to write
    to the file directly, without the assistance of the  filesystem.   This
    is  a problem on preallocated files (e.g.  fallocate(1)) on filesystems
    like XFS or ext4, and on copy-on-write filesystems like btrfs.
    

    由此可见,虽然fallocate可能比 快dd,但它不适合创建交换文件并且不受交换相关工具的支持。

    • 35
  2. stumblebee
    2018-03-20T05:40:26+08:002018-03-20T05:40:26+08:00

    Fallocate 更快,来自fallocate 手册页:

    fallocate用于操作为文件分配的磁盘空间,以解除分配或预分配。 对于支持 fallocate 系统调用的文件系统,通过分配块并将它们标记为未初始化来快速完成预分配,不需要对数据块进行 IO。这比通过填充零来创建文件要快得多。

    • 4

相关问题

  • 交换分区的重要性

  • 交换分区是否加密?

  • 从交换文件休眠和恢复

  • 我应该使我的交换分区有多大?

  • 如果有空闲 RAM,如何清空交换?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve