文档章节

硬盘IO性能测试---总结

臧教授
 臧教授
发布于 2017/04/05 09:51
字数 2169
阅读 15
收藏 0
  1. dd命令的调用流程

 

上图中的f_op数据结构是在open一个文件或设备时赋值的,其中的read, write等指向真正的操作该文件的函数。通过这个流程图,我们可以看出该设备或文件的驱动实现了标准的读写函数,就可以利用dd进行读写

 

./ktap -s scsi:scsi_dispatch_cmd_done  

同时运行dd命令,进行写操作

#dd if=/dev/zero of=test bs=1024 count=10  

ktap跟踪的输出结果如下:

  1. 6       0       swapper/6       scsi_dispatch_cmd_done: host_no=0 channel=1 id=0 lun=0 data_sgl=127 prot_sgl=0 prot_op=SCSI_PROT_NORMAL cmnd=(WRITE_10 lba=345327616 txlen=1024 protect=0 raw=2a 00 14 95 48 00 00 04 00 00) result=(driver=DRIVER_OK host=DID_OK message=COMMAND_COMPLETE status=SAM_STAT_GOOD)  
  2. 6       0       swapper/6       scsi_dispatch_cmd_done: host_no=0 channel=1 id=0 lun=0 data_sgl=128 prot_sgl=0 prot_op=SCSI_PROT_NORMAL cmnd=(WRITE_10 lba=345328640 txlen=1024 protect=0 raw=2a 00 14 95 4c 00 00 04 00 00) result=(driver=DRIVER_OK host=DID_OK message=COMMAND_COMPLETE status=SAM_STAT_GOOD)  
  3. 6       0       swapper/6       scsi_dispatch_cmd_done: host_no=0 channel=1 id=0 lun=0 data_sgl=128 prot_sgl=0 prot_op=SCSI_PROT_NORMAL cmnd=(WRITE_10 lba=345329664 txlen=1024 protect=0 raw=2a 00 14 95 50 00 00 04 00 00) result=(driver=DRIVER_OK host=DID_OK message=COMMAND_COMPLETE status=SAM_STAT_GOOD)  
  4. 6       0       swapper/6       scsi_dispatch_cmd_done: host_no=0 channel=1 id=0 lun=0 data_sgl=128 prot_sgl=0 prot_op=SCSI_PROT_NORMAL cmnd=(WRITE_10 lba=345330688 txlen=1024 protect=0 raw=2a 00 14 95 54 00 00 04 00 00) result=(driver=DRIVER_OK host=DID_OK message=COMMAND_COMPLETE status=SAM_STAT_GOOD)  
  5. 6       0       swapper/6       scsi_dispatch_cmd_done: host_no=0 channel=1 id=0 lun=0 data_sgl=128 prot_sgl=0 prot_op=SCSI_PROT_NORMAL cmnd=(WRITE_10 lba=345331712 txlen=1024 protect=0 raw=2a 00 14 95 58 00 00 04 00 00) result=(driver=DRIVER_OK host=DID_OK message=COMMAND_COMPLETE status=SAM_STAT_GOOD)  
  6. 6       0       swapper/6       scsi_dispatch_cmd_done: host_no=0 channel=1 id=0 lun=0 data_sgl=128 prot_sgl=0 prot_op=SCSI_PROT_NORMAL cmnd=(WRITE_10 lba=345332736 txlen=1024 protect=0 raw=2a 00 14 95 5c 00 00 04 00 00) result=(driver=DRIVER_OK host=DID_OK message=COMMAND_COMPLETE status=SAM_STAT_GOOD)  
  7. 6       0       swapper/6       scsi_dispatch_cmd_done: host_no=0 channel=1 id=0 lun=0 data_sgl=127 prot_sgl=0 prot_op=SCSI_PROT_NORMAL cmnd=(WRITE_10 lba=345333760 txlen=1024 protect=0 raw=2a 00 14 95 60 00 00 04 00 00) result=(driver=DRIVER_OK host=DID_OK message=COMMAND_COMPLETE status=SAM_STAT_GOOD)  
  8. 6       0       swapper/6       scsi_dispatch_cmd_done: host_no=0 channel=1 id=0 lun=0 data_sgl=128 prot_sgl=0 prot_op=SCSI_PROT_NORMAL cmnd=(WRITE_10 lba=345334784 txlen=1024 protect=0 raw=2a 00 14 95 64 00 00 04 00 00) result=(driver=DRIVER_OK host=DID_OK message=COMMAND_COMPLETE status=SAM_STAT_GOOD)  
  9. 6       0       swapper/6       scsi_dispatch_cmd_done: host_no=0 channel=1 id=0 lun=0 data_sgl=128 prot_sgl=0 prot_op=SCSI_PROT_NORMAL cmnd=(WRITE_10 lba=345335808 txlen=1024 protect=0 raw=2a 00 14 95 68 00 00 04 00 00) result=(driver=DRIVER_OK host=DID_OK message=COMMAND_COMPLETE status=SAM_STAT_GOOD)  
  10. 6       0       swapper/6       scsi_dispatch_cmd_done: host_no=0 channel=1 id=0 lun=0 data_sgl=128 prot_sgl=0 prot_op=SCSI_PROT_NORMAL cmnd=(WRITE_10 lba=345336832 txlen=1024 protect=0 raw=2a 00 14 95 6c 00 00 04 00 00) result=(driver=DRIVER_OK host=DID_OK message=COMMAND_COMPLETE status=SAM_STAT_GOOD)  
  11. 6       0       swapper/6       scsi_dispatch_cmd_done: host_no=0 channel=1 id=0 lun=0 data_sgl=128 prot_sgl=0 prot_op=SCSI_PROT_NORMAL cmnd=(WRITE_10 lba=345337856 txlen=1024 protect=0 raw=2a 00 14 95 70 00 00 04 00 00) result=(driver=DRIVER_OK host=DID_OK message=COMMAND_COMPLETE status=SAM_STAT_GOOD)  
  12. 6       0       swapper/6       scsi_dispatch_cmd_done: host_no=0 channel=1 id=0 lun=0 data_sgl=128 prot_sgl=0 prot_op=SCSI_PROT_NORMAL cmnd=(WRITE_10 lba=345338880 txlen=1024 protect=0 raw=2a 00 14 95 74 00 00 04 00 00) result=(driver=DRIVER_OK host=DID_OK message=COMMAND_COMPLETE status=SAM_STAT_GOOD)  
  13. 6       0       swapper/6       scsi_dispatch_cmd_done: host_no=0 channel=1 id=0 lun=0 data_sgl=128 prot_sgl=0 prot_op=SCSI_PROT_NORMAL cmnd=(WRITE_10 lba=345339904 txlen=1024 protect=0 raw=2a 00 14 95 78 00 00 04 00 00) result=(driver=DRIVER_OK host=DID_OK message=COMMAND_COMPLETE status=SAM_STAT_GOOD)  
  14. 6       0       swapper/6       scsi_dispatch_cmd_done: host_no=0 channel=1 id=0 lun=0 data_sgl=128 prot_sgl=0 prot_op=SCSI_PROT_NORMAL cmnd=(WRITE_10 lba=345340928 txlen=1024 protect=0 raw=2a 00 14 95 7c 00 00 04 00 00) result=(driver=DRIVER_OK host=DID_OK message=COMMAND_COMPLETE status=SAM_STAT_GOOD)  
  15. 6       0       swapper/6       scsi_dispatch_cmd_done: host_no=0 channel=1 id=0 lun=0 data_sgl=128 prot_sgl=0 prot_op=SCSI_PROT_NORMAL cmnd=(WRITE_10 lba=345341952 txlen=1024 protect=0 raw=2a 00 14 95 80 00 00 04 00 00) result=(driver=DRIVER_OK host=DID_OK message=COMMAND_COMPLETE status=SAM_STAT_GOOD)  
  16. 6       0       swapper/6       scsi_dispatch_cmd_done: host_no=0 channel=1 id=0 lun=0 data_sgl=128 prot_sgl=0 prot_op=SCSI_PROT_NORMAL cmnd=(WRITE_10 lba=345342976 txlen=1024 protect=0 raw=2a 00 14 95 84 00 00 04 00 00) result=(driver=DRIVER_OK host=DID_OK message=COMMAND_COMPLETE status=SAM_STAT_GOOD)  
  17. 6       0       swapper/6       scsi_dispatch_cmd_done: host_no=0 channel=1 id=0 lun=0 data_sgl=128 prot_sgl=0 prot_op=SCSI_PROT_NORMAL cmnd=(WRITE_10 lba=345344000 txlen=1024 protect=0 raw=2a 00 14 95 88 00 00 04 00 00) result=(driver=DRIVER_OK host=DID_OK message=COMMAND_COMPLETE status=SAM_STAT_GOOD)  
  18. 6       0       swapper/6       scsi_dispatch_cmd_done: host_no=0 channel=1 id=0 lun=0 data_sgl=128 prot_sgl=0 prot_op=SCSI_PROT_NORMAL cmnd=(WRITE_10 lba=345345024 txlen=1024 protect=0 raw=2a 00 14 95 8c 00 00 04 00 00) result=(driver=DRIVER_OK host=DID_OK message=COMMAND_COMPLETE status=SAM_STAT_GOOD)  
  19. 6       0       swapper/6       scsi_dispatch_cmd_done: host_no=0 channel=1 id=0 lun=0 data_sgl=116 prot_sgl=0 prot_op=SCSI_PROT_NORMAL cmnd=(WRITE_10 lba=345346048 txlen=1024 protect=0 raw=2a 00 14 95 90 00 00 04 00 00) result=(driver=DRIVER_OK host=DID_OK message=COMMAND_COMPLETE status=SAM_STAT_GOOD)  
  20. 6       0       swapper/6       scsi_dispatch_cmd_done: host_no=0 channel=1 id=0 lun=0 data_sgl=63 prot_sgl=0 prot_op=SCSI_PROT_NORMAL cmnd=(WRITE_10 lba=345347072 txlen=1024 protect=0 raw=2a 00 14 95 94 00 00 04 00 00) result=(driver=DRIVER_OK host=DID_OK message=COMMAND_COMPLETE status=SAM_STAT_GOOD)  


通过读取lba数值,可以查看到地址是连续的,从而可以得知dd在写数据过程是连续的IO;

 

在来看看读操作

 输入dd命令

 

  1. #dd iflag=direct,nonblock if=test of=/dev/zero bs=1M count=10  

 

 

  1. 1       0       swapper/1       scsi_dispatch_cmd_done: host_no=0 channel=1 id=0 lun=0 data_sgl=128 prot_sgl=0 prot_op=SCSI_PROT_NORMAL cmnd=(READ_10 lba=345327616 txlen=1024 protect=0 raw=28 00 14 95 48 00 00 04 00 00) result=(driver=DRIVER_OK host=DID_OK message=COMMAND_COMPLETE status=SAM_STAT_GOOD)  
  2. 1       0       swapper/1       scsi_dispatch_cmd_done: host_no=0 channel=1 id=0 lun=0 data_sgl=117 prot_sgl=0 prot_op=SCSI_PROT_NORMAL cmnd=(READ_10 lba=345328640 txlen=1024 protect=0 raw=28 00 14 95 4c 00 00 04 00 00) result=(driver=DRIVER_OK host=DID_OK message=COMMAND_COMPLETE status=SAM_STAT_GOOD)  
  3. 1       0       swapper/1       scsi_dispatch_cmd_done: host_no=0 channel=1 id=0 lun=0 data_sgl=128 prot_sgl=0 prot_op=SCSI_PROT_NORMAL cmnd=(READ_10 lba=345329664 txlen=1024 protect=0 raw=28 00 14 95 50 00 00 04 00 00) result=(driver=DRIVER_OK host=DID_OK message=COMMAND_COMPLETE status=SAM_STAT_GOOD)  
  4. 1       0       swapper/1       scsi_dispatch_cmd_done: host_no=0 channel=1 id=0 lun=0 data_sgl=117 prot_sgl=0 prot_op=SCSI_PROT_NORMAL cmnd=(READ_10 lba=345330688 txlen=1024 protect=0 raw=28 00 14 95 54 00 00 04 00 00) result=(driver=DRIVER_OK host=DID_OK message=COMMAND_COMPLETE status=SAM_STAT_GOOD)  
  5. 1       0       swapper/1       scsi_dispatch_cmd_done: host_no=0 channel=1 id=0 lun=0 data_sgl=128 prot_sgl=0 prot_op=SCSI_PROT_NORMAL cmnd=(READ_10 lba=345331712 txlen=1024 protect=0 raw=28 00 14 95 58 00 00 04 00 00) result=(driver=DRIVER_OK host=DID_OK message=COMMAND_COMPLETE status=SAM_STAT_GOOD)  
  6. 1       0       swapper/1       scsi_dispatch_cmd_done: host_no=0 channel=1 id=0 lun=0 data_sgl=117 prot_sgl=0 prot_op=SCSI_PROT_NORMAL cmnd=(READ_10 lba=345332736 txlen=1024 protect=0 raw=28 00 14 95 5c 00 00 04 00 00) result=(driver=DRIVER_OK host=DID_OK message=COMMAND_COMPLETE status=SAM_STAT_GOOD)  
  7. 1       0       swapper/1       scsi_dispatch_cmd_done: host_no=0 channel=1 id=0 lun=0 data_sgl=128 prot_sgl=0 prot_op=SCSI_PROT_NORMAL cmnd=(READ_10 lba=345333760 txlen=1024 protect=0 raw=28 00 14 95 60 00 00 04 00 00) result=(driver=DRIVER_OK host=DID_OK message=COMMAND_COMPLETE status=SAM_STAT_GOOD)  
  8. 1       0       swapper/1       scsi_dispatch_cmd_done: host_no=0 channel=1 id=0 lun=0 data_sgl=117 prot_sgl=0 prot_op=SCSI_PROT_NORMAL cmnd=(READ_10 lba=345334784 txlen=1024 protect=0 raw=28 00 14 95 64 00 00 04 00 00) result=(driver=DRIVER_OK host=DID_OK message=COMMAND_COMPLETE status=SAM_STAT_GOOD)  
  9. 1       0       swapper/1       scsi_dispatch_cmd_done: host_no=0 channel=1 id=0 lun=0 data_sgl=128 prot_sgl=0 prot_op=SCSI_PROT_NORMAL cmnd=(READ_10 lba=345335808 txlen=1024 protect=0 raw=28 00 14 95 68 00 00 04 00 00) result=(driver=DRIVER_OK host=DID_OK message=COMMAND_COMPLETE status=SAM_STAT_GOOD)  
  10. 1       0       swapper/1       scsi_dispatch_cmd_done: host_no=0 channel=1 id=0 lun=0 data_sgl=117 prot_sgl=0 prot_op=SCSI_PROT_NORMAL cmnd=(READ_10 lba=345336832 txlen=1024 protect=0 raw=28 00 14 95 6c 00 00 04 00 00) result=(driver=DRIVER_OK host=DID_OK message=COMMAND_COMPLETE status=SAM_STAT_GOOD)  
  11. 1       0       swapper/1       scsi_dispatch_cmd_done: host_no=0 channel=1 id=0 lun=0 data_sgl=128 prot_sgl=0 prot_op=SCSI_PROT_NORMAL cmnd=(READ_10 lba=345337856 txlen=1024 protect=0 raw=28 00 14 95 70 00 00 04 00 00) result=(driver=DRIVER_OK host=DID_OK message=COMMAND_COMPLETE status=SAM_STAT_GOOD)  
  12. 1       0       swapper/1       scsi_dispatch_cmd_done: host_no=0 channel=1 id=0 lun=0 data_sgl=117 prot_sgl=0 prot_op=SCSI_PROT_NORMAL cmnd=(READ_10 lba=345338880 txlen=1024 protect=0 raw=28 00 14 95 74 00 00 04 00 00) result=(driver=DRIVER_OK host=DID_OK message=COMMAND_COMPLETE status=SAM_STAT_GOOD)  
  13. 1       0       swapper/1       scsi_dispatch_cmd_done: host_no=0 channel=1 id=0 lun=0 data_sgl=128 prot_sgl=0 prot_op=SCSI_PROT_NORMAL cmnd=(READ_10 lba=345339904 txlen=1024 protect=0 raw=28 00 14 95 78 00 00 04 00 00) result=(driver=DRIVER_OK host=DID_OK message=COMMAND_COMPLETE status=SAM_STAT_GOOD)  
  14. 1       0       swapper/1       scsi_dispatch_cmd_done: host_no=0 channel=1 id=0 lun=0 data_sgl=117 prot_sgl=0 prot_op=SCSI_PROT_NORMAL cmnd=(READ_10 lba=345340928 txlen=1024 protect=0 raw=28 00 14 95 7c 00 00 04 00 00) result=(driver=DRIVER_OK host=DID_OK message=COMMAND_COMPLETE status=SAM_STAT_GOOD)  
  15. 1       0       swapper/1       scsi_dispatch_cmd_done: host_no=0 channel=1 id=0 lun=0 data_sgl=128 prot_sgl=0 prot_op=SCSI_PROT_NORMAL cmnd=(READ_10 lba=345341952 txlen=1024 protect=0 raw=28 00 14 95 80 00 00 04 00 00) result=(driver=DRIVER_OK host=DID_OK message=COMMAND_COMPLETE status=SAM_STAT_GOOD)  
  16. 1       0       swapper/1       scsi_dispatch_cmd_done: host_no=0 channel=1 id=0 lun=0 data_sgl=117 prot_sgl=0 prot_op=SCSI_PROT_NORMAL cmnd=(READ_10 lba=345342976 txlen=1024 protect=0 raw=28 00 14 95 84 00 00 04 00 00) result=(driver=DRIVER_OK host=DID_OK message=COMMAND_COMPLETE status=SAM_STAT_GOOD)  
  17. 1       0       swapper/1       scsi_dispatch_cmd_done: host_no=0 channel=1 id=0 lun=0 data_sgl=128 prot_sgl=0 prot_op=SCSI_PROT_NORMAL cmnd=(READ_10 lba=345344000 txlen=1024 protect=0 raw=28 00 14 95 88 00 00 04 00 00) result=(driver=DRIVER_OK host=DID_OK message=COMMAND_COMPLETE status=SAM_STAT_GOOD)  
  18. 1       0       swapper/1       scsi_dispatch_cmd_done: host_no=0 channel=1 id=0 lun=0 data_sgl=117 prot_sgl=0 prot_op=SCSI_PROT_NORMAL cmnd=(READ_10 lba=345345024 txlen=1024 protect=0 raw=28 00 14 95 8c 00 00 04 00 00) result=(driver=DRIVER_OK host=DID_OK message=COMMAND_COMPLETE status=SAM_STAT_GOOD)  
  19. 1       0       swapper/1       scsi_dispatch_cmd_done: host_no=0 channel=1 id=0 lun=0 data_sgl=128 prot_sgl=0 prot_op=SCSI_PROT_NORMAL cmnd=(READ_10 lba=345346048 txlen=1024 protect=0 raw=28 00 14 95 90 00 00 04 00 00) result=(driver=DRIVER_OK host=DID_OK message=COMMAND_COMPLETE status=SAM_STAT_GOOD)  
  20. 1       0       swapper/1       scsi_dispatch_cmd_done: host_no=0 channel=1 id=0 lun=0 data_sgl=117 prot_sgl=0 prot_op=SCSI_PROT_NORMAL cmnd=(READ_10 lba=345347072 txlen=1024 protect=0 raw=28 00 14 95 94 00 00 04 00 00) result=(driver=DRIVER_OK host=DID_OK message=COMMAND_COMPLETE status=SAM_STAT_GOOD)  

 

通过读取lba数值,可以看到dd的读io也是顺序的!

 

从而证明了dd在默认情况下是进行顺序读写测试的。

© 著作权归作者所有

共有 人打赏支持
臧教授
粉丝 8
博文 24
码字总数 31409
作品 0
朝阳
程序员
私信 提问
如何测试云硬盘

问题 UOS公有云开放以来,一些用户反应用dd命令测试出来的1TB云硬盘的吞吐率(MBPS)只有128MB/s,而不是我们SLA保证的170MB /s ,这是为什么?下面我会简单介绍如何测试硬盘,RAID,SAN,SSD...

ning235
2014/10/23
0
0
云硬盘总结【腾讯云】

产品概述: 云硬盘(Cloud Block Storage)简称CBS为一款存储设备。具有高可用、高可靠、低成本、可定制话的块存储 可以做云服务器的独立可扩展硬盘使用。 采用的三副本分布机制,提高数据的...

Yfblog
2017/12/21
0
0
磁盘性能指标--IOPS、吞吐量及测试

一、概念介绍: 磁盘性能指标--IOPS ---------------------------------------------------------- IOPS (Input/Output Per Second)即每秒的输入输出量(或读写次数),是衡量磁盘性能的主要指...

wushank
2018/06/29
0
0
一键测试脚本bench.sh

经过几个版本的演化,一键测试脚本 bench.sh 已经几乎全面适用于各种 Linux 发行版的网络(下行)和 IO 测试。 并将测试结果以较为美观的方式显示出来。 总结一下 bench.sh 特点: 1、显示当...

vshcxl
2016/12/19
103
0
gkvdb性能测试(v1.5)

gkvdb v1.5版本之后增加了binlog和事务支持,并且整合了缓存功能,整体性能得到极大提升,以下是gkvdb v1.5的性能测试报告,包括与leveldb的性能对比。 此外,本次数据库性能测试对比中去掉了...

John
2017/11/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Batch @EnableBatchIntegration 注解

设置一个远程分块任务需要定义一系列的 beans: 一个连接工程来从消息中间件中获得连接,消息中间件包括有(JMS,AMQP 和其他) 一个 MessagingTemplate 来从主向从发送消息,然后再次发送回...

honeymose
42分钟前
1
0
【剑指offer纪念版】--9 斐波那契数列

题目:斐波那契数列 题目:写一个函数,输入n,求斐波那契(Fibonacci)数列的第n项。斐波那契数列的定义如下:  求解 通过求解第10项的调用过程图来分析: package aigorithm;public cla...

细节探索者
47分钟前
1
0
浏览器缓存

HTTP缓存类型 200 from cache:直接从本地缓存获取响应,可细分为from disk cache, from memory cache 304 Not Modified:协商缓存,本地未命中发送校验数据到服务端,如果服务端数据没有改变,则读...

关元
今天
3
0
正则表达式简单使用说明

在Python3里确实简单明了,测试样例如下 # 正则content = 'Hello 1234567 World_This is a Regex Demo'# 贪婪匹配 尽可能多的匹配result = re.match('^He.*(\d+).*Demo$', co......

轻轻的往前走
今天
3
0
多线程创建方式

一、基本概念 进程:就是正在运行的应用程序,进程是线程的集合。 线程:就是进程中的一条执行路径,一个独立的执行单元。 多线程:就是为了提高程序的效率,使用多线程,每个线程互不影响,...

秋至丶枫以落
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部