Linux下dd查看磁盘的读写性能
最近在进行海量小文件相关的性能测试,执行性能测试前首先要确认设备的硬件配置是否满足要求(具体方法可以参考性能测试第一步——查看设备的硬件配置)。除此之外还要确认是否存在网络瓶颈(iperf、iperf3)、磁盘读写瓶颈。所以今天来分享一下Linux下查看磁盘的读写性能的方法。一、准备工作首先要确认是否要组RAID进行性能测试,要组的话组应该选什么级别的RAID。关于RAID的介绍可以参考什么是RA
最近在进行海量小文件相关的性能测试,执行性能测试前首先要确认设备的硬件配置是否满足要求(具体方法可以参考性能测试第一步——查看设备的硬件配置)。
除此之外还要确认是否存在网络瓶颈(iperf、iperf3)、磁盘读写瓶颈。所以今天来分享一下Linux下查看磁盘的读写性能的方法。
一、准备工作
首先要确认是否要组RAID进行性能测试,要组的话应该选什么级别的RAID。
关于RAID的介绍可以参考什么是RAID及创建RAID的方法
如果你想获得最好的读写性能,RAID0是很好的选择,理论上磁盘个数越多,RAID0的读写性能越好;如果既想保证读写性能,又想保证数据的安全性,一般可以选择RAID5。
备注:下面的例子是在RAID0的基础上测试的。
二、测试磁盘写性能
time dd if=/dev/zero bs=2M count=51200 of=/data1/100G.file
- time命令 在dd命令启动时开始计时,直到dd命令结束
- dd命令 Linux dd 命令用于读取、转换并输出数据。dd 可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出
- if=/dev/zero 输入文件名,即指定源文件。因为是测试写数据,所以这里选择/dev/zero这个伪文件
- bs 设置写数据块的大小,如上图也就是每次写入2M数据
- count 设置执行次数,反复执行51200次(每次2M,总共就是100G)
- of=/data1/100G.file 输出文件名,即指定目标文件。/data1是我在RAID0上面挂载出来的一个目录,最终的100G数据会输出到100G.file这个文件里
命令执行完成之后可以看到这组RAID0的写速度为1.1GB/s,写入耗时101.453s。
三、测试磁盘读性能
time dd if=/data1/100G.file bs=2M count=51200 of=/dev/null
- time命令 在dd命令启动时开始计时,直到dd命令结束
- dd命令 Linux dd 命令用于读取、转换并输出数据。dd 可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出
- if=/data1/100G.file 输入文件名,即指定源文件。因为是测试读速度,所以需要选择一个已有数据的文件(我这里选择了第二节写入的100G.file)
- bs 设置读数据块的大小,如上图也就是每次写入2M数据
- count 设置执行次数,反复执行51200次(每次读2M,总共就是100G)
- of=/dev/null 输出文件名,即指定目标文件。这里选择/dev/null这个空设备。
命令执行完成之后可以看到这组RAID0的读速度为3.6GB/s,写入耗时29.9868s。
至于为什么测出来的读速度比写速度更快,我的理解是和去电影院看电影一样,入场的时候要先找位置才能坐下,所以入场的速度总比散场的时候慢。这么一想,原来事物的原理都是相似的🤔
更多推荐
所有评论(0)