博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
测试磁盘读写性能
阅读量:2388 次
发布时间:2019-05-10

本文共 1807 字,大约阅读时间需要 6 分钟。

读性能测试

#
 time dd  iflag=direct,nonblock  if=/dev/sda2 of=/dev/null bs=8k count=8388608


因为/dev/sda2是一个物理分区,对它的读取会产生IO,/dev/null是伪设备,相当于黑洞,of到该设备不会产生IO,所以,这个命令的IO只发生在/dev/sdb1上,也相当于测试磁盘的读能力。


写测试


time dd oflag=direct,nonblock if=/dev/zero f=/opt/iotest bs=8k count=8388608 


因为/dev/zero是一个伪设备,它只产生空字符流,对它不会产生IO,所以,IO都会集中在of文件中,of文件只用于写,所以这个命令相当于测试磁盘的写能力。

 

读写测试


#
 time dd iflag=direct,nonblock oflag=direct,nonblock if=/dev/sda2 f=/opt/iotest bs=8k count=8388608  

 

注:bs是一次io读的规模,理论上bs越大,所测得性能越高        count是读多少个"bs",也可以写成count=16G

     

规避掉文件系统cache,直接读写,不使用buffer cache

iflag=direct,nonblock


oflag=direct,nonblock


iflag=cio


oflag=cio

 

direct 模式就是把写入请求直接封装成io 指令发到磁盘

非direct 模式,就把数据写入系统缓存,然后就认为io 成功,并由操作系统决定缓存中的数据什么时候被写入磁盘 



使用hdparm命令来查看硬盘缓存的读速度。



我建议你运行下面的命令2-3次来对设备读性能进行检测,以作为参照和相互比较:



### 有缓存的硬盘读性能测试——/dev/sda ###


hdparm -t /dev/sda1



## 或者 ##



hdparm -t /dev/sda





## Cache读基准——/dev/sda ###



hdparm -T /dev/sda1



## 或者 ##



hdparm -T /dev/sda





hdparm -Tt /dev/sda





为了获得精确的读测试数据,首先在测试前运行下列命令,来将缓存设置为无效:



flush

echo 3 | sudo tee /proc/sys/vm/drop_caches



time time dd if=/path/to/bigfile of=/dev/null bs=8k





### 带有Cache的Debian系统笔记本吞吐率###



dd if=/dev/zero of=/tmp/laptop.bin bs=1G count=1 oflag=direct



###使cache失效###



hdparm -W0 /dev/sda



###没有Cache的Debian系统笔记本吞吐率###



dd if=/dev/zero of=/tmp/laptop.bin bs=1G count=1 oflag=direct 







## 运行这个命令2-3次来获得更好地结果 ###



time sh -c "dd if=/dev/zero of=/tmp/testfile bs=100k count=1k && sync"  







//写



[root@localhost ~]#
 sync;/usr/bin/time -p bash -c "(dd if=/dev/zero of=test.dd bs=1M count=20000)"



记录了20000+0 的读入

记录了20000+0 的写出



20971520000字节(21 GB)已复制,10.2713 秒,2.0 GB/秒



real 10.27

user 0.00

sys 10.26



//读



[root@localhost ~]# 
echo 3 > /proc/sys/vm/drop_caches ; /usr/bin/time -p dd if=test.dd of=/dev/null bs=1M



记录了20000+0 的读入

记录了20000+0 的写出

20971520000字节(21 GB)已复制,23.9553 秒,875 MB/秒

real 23.98

user 0.00

sys 5.58


转载地址:http://hjpab.baihongyu.com/

你可能感兴趣的文章
查看python中模块的所有方法
查看>>
ceph对象存储的配置与S3、swift接口的使用
查看>>
python通过librados库通过底层的rados操作ceph的对象存储和块存储
查看>>
在客户端使用python来调用boto S3 API来操作librados库
查看>>
ceph存储数据的详细流程(CRUSH)
查看>>
linux内核模块详解
查看>>
ceph集群的扩展(centos7环境)
查看>>
linux命令之top(查看cpu、内存等负载)
查看>>
linux_详解find命令
查看>>
openstack的swift组件详解
查看>>
两大主流开源分布式存储的对比:GlusterFS vs. Ceph
查看>>
面试笔试动态规划问题--python篇
查看>>
linux下的svn常用命令使用指南
查看>>
阿里云iot事业部一面面经
查看>>
《云计算架构技术与实践》
查看>>
《云计算架构技术与实践》序言(李德毅院士)
查看>>
《云计算架构技术与实践》连载(2):1.2 云计算的发展趋势
查看>>
《跨界杂谈》企业商业模式(七):其他
查看>>
STL介绍 - map
查看>>
ssh 命令的用法
查看>>