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
    • 最新
    • 标签
主页 / server / 问题 / 568470
Accepted
amolkul
amolkul
Asked: 2014-01-20 23:56:15 +0800 CST2014-01-20 23:56:15 +0800 CST 2014-01-20 23:56:15 +0800 CST

为什么dd第一次显示磁盘速度慢?

  • 772

我正在使用 dd 命令检查 CentOS 6 上硬盘的磁盘速度。该设置是一个 DRBD 设置 - 此服务器是主服务器。为了确保获得正确的值,我使用不同的输出文件执行 dd 命令 3 次,然后取读/写时间的平均值。但是 dd 命令的第一次读取比下一次读取慢一个数量级。例如。

time -p dd if=/dev/zero of=/mailstore/testfile bs=16k count=16384
16384+0 records in
16384+0 records out
268435456 bytes (268 MB) copied, 88.5175 s,
3.0 MB/s
real 90.12
user 0.00
sys 0.66

time -p dd if=/dev/zero of=/mailstore/testfile1 bs=16k count=16384
16384+0 records in
16384+0 records out
268435456 bytes (268 MB) copied, 0.226015 s, 1.2 GB/s
real 0.30
user 0.00
sys 0.22


time -p dd if=/dev/zero of=/mailstore/testfile2 bs=16k count=16384
16384+0 records in
16384+0 records out
268435456 bytes (268 MB) copied, 0.22094 s, 1.2 GB/s
real 0.22
user 0.00
sys 0.21

这是正常的吗?我应该忽略第一次阅读并在那之后再读3次吗?

正如 poige 所建议的, dd 命令使用 opflag=direct 选项提供一致的输出。例如。

time -p dd if=/dev/zero of=/mailstore/filetest33 bs=16k count=16384 oflag=direct
16384+0 records in
16384+0 records out
268435456 bytes (268 MB) copied, 296.587 s, 905 kB/s
real 296.61
user 0.03
sys 1.07

time -p dd if=/dev/zero of=/mailstore/filetest44 bs=16k count=16384 oflag=direct
16384+0 records in
16384+0 records out
268435456 bytes (268 MB) copied, 260.308 s, 1.0 MB/s
real 260.42
user 0.04
sys 1.13

time -p dd if=/dev/zero of=/mailstore/filetest56 bs=16k count=16384 oflag=direct
16384+0 records in
16384+0 records out
268435456 bytes (268 MB) copied, 253.681 s, 1.1 MB/s
real 253.68
user 0.03
sys 1.06
performance
  • 2 2 个回答
  • 2497 Views

2 个回答

  • Voted
  1. Best Answer
    poige
    2014-01-21T00:00:19+08:002014-01-21T00:00:19+08:00

    dd具有direct要求内核绕过任何缓存并将数据直接发送到块设备的选项。如果您需要对设备而不是 RAM 进行基准测试,则必须使用它,例如:

    dd if=/dev/zero of=direct_output bs=1M count=100 oflag=direct

    • 5
  2. etherfish
    2014-01-21T06:38:53+08:002014-01-21T06:38:53+08:00

    所以,你说它是通过网络安装的。哪个文件系统,CIFS 或 NFS?不管怎样,我怀疑你可能已经被委派了文件。当您的客户端获得委托的文件时,它能够在本地缓存写入。但是,当您使用 O_DIRECT (这就是 oflag=direct 的意思)时,写入会立即发送到服务器,而不是任何缓存。

    无论哪种方式,都会发生一些奇怪的事情。除非您实际上仅使用 10Mbps 以太网,否则您应该获得超过 1.1MB/s 的速度。

    此外,您可以通过在另一个窗口中运行 killall -USR1 dd 来获取传输中的速度更新 如果您查看 dd 手册页,您会看到 USR1 信号不会终止/停止 dd 而是打印出 I/ Ø 统计。在等待大磁盘传输时,我经常这样做:

    睡觉10;做killall -USR1 dd;完毕

    哦,如果您怀疑磁盘缓存,请使用以下命令刷新 readcache: echo 1 > /proc/sys/vm/drop_caches

    祝你好运!

    • 0

相关问题

  • 基于 Microsoft 的服务器(IIS、MSSQL 等)上的病毒扫描应排除哪些内容?

  • jvm性能调优技巧/资源?

  • 加快 MSSQL 快照复制到 SQLExpress 副本的速度

  • 聚集索引与非聚集索引?

  • 使用大量 javascript 的页面上的鱿鱼速度很慢

Sidebar

Stats

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

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve