翻译自 : Linux I/O Performance Tests using dd

基本说明

dd 可以用来做简单的低级别复制文件. 这样做, 一般都是可一直直接访问设备文件. 需要说明的是, 错误的使用 dd造成数据的丢失. 强烈推介用以下描述的步骤来完成性能测试.

再强调一遍: 错误的使用dd, 会造成数据的丢失!

写性能测试

现代操作系统不是直接把数据写入 RAID 系统或者磁盘内, 当前未被使用的临时内存(temporary memory),会用来缓存读写数据.

所以, 如果要去除临时内存对于我们测试磁盘 I/O 的影响, 我们可以使用参数 oflag 参数来定义. 以下是 oflag 支持的标记: ( 具体可以 man dd )

  • direct : 对数据使用直接 I/O
  • dsync : 对数据使用同步 I/O
  • sync : 对数使用同步 I/O, 同样也适用于元数据

为了测试写性能, 数据需要从 /dev/zero 读入, 理想情况是将这些读入的数据写入空的 RAID 阵列, 物理磁盘, 分区 ( 比如使用参数 of=/dev/sda 指定一块磁盘, 或者 of=/dev/sda2 指定一个分区). 如果这些资源都比较紧张, 一个普通文件也可以被当做写入的目标 ( 比如 of=/root/testfile).

从安全考虑出发, 以下的例子使用 写入文件 的方式来测试磁盘性能. 所以写性能会稍微慢一些 ( 因为元数据需要写入文件系统).

重要 : 当写入对象是设备的时候(比如: /dev/sda) , 存储的数据都会丢失. 因此, 实验的对象最好是空的 RAID阵列, 硬盘, 分区.

说明

  • 当使用 if=/dev/zero, bs=1G 的时候, Linux 系统需要 1GB的空闲 RAM. 如果测试环境中没有足够的 RAM, 可以将 bs 的值设定小一些 ( 比如 512MB)
  • 为了获取更加真实的测试结果, 最好多测试几次( 比如 3-10 次). 这样做可以可以很快的发现异常值. 导致这些异常值得原因可能是因为定时任务, 中断 或者一般情况下的多进程运行. 这些都会影响测试结果. 一个极端的例子是, 避免这个问题是在测试的时候并行执行 updatedb

笔记本磁盘性能测试

一次写入 1GB 数据. 激活缓存 ( hdparm -W1 /dev/sda )

root@grml ~ # dd if=/dev/zero of=/root/testfile bs=1G count=1 oflag=direct
1+0 records in
1+0 records out
1073741824 bytes (1.1 GB) copied, 32.474 s, 33.1 MB/s

一次写入 1 GB 的数据. 关闭缓存 (hdparm -W0 /dev/sda)

root@grml ~ # dd if=/dev/zero of=/root/testfile bs=1G count=1 oflag=direct
1+0 records in
1+0 records out
1073741824 bytes (1.1 GB) copied, 123.37 s, 8.7 MB/s

512字节的数据写入1000次. 激活缓存( hdparm -W1 /dev/sda)

[root@localhost ~]# dd if=/dev/zero of=/root/testfile bs=512 count=1000 oflag=direct
1000+0 records in
1000+0 records out
512000 bytes (512 kB) copied, 0.317395 s, 1.6 MB/s

512字节的数据写入1000次. 关闭缓存( hdparm -W0 /dev/sda)

root@grml ~ # dd if=/dev/zero of=/root/testfile bs=512 count=1000 oflag=direct
1000+0 records in
1000+0 records out
512000 bytes (512 kB) copied, 11.1865 s, 45.8 kB/s

RAID10 性能测试

一次写入1GB文件.

test-sles10sp2:~ # dd if=/dev/zero of=/root/testfile bs=1G count=1 oflag=dsync
1+0 records in
1+0 records out
1073741824 bytes (1.1 GB) copied, 5.11273 seconds, 210 MB/s

512KB 写入 1000次

test-sles10sp2:~ # dd if=/dev/zero of=/root/testfile bs=512 count=1000 oflag=dsync
1000+0 records in
1000+0 records out
512000 bytes (512 kB) copied, 0.083902 seconds, 6.1 MB/s

读性能测试

使用 dd 测试读性能

test-sles10sp2:~ # dd if=/root/testfile of=/dev/null bs=512 count=1000
1+0 records in
1+0 records out
1073741824 bytes (1.1 GB) copied, 5.11273 seconds, 210 MB/s

使用 hdparm 测试磁盘读性能

[root@localhost ~]# hdparm -t /dev/sda

/dev/sda:
Timing buffered disk reads: 302 MB in 3.00 seconds = 100.51 MB/sec

Linux 中使用 dd 测试磁盘性能的更多相关文章

  1. 【转】dd命令详解及利用dd测试磁盘性能

    dd命令详解及利用dd测试磁盘性能   linux下dd命令详解 名称: dd 使用权限: 所有使用者 manpage 定义: convert and copy a file 使用方式: dd [op ...

  2. 使用SQLIO测试磁盘性能

    SQLIO 是一个用于测试存储系统能力的命令行工具,用以获取存储系统相关的性能指标,以判断系统的 I/O 处理能力. 在微软的网站可以下载 SQLIO 的安装包,安装后目录中会出现如下文件: EULA ...

  3. Linux如何查看与测试磁盘IO性能

    1. 查看磁盘 IO 性能 1.1 top 命令 top 命令通过查看 CPU 的 wa% 值来判断当前磁盘 IO 性能,如果这个数值过大,很可能是磁盘 IO 太高了,当然也可能是其他原因,例如网络 ...

  4. linux用dd测试磁盘速度

    [root@localhost ~]# time dd if=/dev/zero bs=1024 count=1000000 of=/1Gb.file记录了1000000+0 的读入记录了100000 ...

  5. 【Linux】time+dd测试硬盘读写速度

    dd 是 Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换. dd 命令通用语法格式如下: dd if=path/to/input_file ...

  6. iozone测试磁盘性能

    什么是iozone? iozone是一个文件系统的benchmark工具,可以测试不同的操作系统中文件系统的读写性能. 可以测试 Read, write, re-read,re-write, read ...

  7. 使用iozone测试磁盘性能

    IOzone是一个文件系统测试基准工具.可以测试不同的操作系统中文件系统的读写性能.可以通过 write, re-write, read, re-read, random read, random w ...

  8. 使用iozone测试磁盘性能(测试文件读写)

    IOzone是一个文件系统测试基准工具.可以测试不同的操作系统中文件系统的读写性能.可以通过 write, re-write, read, re-read, random read, random w ...

  9. 正确用DD测试磁盘读写速度

    转自:http://blogread.cn/it/article/6479?f=wb 问: 以下几种方式测试磁盘读写速度有什么区别? dd bs=1M count=128 if=/dev/zero o ...

随机推荐

  1. iOS开发CAAnimation类动画, CATransition动画

    #pragma mark - CAAnimation类.实现动画 #pragma mark ** CABasicAnimation 动画 - (IBAction)handleCABasicAnimat ...

  2. iOS-UISearchController用法

    import "ViewController.h" @interface ViewController ()<UITableViewDelegate,UITableViewD ...

  3. 3DMAX2016破解教程

    首先,断网. 然后,下载3DMAX2016注册机. 然后,打开已经安装的3DMAX2016,会出现下图,点击激活按钮. 之后,以管理员身份打开3DMAX2016注册机,把申请号复制到注册机里面的请求码 ...

  4. 3DMAX贴图无法显示

    问题描述:我在点击"将材质指定给选定对象"按钮之后,模型只是变灰了,没有显示出我贴的图. 原因是:没有显示贴图. 我的解决方案:点击材质编辑器里面的"视口中显示敏感处理材 ...

  5. idea快捷键操作

    在编写代码的时候直接输入psv就会看到一个psvm的提示,此时点击tab键一个main方法就写好了. psvm 也就是public static void main的首字母. 依次还有在方法体内键入f ...

  6. AppScan工作原理&操作教程

    一.AppScan的工作原理 对一个综合性的大型网站来说,可能存在成千上万的页面.以登录界面为例,至少要输入用户名和密码,即该页面存在两个字段,当提交了用户名和密码等登录信息,网站需要检查是否正确,这 ...

  7. C# 中的 Async 和 Await

    这篇文章由Filip Ekberg为DNC杂志编写. 自跟随着.NET 4.5 及Visual Studio 2012的C# 5.0起,我们能够使用涉及到async和await关键字的新的异步模式.有 ...

  8. BZOJ4700 适者(贪心+cdq分治+斜率优化)

    首先考虑怎么安排攻击顺序.显然如果攻击了某台兵器就应该一直连续攻击直到将其破坏,破坏所需时间可以直接算出来,设其为b.假设确定了某个破坏顺序,如果交换相邻两个兵器,显然不会对其他兵器造成影响,两种顺序 ...

  9. Luogu1731 NOI1999生日蛋糕(搜索)

    非常经典的剪枝题然而一直没有写.感觉自己连普及组水平都没有了. 1.半径和高枚举范围满足加上后总体积不超过n且剩下每层还能放. 2.半径从大到小枚举,因为体积正比于半径平方而面积正比于半径,大的半径更 ...

  10. UVA.129 Krypton Factor (搜索+暴力)

    UVA.129 Krypton Factor (搜索+暴力) 题意分析 搜索的策略是:优先找长串,若长串不合法,则回溯,继续找到合法串,直到找到所求合法串的编号,输出即可. 注意的地方就是合法串的判断 ...