海思板卡SATA最佳读写块大小测试
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占比。
海思板卡SATA最佳读写块大小测试的更多相关文章
- 海思3519A上移植OpenCV3.x
环境安装与准备 下载opencv3.4.1. 或者 下载opencv3.2.0. 进入到opencv所在的目录新建目录build,install 安装cmake: apt-get install cm ...
- 海思HI35xx平台软件开发快速入门之H264解码实例学习
ref :https://blog.csdn.net/wytzsjzly/article/details/82500277 前言 H264视频编码技术诞生于2003年,至今已有十余载,技术相当成熟 ...
- 主流芯片解决方案Ambarella的高清网络摄像机、德州仪器和控制海思
(本文由四川艾普作为数码科技有限公司 苏斌.范清华 收集) 高清网络视频监控发展到今天.正的高清时代.诸多有实力的高清摄像机厂家的产品线也逐渐完好起来,高清网络视频监控的配套产品有更加丰富和成熟.与此 ...
- HDFS概述(2)————Block块大小设置
以下内容转自:http://blog.csdn.net/samhacker/article/details/23089157?utm_source=tuicool&utm_medium=ref ...
- 第2季:从官方例程深度学习海思SDK及API
2.1.官方mppsample的总体分析2.1.sample的整体架构(1)sample其实是很多个例程,所以有很多个main(2)每一个例程面向一个典型应用,common是通用性主体函数,我们只分析 ...
- 海思NB-IOT的SDK里面写KV键值对值掉电保存参数
1. 写函数,ICCID_CTRL_KEY 这个是键,有些是海思已经使用的,所以自己定义的时候要错开,函数的第二个参数是数据指针,第三个参数是数据长度 #define ICCID_CTRL_KEY ...
- QT-Embedded-4.5.3在海思35xx上移植
QT4.5.3在海思3520A上移植步骤-修订版 2015年3月29日星期日, 16:59:03 1.首先要保证已经安装了海思的交叉编译器: #arm-hi + Tab key to show wh ...
- 海思HI3518EV200+AR0130开发板DIY——前篇
海思HI3518EV200+AR0130开发板DIY 今天开始要围绕这个项目学习了(还是得从C开始学 ) 缘起(这段主要水废话)相关开发资料 →_→ 原理图设计 原理图整体框架 一.电源部分 HI35 ...
- 海思屏幕HAL代码解析
显示屏幕(LCD)模块提供屏幕相关功能接口,调用者为上层应用模块(含 init.状态机.ui),上下文依赖关系,如图 3-7 所示. 系统框架为 linux+Huawei LiteOS 双系统架构,媒 ...
随机推荐
- ubuntu中使用usb-creator制作live usb
1.实验环境 ubuntu14.04 2.启动usb-creator 2.1 单击桌面左上角的搜索图标,输入usb-creator,然后选择“应用程序"中的”启动盘创建器“ 2.2 终端中输 ...
- DevOps之基础设施
唠叨话 关于德语关我屁事的知识点,仅提供精华汇总,具体知识点细节,参考教程网址,如需帮助,请留言. <信息技术(IT )> 关于IT信息技术的基础设施,知识与技能的层次(知道.理解.运用) ...
- 【转载】十条jQuery代码片段助力Web开发效率提升
文章转载自 51CTO http://www.51cto.com/ 原文链接:http://developer.51cto.com/art/201604/509093.htm原文摘要:JQuery是继 ...
- mysql5.7在windows不能启动的方法及查看数据库大小命令
1.将mysql目录下的my-default.ini改为my.ini 2.cmd进入mysql的bin目录下 3.执行mysqld --initialize进行初始化(如果mysql目录下已经存在da ...
- Spring源码情操陶冶-AOP之ConfigBeanDefinitionParser解析器
aop-Aspect Oriented Programming,面向切面编程.根据百度百科的解释,其通过预编译方式和运行期动态代理实现程序功能的一种技术.主要目的是为了程序间的解耦,常用于日志记录.事 ...
- Web前端性能优化——如何有效提升静态文件的加载速度
WeTest 导读 此文总结了笔者在Web静态资源方面的一些优化经验. 一.如何优化 用户在访问网页时, 最直观的感受就是页面内容出来的速度,我们要做的优化工作, 也主要是为了这个目标.那么为了提高页 ...
- PHP的取整函数
PHP的取整函数有四个,分别是ceil.floor.round和intval,下面对它们进行一一介绍: 1. ceil(x):向上舍入为最接近的整数. 返回不小于 x 的下一个整数,x 如果有小数部分 ...
- iOS 11更新后以及iPhone X推出后工程中遇到的问题及适配
1.UITableView滑动时右侧的滑动条忽长忽短的乱跳以及MJRefresh上拉刷新死循环 这是因为tableView在iOS11默认使用Self-Sizing,tableView的estimat ...
- 05-从零玩转JavaWeb-彻底搞懂值传递
一.数据类型分类 基本数据类型: 只有一块存储空间, 在栈中,存放的是具体的值 引用数据类型: 引用数据类型有两块存储空间 一个在栈(Stack)中,一个在堆(heap) ...
- Java基础笔记7
OOP面向对象有三个特点 1.封装 封装的好处: 起到一定的保护作用 封装的是属性. java如何进行封装; 1.使用private关键字对象属性封装. 只能在本类中使用. 2.为每个属性提供方法 ...