1. dd硬盘读写测速(不做实际读写):

测试纯写入性能

dd if=/dev/zero of=/dev/sdb bs=1M count=10240 oflag=direct

测试纯读取性能

dd if=/dev/sdb of=/dev/null bs=1M count=10240 iflag=direct

2. dd格式化硬盘

dd if=/dev/zero of=/dev/sdb bs=1M count=1024

3. dd复制,块级复制,只能复制文件,不能复制目录

[root@localhost ~]# echo 12345 > test.txt
[root@localhost ~]# dd if=test.txt of=dd_test.txt
0+1 records in
0+1 records out
6 bytes (6 B) copied, 0.000176888 s, 33.9 kB/s
[root@localhost ~]# cat dd_test.txt
12345
[root@localhost ~]#

4. dd扩展

4.1、
dd bs=8k count=4k if=/dev/zero of=test.log conv=fsync 
加入这个参数后,dd命令执行到最后会真正执行一次“同步(sync)”操作,,这样算出来的时间才是比较符合实际使用结果的。conv=fsync表示把文件的“数据”和“metadata”都写入磁盘(metadata包括size、访问时间st_atime & st_mtime等等),因为文件的数据和metadata通常存在硬盘的不同地方,因此fsync至少需要两次IO写操作,fsync 与fdatasync相差不大。(重要,最有参考价值)

4.2、
dd bs=8k count=4k if=/dev/zero of=test.log conv=fdatasync
加入这个参数后,dd命令执行到最后会真正执行一次“同步(sync)”操作,,这样算出来的时间才是比较符合实际使用结果的。conv=fdatasync表示只把文件的“数据”写入磁盘,fsync 与fdatasync相差不大。(重要,最有参考价值)

4.3、

dd bs=8k count=4k if=/dev/zero of=test.log oflag=dsync

加入这个参数后,dd在执行时每次都会进行同步写入操作。每次读取8k后就要先把这8k写入磁盘,然后再读取下面一个8k,一共重复4K次,生成一个32M文件。这是最慢的一种方式了,基本上没有用到写缓存(write cache)。也是比较准确的。

conv=fdatasync与oflag=dsync的区别在于:sync函数只是将所有修改过的块缓冲区排入写队列,然后就返回,它并不等待实际写磁盘操作结束。fsync函数只对由文件描述符filedes指定的单一文件起作用,并且等待写磁盘操作结束,然后返回。所以看到的fdatasync速度比dsync好。

4.4、
dd bs=8k count=4k if=/dev/zero of=test
没有加任何参数,dd默认的方式不包括“同步(sync)”命令(没加关于操作系统“写缓存”的参数,默认“写缓存”启作用),也就是说,dd命令完成前并没有让系统真正把文件写到磁盘上。dd先把数据写到操作系统“写缓存”,就完成了写操作。所以以上命令只是单纯地把数据读到内存缓冲当中(写缓存[write cache])。通常称为update的系统守护进程会周期性地(一般每隔30秒)调用sync函数,把“写缓存”中的数据刷入磁盘。

因为“写缓存”起作用,会测试出一个超快的性能。因为dd给的只是读取速度,直到dd完成后系统才开始真正往磁盘上写数据,但这个速度是看不到了。

fdatasync 、fsync 、dsync 几种方式,建议用哪种呢?

建议dd bs=8k count=4k  if=/dev/zero of=test.log conv=fdatasync

因为这种方式最接近计算机实际操作,所以测出来的数据最有参考价值。??

  1. dd if=/dev/zero of=test bs=64k count=16k
  这个很不准确的,因为命令结束的时候数据还没有真正写到磁盘上去

  2. dd if=/dev/zero of=test bs=64k count=16k conv=fsync
  这个还算准确,数据已经写入磁盘

  3. dd if=/dev/zero of=test bs=64k count=4k oflag=dsync
  这个可以当成是模拟数据库插入操作,所以很慢  

-dsync 可以当成是模拟数据库插入操作,在/dev/zone中读出一条数据就立即写入硬盘

-fsync 同样也是将数据已经写入磁盘,但是是在经过缓存后最后再写入硬盘

5. 监控磁盘IO

dstat

参考链接:https://www.cnblogs.com/kongzhongqijing/articles/9049336.html

dd格式化硬盘的更多相关文章

  1. com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'dd' in 'where clause'

    今天在使用mysql数据库查找数据的时候报错,错误信息如下: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown co ...

  2. DIV+CSS中标签dl dt dd常用的用法

    转自:http://smallpig301.blog.163.com/blog/static/9986093201010262499229/ < dl>< /dl>用来创建一个 ...

  3. 使用dd命令备份Linux分区

    为了备份分区,开始使用的是Remastersys,但最终生成的iso文件仅有几十K,应该是软件bug,且此软件不再更新,后尝试使用Linux Respin,但github一直连接不上. 其实可以尝试使 ...

  4. linux dd命令详解

    Linux-dd命令详解 dd 是 Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换. 名称: dd 使用权限: 所有使用者dd 这个指令在 ...

  5. linux dd 命令详解

    dd 是 Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换. 名称: dd 使用权限: 所有使用者dd 这个指令在 manual 里的定义是 ...

  6. Linux操作系统备份之三:通过二进制拷贝(dd)方式实现Linux操作系统数据的备份

    前面有两篇文章,<Linux操作系统备份之一:使用LVM快照实现Linux操作系统数据的在线备份>和<Linux操作系统备份之二:通过tar拷贝分区实现Linux操作数据的在线备份& ...

  7. HTML 列表 <ol><ul><li><dl><dt><dd>

    <ol>标签-有序列表 定义和用法: <ol>标签定义有序列表. HTML 与 XHTML 之间的差异 在 HTML 4.01 中,ol 元素的 "compact&q ...

  8. 领域驱动(DD)目录

    领域驱动(DD)目录 1.领域驱动概念 2.通用语言 3.限定上下文

  9. 将yyyyMMdd,dd/MM/yyyy 类型字符串转换为datetime 类型 yyyy-MM-dd C#

    DateTime ConvertDate = DateTime.ParseExact(", "yyyyMMdd", null, System.Globalization. ...

  10. linux命令-dd {拷贝并替换}

    一 命令解释: dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换. 注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512:c=1:k=1024:w=2 参数注释: if=文 ...

随机推荐

  1. KingbaseES R6 集群启动‘incorrect command permissions for the virtual ip’故障案例

    案例说明: KingbaseES R6集群启动时,出现"incorrect command permissions for the virtual ip"故障,本案例介绍了如何分析 ...

  2. 一文搞懂mysql索引底层逻辑,干货满满!

    一.什么是索引 在mysql中,索引是一种特殊的数据库结构,由数据表中的一列或多列组合而成,可以用来快速查询数据表中有某一特定值的记录.通过索引,查询数据时不用读完记录的所有信息,而只是查询索引列即可 ...

  3. Centos下使用containerd管理容器:5分钟从docker转型到containerd

    目录 一.系统环境 二.前言 三.containerd 四.部署containerd 4.1 安装containerd 4.2 containerd配置文件 4.3 配置containerd阿里云镜像 ...

  4. 用VBA在PowerPoint中实现日期时间秒级动态显示

    '*********************************************************** 使用说明 ********************************** ...

  5. Windows Server体验之升级安装

    由于Windows Server的版本是每半年更新的,而微软对于产品的支持周期又是有限的.比如Windows Server 1803的主流支持只到2019年11月12日.也就是说,最多1年半,就需要更 ...

  6. 《网页设计基础——CSS常用语法》

    网页设计基础--CSS常用语法       一.注释: 例如: /* 在此处书写注释 */     二.清除浏览器默认设置: 例如: *{ /* 全局声明 */ margin: 0; padding: ...

  7. 基于OpenHarmony的智能喝水提醒器

    一.硬件说明 Neptune OpenHarmony物联网IOT模组Wi-Fi&蓝牙双模开发板.超声波模块.蜂鸣器模块.杜邦线若干 开发板相关资料:https://gitee.com/hiho ...

  8. kubeoperator升级步骤

    当前kubeoperator版本是3.6.0 官方文档:https://kubeoperator.io/docs/installation/install/ # 离线升级需要提前下载离线安装包,并解压 ...

  9. Ceph分布式存储详述

    存储发展史 企业中使用存储按照其功能,使用场景,一直在持续发展和迭代,大体上可以分为四个阶段: DAS:Direct Attached Storage,即直连存储,第一代存储系统,通过SCSI总线扩展 ...

  10. logstash 读取MySQL数据到elasticsearch 相差8小时解决办法

    logstash和elasticsearch是按照UTC时间的,kibana却是按照正常你所在的时区显示的,是因为kibana中可以配置时区信息. 具体看这个: logstash 的配置文件添加 fi ...