关键词:
1 引言
应需求,在海思板子上测试SATA读写速度,用dd指令,每次分别读/写不同大小的块 (bs),同时检测运行dd命令CPU占比,记录读/写速度和CPU占比。
2 实验过程
2.1 用dd指令对SATA分区进行多次文件写入,写入总大小分别为320M, 640M, 1280M, 2560M,单次写入块大小分别为512B, 1K, 2K, 4K, 8k, 16K, 32K, 64K, 128K, 256K, 512K, 1024K, 2M, 4M, 8M, 16M, 32M,每个块大小写入测试n (n=3)次;
2.2 在写入过程中计算得到该进程占用CPU百分比的平均值,写入结束后记录此次写入平均速度;
2.3 将实验结果画图展示;
2.4 将文件写入改为分区读出,重复2.1和2.2过程,得到读出文件速度和CPU占比,画图展示。
3 实验结果
3.1 文件写入
图1-4分别为对SATA分区1(sda1)进行文件写入得到的相关数据:
图 1
图 2
图 3
图 4
结合写入速度和CPU占比,为获得最佳写入块大小,取最大写入速度和较低的CPU占比的共同点。由图1-4可以分别看出,符合条件的块大小分别为32K,16K,32K,16K。
3.2 文件读出
图5-8分别为对SATA分区1(sda1)进行文件读出得到的相关数据:
图 5
图 6
图 7
图 8
结合读出速度和CPU占比,为获得最佳读出块大小,取最大读出速度和较低的CPU占比的共同点。由图1-4可以分别看出,符合条件的块大小分别为64K,16K,64K,16K。
附加实验:测试320M, 640M, 1280M, 2560M下以16K和64K为读取块大小的读出速度和CPU占比,结果如下表所示:
表 1 读取块为16K与64K的速度和CPU占比
|
16K |
64K |
||||
Speed (Mb/s) |
320M |
63.46 |
62.09 |
320M |
58.12 |
62.81 |
640M |
74.07 |
75.56 |
640M |
73.41 |
71.57 |
|
1280M |
79.84 |
79.28 |
1280M |
80.62 |
78.55 |
|
2560M |
87.77 |
84.12 |
2560M |
83.87 |
84.20 |
|
平均 |
75.77 |
平均 |
74.14 |
|||
CPU (%) |
320M |
29 |
29 |
320M |
18 |
27 |
640M |
27 |
26 |
640M |
26 |
34 |
|
1280M |
33 |
33 |
1280M |
36 |
31 |
|
2560M |
40 |
37 |
2560M |
38 |
36 |
|
平均 |
32 |
平均 |
31 |
由上表格中16K和64K对应的读取速度和CPU占比平均值对比可看出,在CPU占比相差较小的情况下,较大读取速度的文件读块大小为16K。
4 实验结论
由3.1得出,比较理想的单次写入块大小为16K和32K,但根据图1中16K的写入速度低于32K的写入速度约20Mb/s,因此最佳的单次写入块大小为16K,其次为32K。
由3.2中的实验结果可知16K和64K的读取速度均较佳,结合附加实验结果可得出,最佳的单次读取块大小为16K,其次为64K。
结合已上两个实验结论,针对该海思板卡的SATA读写,以16K作为单次块读写可获得较快的速度且较低的CPU占比。
shell笔记
01. shell 当中#!/bin/sh 后面跟-x可以逐步显示出执行过程和结果,便于调试。
02.
while read line;do eval "$line" done < $conffile
使用类似如上导入文件的方法后,部分指令的&后台运行功能失效。原因未知。
03. 像dd等指令直接重定向 ">" 到文件中不会将显示在屏幕上的内容写入文件,应写 "2>" 将"2"也就是标准错误定向到文件。
04. sed的用法之找到匹配的行,并删除或者整行替换:
#方法一: line=`sed -i '/$str/=' $filename` for i in $line do sed -i "${i}d" $filename #删除 sed -i "$i i${str}" $filename #在删除的那行加字符串str done #方法二: #匹配到xxxx的行整行替换为str,几乎是万能的行替换,同样适用于匹配的字符串不是行首的情况。 sed -i "/xxxxx/s/^.*/$str/g" $filename
方法二的效率明显高于一。
fio工具中的iodepth参数与numjobs参数-对测试结果的影响
...试写入10G文件,测试时间300s。测试过程中,观察磁盘的读写速度、使用率、IO操作的服务时间与IO请求的处理时间等参数,并记录带宽值与延时时间。测试场景:1、单独使用iodepth参数,测试块大小为1M随机读写,记录带宽值与延... 查看详情
java流中的最佳块大小
】java流中的最佳块大小【英文标题】:Optimalblocksizeinjavastreams【发布时间】:2011-08-0313:26:39【问题描述】:我有一个理论问题。假设您有一个InputStream和一个OutputStream。您需要将内容从一个复制到另一个,并且您不知道需要传输... 查看详情
使用linuxdd命令测试磁盘读写性能(代码片段)
使用Linuxdd命令测试磁盘读写性能从帮助手册中可以看出,dd命令可以复制文件,根据操作数进行转换和格式化。我这里记录一下dd命令用于测试磁盘I/O性能的过程。dd可从标准输入或文件中读取数据,根据指定的格式来转换数据... 查看详情
pandas read_csv 中最大化速度的最佳块大小是多少?
】pandasread_csv中最大化速度的最佳块大小是多少?【英文标题】:whatistheoptimalchunksizeinpandasread_csvtomaximizespeed?【发布时间】:2016-05-1601:42:39【问题描述】:我正在使用一个20GB(压缩)的.csv文件,并使用带有chunksize=10,000参数的pand... 查看详情
阿里云大小文件硬盘io读写测试
阿里云dd写测试阿里云小文件读写IOPS测试阿里云大文件读写吞吐测试 查看详情
windows下测试磁盘读写(hdtune)
3个SATA磁盘组成RAID5,4个SAS硬盘组成另外一个RAID5。测试结果如下:用HD Tune测试读速度:用HD Tune测试写速度(需要删除分区再测试): 查看详情
海思3519av100开发:海思sample代码测试之tde
海思文档+nfsAxe+SecureCRT8.1破解版资源网盘链接提取码:pzxg3.海思sample代码测试tde用例目录Hi3519AV100_SDK_V2.0.1.0\\smp\\a53_linux\\mpp\\sample,该文件下每个子文件都是一个例子。我们以最简单(没有输入)的例子tde作... 查看详情
hdfs读写原理
Hadoop是什么Hadoop是一个开源的大数据框架同时也是一个分布式计算的解决方案。Hadoop=HDFS(分布式文件系统)+MapReduce(分布式计算)HDFSHDFS概念数据块NameNodeDataNode数据块:数据块是一个抽象的块,而不是整个文件。默认大小是64M... 查看详情
linux中用dd命令来测试硬盘读写速度(代码片段)
.../blog.51cto.com/moerjinrong/2286323 Linux中用dd命令来测试硬盘读写速度dd是Linux/UNIX下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。dd命令通用语法格式如下:ddif=path/to/input_fileof=/path... 查看详情
海思3519a开发环境设置相关(代码片段)
设置板卡和虚拟机的网络参数setenvserverip192.168.1.107setenvipaddr192.168.1.10setenvgatewayip192.168.1.1setenvnetmask255.255.255.0saveenv文件系统制作osdrv/pub/bin/pc/mkyaffs2image100osdrv/pub/rootfs_glibcosdrv/pub/rootfs 查看详情
磁盘测试工具fio(代码片段)
...可在没有安装oracle数据库的情况下模拟oracle数据库场景的读写。如下是在Linux系统上采用fio工具来对SAN存储进行的IO测试。1、安装fio在fio官网下载fio-2.1.10.tar文件,解压后./configure、make、makeinstall之后就可以使用fio了。2、fio参数... 查看详情
如何安装两块机械硬盘,求大佬解决
...样的,用螺丝固定到图二的架子上。你的电源没有多余的sata电源线,那么需要买一个sata转4pin电源线。在买一根sata数据线,连接硬盘和主板。左面是电源线,右面是数据线。追问没有啥线追答这个是可以给硬盘供电的。然后你... 查看详情
设置文本大小的最佳方法?
】设置文本大小的最佳方法?【英文标题】:Bestwaytosettextsize?【发布时间】:2011-12-2804:45:46【问题描述】:设置文本大小以使其在所有设备上看起来都相同的最佳方法是什么?我遇到的最大问题是设置按钮上的文本大小,以便一... 查看详情
循环平铺。如何选择块大小?
】循环平铺。如何选择块大小?【英文标题】:looptiling.howtochooseblocksize?【发布时间】:2013-12-2011:02:42【问题描述】:我正在尝试学习循环优化。我发现循环平铺有助于使数组循环更快。我尝试使用下面给出的两个代码块,有和... 查看详情
全闪分布式块存储性能实测1000万iops!
...FASS,创建16个100GB双副本存储卷进行测试8客户端压力读写,每个客户端读写2个存储卷,使用Inte 查看详情
绿盟waf万兆板卡的爱恨情仇
...的事情出现了,重启之后识别不出万兆接口,看不到万兆板卡了!什么情况?板卡没插好么?关机断电,插拔板卡,还不行!换插槽还 查看详情
海思3519av100开发:海思sample代码测试之tde
海思文档+nfsAxe+SecureCRT8.1破解版资源网盘链接提取码:pzxg3.海思sample代码测试tde用例目录Hi3519AV100_SDK_V2.0.1.0\\smp\\a53_linux\\mpp\\sample,该文件下每个子文件都是一个例子。我们以最简单(没有输入)的例子tde作... 查看详情
write(2)最佳的缓冲大小
...调用,发生了非常繁忙的环境(许多IO操作)。在这期间最佳的缓冲大小是多少呢,比如说,4kb,4Mb,什么时候:1.不使用O_DIRECT打开标识,或者2.使用O_DIRECT请不要使用“取决于你自己”这样的答案----我想得到一些答案从文件系... 查看详情