首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么不总是在'dd‘中使用'oflag=direct’呢?

为什么不总是在'dd‘中使用'oflag=direct’呢?
EN

Unix & Linux用户
提问于 2022-08-11 14:21:41
回答 1查看 342关注 0票数 1

oflag=direct中使用dd似乎总是比不使用它或使用pv等来执行操作要快得多。

在什么情况下,我可能不想使用oflag=direct

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2022-08-11 14:56:54

就在我头顶上:

  • 如果目标文件被另一个进程命名,那么使用直接IO对其进行写入可能会导致数据丢失(通常是直接IO写入)。
  • 有些文件系统要么不支持直接IO,要么不正确地使用直接IO。第二种可能是在某些情况下的BTRFS,有时在使用直接IO时目标文件中会出现数据损坏。
  • 直接IO并不是普遍更快的。这里有很多东西在起作用,但通常情况下,直接IO速度较慢的常见情况是,处理的文件小到足以适应系统写回缓存,从而以非零搜索延迟来减缓存储速度。
  • 有时,常规IO的副作用是可取的。例如,如果目标文件处于缓慢存储状态,并且计划立即使用它,则这可能非常有用,在这种情况下,不使用直接IO意味着至少部分文件数据可能仍在页缓存中,从而节省了随后读取文件时的时间。如果您试图进行性能基准测试,这也很重要,因为许多事情不使用直接IO。
  • 如果您需要真正的可移植性,就不能依赖oflags=direct的可用性,因为它是Linux特有的扩展。
票数 3
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/713301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档