Tina_Linux存储性能参考指南
OpenRemoved_Tina_Linux_存储性能_参考指南
1 概述
1.1 编写目的
介绍TinaLinux 存储性能的测试方法和历史数据,提供参考。
1.2 适用范围
Tina V3.0 及其后续版本。
1.3 相关人员
适用于TinaLinux 平台的客户及相关技术人员。
2 经验性能值
Flash 性能与实际使用物料有关,受不同存储介质、不同厂家、不同型号甚至不同老化程度的影响,所以经验值仅供参考。
2.1 顺序读写性能经验值
IC | 物料类型 | Flash 型号 | 顺序读性能 | 顺序写性能 | 其他说明 |
---|---|---|---|---|---|
R16 | raw nand | K9F4G08U0F | 40M/s | 5.6M/s | |
R6 | spi nand | MX35LF1GE4AB | 4M/s | 2M/s | 见注1 |
R6 | spi nor | FM25Q128 | 5.6M/s | 3.1M/s | 见注2 |
R30 | mmc | KLM8G1WEPD-B031 | 77M/s | 7.7M/s | 见注3 |
R333 | spi nand | F50L1G41LB | 5.7M/s | 2.0M/s | 见注1 |
R328 | spi nand | DS35X1GAXXX | 12.1M/s | 4M/s | 见注4 |
R328 | spi nand | W25N01GVZE1G | 6.9M/s | 2.7M/s | 见注5 |
R329 | spi nand | GD5F1GQ4UBYIG | 7.5M/s | 2.9M/s | 见注6 |
R528 | spi nand | GD5F1GQ4UBYIG | 5.1M/s | 2.8M/s | 见注6 |
MR813 | mmc | THGBMBG7D2KBAIL | 165.56M/s | 32.18M/s | 见注7 |
R528 | mmc | THGBMJG6C1LBAB7 | 62.5M/s | 17.4M/s | 见注8 |
R528 | mmc | KLM8G1GESD | 63M/s | 20.4M/s | 见注8 |
R528 | mmc | KLM8G1GESD | 61.8M/s | 39.5M/s | 见注9 |
D1 | spi nand | MX35LF2GE4AD | 4.8M/s | 2.9M/s | 见注10 |
V853 | emmc | THGBMJG6C1LBAU7 | 156M/s | 25M/s | 见注7 |
V853 | emmc | THGBMJG6C1LBAU7 | 69M/s | 25M/s | 见注8 |
V853 | spinand | MX35LF1GE4AB-Z4I | 7.7M/s | 2.9M/s | 见注11 |
V853 | spi nor | GD25F256 | 7.4M/s | 270KB/s | 见注4 |
说明
- 单线写,双线读,100MHz。
- 单线写,单线读,50MHz。
- HS400,50MHz,8 线。
- 四线读写,100MHz。
- ubifs,非压缩,四线读写,100MHz。
- ubifs,lzo 压缩,50% 随机数据,四线读写,100MHz,performance 调频策略。
- hs400,100MHz,8 线。
- hs200,150MHz,4 线, 1.8V。
- hs200,150MHz,4 线, 1.8V, 不带O_SYNC
- ubifs,lzo 压缩,50% 随机数据,四线读写,100MHz。performance 调频策略, cpu 频率1440000Hz, dram频率792MHz;
- ubifs,lzo 压缩,50% 随机数据,四线读写,100MHz。performance 调频策略, cpu 频率1104000Hz, dram频率936MHz;
2.2 随机读写性能经验值
IC | 物料类型 | Flash 型号 | 顺序读性能 | 顺序写性能 | 其他说明 |
---|---|---|---|---|---|
R6 | raw nand | K9F4G08U0F | 2486 | 146 | 见注1 |
R333 | spi nand | F50L1G41LB | 959 | 266 | 见注1 |
R329 | spi nand | GD5F1GQ4UBYIG | 1890 | 592 | 见注2 |
R528 | spi nand | GD5F1GQ4UBYIG | 907 | 385 | 见注2 |
MR813 | mmc | THGBMJG6C1LBAU | 6015 | 1596 | 见注3 |
R528 | mmc | THGBMJG6C1LBAB7 | 2657 | 830 | 见注4 |
R528 | mmc | THGBMJG6C1LBAB7 | 2657 | 830 | 见注4 |
R528 | mmc | KLM8G1GESD | 2582 | 872 | 见注4 |
R528 | mmc | KLM8G1GESD | 2038 | 2220 | 见注5 |
D1 | spi nand | MX35LF2GE4AD | 919 | 425 | 见注6 |
V853 | emmc | THGBMJG6C1LBAU7 | 4407 | 1363 | 见注3 |
V853 | emmc | THGBMJG6C1LBAU7 | 3833 | 1287 | 见注4 |
V853 | spinand | MX35LF1GE4AB-Z4I | 1773 | 590 | 见注7 |
说明
- 单线写,双线读,100MHz
- ubifs,lzo 压缩,50% 随机数据,四线读写,100MHz,performance 调频策略。
- hs400,100MHz,8 线
- hs200,150MHz,4 线, 1.8V
- hs200,150MHz,4 线, 1.8V, 不带O_SYNC
- ubifs,lzo 压缩,50% 随机数据,四线读写,100MHz,performance 调频策略, cpu 频率1440000Hz, dram频率792MHz;
- ubifs,lzo 压缩,50% 随机数据,四线读写,100MHz。performance 调频策略, cpu 频率1104000Hz, dram频率936MHz;
3 顺序读写性能
3.1 顺序写性能理论值计算
物料的数据手册一般会提供擦除和写的耗时,关注数据手册中Block Erase time、PageProgram time 此类关键字数值。以GD25Q256E(spi nor)为例,Block Erase time:0.12s/0.15s typical(Block size 64KByte) ,Page Program time: 0.25ms typical(Page
size 256Byte)。
| High Speed Clock Frequency | Fast Program/Erase Speed |
| 133MHz for fast read with 30PF load | Page Program time: 0.25ms typical |
| Dual I/O Data transfer up to 266Mbits/s | Sector Erase time: 45ms typical |
| Quad I/O Data transfer up to 532Mbits/s | Block Erase time: 0.12s/0.15s typical |
上面的Quad 的传输速率,是通过133MHZ * 4 line 计算到的,是一个理论数据,而实际的使用场景,我们要读数据前要用1 line 发送5(6)Bytes 数据,即cmd + addr[3(4)] + dummy(大于16M 的FLASH,需要发4byte 地址), 其次我们SPI 控制器最大输出频率100Mhz。假设
发一次命令读N bytes 数据,则命令和数据所占时间的比例为5 : (N/4), 那么实际4 line 的极限速度等于(N/4) / [5+(N/4)] * CLK * 4Mbits/s。以100Mhz 4line 为例,理论极限速度为47.68MB/s。
speed = 32MByte/(erase_time + program_time + spi_time)
= 32MByte/(0.15s*(32MByte/64KByte) + 0.25ms*(32MByte/256Byte) + 32MByte/47.68MB/s)
= 32MByte/(76.8s + 32.8s +0.67s)
= 290KByte/s
以GD5F1GQ4UAYIG(spinand)为例,Block Erase time: 3ms typical(Block size128KByte) ,Page Program time: 0.4ms typical(Page size 2048Byte)。
speed = 128MByte/(erase_time + program_time)
= 128MByte/(3ms*(128MByte/128KByte) + 0.4ms*(128MByte/2048Byte) + 128MByte/47.68MB/s)
= 128MByte/(3072ms + 26214.4ms + 2684ms)
= 4.0MByte/s
3.2 顺序性能测试方法
Tina 测试平台有2 个顺序读写性能的测试用例,分别如下。
/spec/storage/seq #适用于>64M 内存的方案
/spec/storage/tiny-seq #适用于<=64M 内存的方案和使用ubifs的存储方案
特别注意的是,在测试文件数据量非常小时,内存对测试影响太大,测试出来的读数据会非常不准确。例如,对spinor 的测试分区只有5M 大小,而内存有64M,测试出的读可能达到100+M/s,此时的读数据不具有参考价值。
3.3 顺序性能解读
顺序读写性能以读写速度(KB/s;MB/s) 作为衡量标准,主要体现大文件连续读写的性能。此时,速度值越大,顺序读写性能越好。
不同存储介质的读写性能是有差异的,甚至同一种存储介质,不同厂家不同型号可能都有差别。
以mmc 为例,有的mmc 写性能只能达到10M/s,而有的mmc 写性能达到150M/s。一般来说,MMC 的规格书中有体现性能估值。
常见的,不同介质顺序读写性能排序如下。
读: mmc > raw nand > spinor > spinand
写: mmc > raw nand > spinand > spinor
4 随机读写性能
4.1 随机性能测试方法
Tina 测试平台有1 个随机读写性能的测试用例,且只适用于>64M内存方案。
/spec/storage/rand
4.2 随机性能解读
随机读写性能以IOPS(IO per second) 为衡量标准,理解为每秒处理多少个IO 请求。此指标反应的是小文件的读写性能。此数值越高,表示其随机读写性能越好。
与顺序读写相似的是,其数值也与实际物料,当前工作模式有关。
5 读写性能的影响因素
5.1 O_SYNC
注意Tina 使用iozone 时,默认参数是使能了O_SYNC 的,降低了cache 的影响。应用正常运行时,一般不使用O_SYNC,可获得比所测数据更佳的性能。
如需测不带O_SYNC 的性能,需修改iozone 参数,测试用例的menuconfig 中提供了ASYNC选项,选上即可。
测试用例运行过程会打印出iozone 的参数,具体参数含义请查看iozone 的帮助。
5.2 调频策略
不同调频策略会对读写性能造成影响,建议在测试的时候切换到performance 策略。
find . -name scaling_governor #找到调频节点
echo "performance" > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor #修改策略
cat /sys/devices/system/cpu/cpufreq/policy0/scaling_governor #确认策略切换成功
5.3 其他
对比性能时,需保持其他条件尽可能一致,包括但不限于CPU 频率,DDR 频率,DDR 类型,系统负载等。多次测试会有波动,可以烧录固件后第一次测试的数据为准,或多次取平均。
相关文章:
Tina_Linux存储性能参考指南
OpenRemoved_Tina_Linux_存储性能_参考指南 1 概述 1.1 编写目的 介绍TinaLinux 存储性能的测试方法和历史数据,提供参考。 1.2 适用范围 Tina V3.0 及其后续版本。 1.3 相关人员 适用于TinaLinux 平台的客户及相关技术人员。 2 经验性能值 Flash 性能与实…...
NCRE计算机等级考试Python真题(四)
第四套试题1、以下选项中,不属于需求分析阶段的任务是:A.需求规格说明书评审B.确定软件系统的性能需求C.确定软件系统的功能需求D.制定软件集成测试计划正确答案: D2、关于数据流图(DFD)的描述,以下选项中正…...
LeetCode每周刷题总结2.20-2.26
本栏目记录本人每周写的力扣题的相关学习总结。 虽然开新的栏目都没有完成 70.爬楼梯 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 解题思路: 斐波那契数列递归 class Solution {…...
u盘里删除的文件可以恢复吗?分享解决方法
u盘里删除的文件可以恢复吗?不知道使用过U盘的你,是否遇到过这样的问题呢?其实正常情况下,在电脑中操作u盘,并删除相关的文件,删除的文件是不会经过电脑回收站的。想要找回就需要借助相关的恢复工具才能实现。下面小编给大家分享…...
十、vben框架如何使用table来写报表
在项目开发的过程中,有很多特殊的table样式,有的时候后端会用帆软来写报表,但是有的特殊的报表后端就不能支持实现了,那么前端是如何实现的呢,今天我们就来讲讲。 先上效果图: 本次使用的tsx组件来写的报表…...
jQuery:入门
jQuery 入门 Date: January 19, 2023 目标: 能够说出什么是 jQuery 能够说出 jQuery 的优点 能够简单使用 jQuery 能够说出 DOM 对象和 jQuery 对象的区别 jQuery 概述 JavaScript 库 仓库: 可以把很多东西放到这个仓库里面。找东西只需要到仓库里…...
实例3:树莓派呼吸灯
实例3:树莓派呼吸灯 实验目的 通过背景知识学习,了解digital与analog的区别。通过GPIO对外部LED灯进行呼吸控制,熟悉PWM技术。 实验要求 通过python编程,用GPIO控制LED灯,使之亮度逐渐增大,随后减小&am…...
android适配ipv6,请求慢?
先贴一篇我们经常能搜索到的解决方案: Android 在 4G 下访问 IPV6 慢的解决方案 文章很有参考意义,但也并不是所有请求慢的的原因! 本文是另一种原因,有兴趣就继续往下看一看. 使用的okhttp框架,模式支持ipv6和ipv4协议,但两种协议同时存在时…...
【LeetCode】剑指 Offer(10)
目录 题目:剑指 Offer 27. 二叉树的镜像 - 力扣(Leetcode) 题目的接口: 解题思路: 代码: 过啦!!! 题目:剑指 Offer 28. 对称的二叉树 - 力扣࿰…...
学校AI视频行为分析监测系统 opencv
学校AI视频行为分析监测系统通过pythonopencv网络模型AI视频分析技术,学校AI视频行为分析监测算法对学校区域人员打架行为识别、跌倒行为识别、翻墙识别、人员聚众识别、攀高识别、抽烟行为等进行智能识别预警。OpenCV的全称是Open Source Computer Vision Library&…...
内存数据库的设计与实现(已在大型项目中应用)
一、概况 1、设计总图 组成,由Redis集群缓存,普通缓存,传统数据库,各类数据驱动 2、内存数据库的增删改查,分页查询 组成,由数据查询,分页查询,数据存储,数据修改,数据删除 3、内存数据库的驱动 组成,由驱动适配器,普通缓存驱动,Redis缓存驱动 4、内存数据库与…...
Linux基础命令-stat显示文件的状态信息
文章目录 stat 命令介绍 语法格式 基本参数 测试三个时间的变化过程 1)使用cat命令 2)使用echo命令 3)使用chmod命令 4)使用vim命令 参考实例 1)显示文件的状态信息 2)以简洁的形式显示状态信…...
SQL入门DEMO
单表查询 ● --查询订购日期在1996年7月1日至1996年7月15日之间的订单的订购日期、订单ID、客户ID和雇员ID等字段的值 ● --查询供应商的ID、公司名称、地区、城市和电话字段的值。条件是“地区等于华北”并且“联系人头衔等于销售代表”。 –查询供应商的ID、公司名称、地…...
辉光管时钟学习制作及开源软硬件工程
文章目录前言开源地址辉光管项目介绍辉光管的工作条件硬件部分部分介绍充电电路驱动电路不足之处软件部分总结前言 作为一个电子人,一直想做一个辉光管时钟,算是大学的一个心愿,终于在快要毕业前做了一个,下面把软件和硬件的部分…...
动手学深度学习(第二版)学习笔记 第三章
第三章 线性神经网络 代码:d2l-zh/pytorch/chapter_linear-networks 3.1 线性回归 3.1. 线性回归 — 动手学深度学习 2.0.0 documentation 解析解 线性回归的解可以用一个公式简单地表达出来,这类解叫作解析解(analytical solution&…...
冯诺依曼体系结构与操作系统的概念及理解
一、 冯诺依曼体系结构1、概念2、内存的作用3、硬件原理解释软件行为二、操作系统的概念及基本作用1、概念2、设计操作系统的目的3、操作系统的主要作用4、什么是管理5、管理的目的6、操作系统如何为我们服务一、 冯诺依曼体系结构 我们常见的计算机,如笔记本。我们…...
【深度探讨】如何利用区块链改善公共服务
发表时间:2022年5月4日 信息来源:bsvblockchain.org BSV区块链协会全力支持符合企业和政府对于节能降耗和合法合规等相关要求的区块链生态系统。 然而,虽然监管机构负责其监管范围内的技术服务的性质、目的和影响,但他们并不是全…...
【打卡】图分析与节点嵌入
背景介绍 图(Graphs)是一种对物体(objects)和他们之间的关系(relationships)建模的数据结构,物体以结点(nodes)表示,关系以边(edges)…...
python元编程详解
什么是元编程 软件开发中很重要的一条原则就是“不要重复自己的工作(Don’t repeat youself)”,也就是说当我们需要复制粘贴代码时候,通常都需要寻找一个更加优雅的解决方案,在python中,这类问题常常会归类…...
为什么文档对 SaaS 公司至关重要?
在过去十年左右的时间里,SaaS的兴起使全球数百家公司成为家喻户晓的公司。但他们并不是仅仅依靠产品的力量到达那里的。客户服务和支持是使一切在幕后顺利进行的原因——其中很大一部分是文档。以正确的风格和正确的位置在您的网站上找到适当的用户文档对于将浏览器…...
Echarts 实现电池效果的柱状图
第022个点击查看专栏目录本示例是解决显示电池电量状态的柱状图,具体的核心代码请参考源代码。 文章目录示例效果示例源代码(共102行)相关资料参考专栏介绍示例效果 示例源代码(共102行) /* * Author: 还是大剑师兰特…...
计算机网络高频知识点(一)
目录 一、http状态码 二、浏览器怎么数据缓存 三、强缓存与协商缓存 1、强缓存 2、协商缓存 四、简单请求与复杂请求 五、PUT 请求类型 六、GET请求类型 七、GET 和 POST 的区别 八、跨域 1、什么时候会跨域 2、解决方式 九、计算机网络的七层协议与五层协议分别指…...
JavaScript split()方法
JavaScript split()方法 目录JavaScript split()方法一、定义和用法二、语法三、参数值四、返回值五、更多实例5.1 省略分割参数5.2 使用limit参数5.3 使用一个字符作为分割符一、定义和用法 split() 方法用于把一个字符串分割成字符串数组。 二、语法 string.split(separat…...
前端面试题 —— 性能优化
目录 一、CDN的作用 二、CDN的使用场景 三、懒加载的概念 四、懒加载与预加载的区别 五、documentFragment 是什么?用它跟直接操作 DOM 的区别是什么? 六、常见的图片格式及使用场景 七、懒加载的特点 八、如何优化动画? 九、如何提⾼…...
我的周刊(第080期)
我的信息周刊,记录这周我看到的有价值的信息,主要针对计算机领域,内容主题极大程度被我个人喜好主导。这个项目核心目的在于记录让自己有印象的信息做一个留存以及共享。🎯 项目stable-diffusion-webui-docker[1]基于 Docker 的一…...
操作系统——7.进程的定义,组成,组成方式和特征
目录 1.概述 编辑2.定义 2.1单道程序 2.2多道程序 2.3进程定义 3.进程的组成 3.1进程的组成内容 3.2 PCB中的内容 4.进程的组织 4.1进程的两种组织方式 4.2链接方式 4.3索引方式 5.进程的特征 6.小结 这篇文章,我们主要来学习一下进程的定义࿰…...
CRI-O, Containerd, Docker, Postman等概念介绍
参考:Docker,containerd,CRI,CRI-O,OCI,runc 分不清?看这一篇就够了Docker, containerd, CRI-O and runc之间的区别? Docker、Podman、Containerd 谁才是真正王者?CRI-O …...
【原创】java+swing+mysql设备预约管理系统设计与实现
我们在办公室或者学校实验室的,经常需要使用一些设备,因此需要提前租借。今天我们主要介绍如何使用javaswing和mysql数据库去完成一个设备预约管理系统,方便用户进行设备管理和预约。 功能分析: 设备预约管理系统主要是为了方便…...
7、kubernetes(k8s)Dashboard 安装
本文内容以语雀为准 说明 Kubernetes Dashboard 是一个通用的、基于Web的UI,用于Kubernetes集群管理。 它允许用户管理群集中运行的应用程序并对其进行故障排除,以及管理群集本身。 不同 Kubernetes Dashboard 支持的 Kubernetes 版本不同,…...
数学小课堂:虚数的媒介工具作用(虚构一个现实中不存在的概念,来解决现实问题)
文章目录 引言I 预备知识1.1 平方根1.2 三次方程1.3 极坐标II 虚数2.1 虚数的来源2.2 理解虚数存在的必要性2.3 虚数的影响III 复数3.1 人类认知升级的过程3.2 数字的扩展历史3.3 复数的用途引言 虚数的来源和存在的必要性:三次方程是一定有实数解的,因此根号里面负数的问题…...
内江市住房和城乡建设局网站/民宿平台搜索量上涨
根据近期Scala路线图所公布的信息来看,Scala从版本2.12开始,只能运行在Java 8及之后的版本上。InfoQ找到了Adriaan Moors(Typesafe的Scala技术主管)和Json Zaugg(Typesafe工程师),了解到更多关于…...
重庆小潘seo/公司seo是什么意思
安德森的那本《免费,商业的未来》,和《长尾理论》一样,在国内互联网领域,掀起了巨大波澜。他的这一理论之所以得到广泛认同,是因为免费模式,在中国互联网领域,有过超级成功的先例。最著名的事件…...
秦皇岛市住房公积金管理中心/优化大师班级优化大师
public V put(K key, V value): 把指定的键与指定的值添加到Map集合中。 说明: 在使用put存储一对元素(key-value)对象时,会先拿key去判断Map集合中是否已经存在。 如果Map集合中没有相同的key存在:就把key-value存储到Map集合中&am…...
独山县哪里有做网站的/百度收录api怎么提交
思路:题意抽象出来就是,找到一个最小边权值为d,删除大于d的边,使得剩下的联通块的个数不大于k个。这个题我们可以发现d越大连通块越少,d与连通块个数成单调函数。 那么可以二分d,然后dfs/bfs求联通块个数判…...
口碑好的企业网站开发/上线了建站
定义: 记忆一个对象的内部状态,为了允许用户取消不确定或者错误的操作,能够恢复到以前的状态。 优缺点: 优点: 1,提供可恢复机制,能够让用户恢复到历史某个状态。 2,封装细节的操作。…...
房产如何做网站/企业宣传推广方案
天朗气清的日子里,总想寻着一处花香缭绕之地,三两亲友,谈笑风生;阴雨绵绵的时候,亦想觅一方静谧清新之所,来一壶茶捧一本书,听雨打叶梢……没有大户型,没有庭院,即使是一…...