当前位置: 首页 > news >正文

Tina_Linux存储性能参考指南

OpenRemoved_Tina_Linux_存储性能_参考指南

1 概述

1.1 编写目的

介绍TinaLinux 存储性能的测试方法和历史数据,提供参考。

1.2 适用范围

Tina V3.0 及其后续版本。

1.3 相关人员

适用于TinaLinux 平台的客户及相关技术人员。

2 经验性能值

Flash 性能与实际使用物料有关,受不同存储介质、不同厂家、不同型号甚至不同老化程度的影响,所以经验值仅供参考。

2.1 顺序读写性能经验值

IC物料类型Flash 型号顺序读性能顺序写性能其他说明
R16raw nandK9F4G08U0F40M/s5.6M/s
R6spi nandMX35LF1GE4AB4M/s2M/s见注1
R6spi norFM25Q1285.6M/s3.1M/s见注2
R30mmcKLM8G1WEPD-B03177M/s7.7M/s见注3
R333spi nandF50L1G41LB5.7M/s2.0M/s见注1
R328spi nandDS35X1GAXXX12.1M/s4M/s见注4
R328spi nandW25N01GVZE1G6.9M/s2.7M/s见注5
R329spi nandGD5F1GQ4UBYIG7.5M/s2.9M/s见注6
R528spi nandGD5F1GQ4UBYIG5.1M/s2.8M/s见注6
MR813mmcTHGBMBG7D2KBAIL165.56M/s32.18M/s见注7
R528mmcTHGBMJG6C1LBAB762.5M/s17.4M/s见注8
R528mmcKLM8G1GESD63M/s20.4M/s见注8
R528mmcKLM8G1GESD61.8M/s39.5M/s见注9
D1spi nandMX35LF2GE4AD4.8M/s2.9M/s见注10
V853emmcTHGBMJG6C1LBAU7156M/s25M/s见注7
V853emmcTHGBMJG6C1LBAU769M/s25M/s见注8
V853spinandMX35LF1GE4AB-Z4I7.7M/s2.9M/s见注11
V853spi norGD25F2567.4M/s270KB/s见注4

说明

  1. 单线写,双线读,100MHz。
  2. 单线写,单线读,50MHz。
  3. HS400,50MHz,8 线。
  4. 四线读写,100MHz。
  5. ubifs,非压缩,四线读写,100MHz。
  6. ubifs,lzo 压缩,50% 随机数据,四线读写,100MHz,performance 调频策略。
  7. hs400,100MHz,8 线。
  8. hs200,150MHz,4 线, 1.8V。
  9. hs200,150MHz,4 线, 1.8V, 不带O_SYNC
  10. ubifs,lzo 压缩,50% 随机数据,四线读写,100MHz。performance 调频策略, cpu 频率1440000Hz, dram频率792MHz;
  11. ubifs,lzo 压缩,50% 随机数据,四线读写,100MHz。performance 调频策略, cpu 频率1104000Hz, dram频率936MHz;

2.2 随机读写性能经验值

IC物料类型Flash 型号顺序读性能顺序写性能其他说明
R6raw nandK9F4G08U0F2486146见注1
R333spi nandF50L1G41LB959266见注1
R329spi nandGD5F1GQ4UBYIG1890592见注2
R528spi nandGD5F1GQ4UBYIG907385见注2
MR813mmcTHGBMJG6C1LBAU60151596见注3
R528mmcTHGBMJG6C1LBAB72657830见注4
R528mmcTHGBMJG6C1LBAB72657830见注4
R528mmcKLM8G1GESD2582872见注4
R528mmcKLM8G1GESD20382220见注5
D1spi nandMX35LF2GE4AD919425见注6
V853emmcTHGBMJG6C1LBAU744071363见注3
V853emmcTHGBMJG6C1LBAU738331287见注4
V853spinandMX35LF1GE4AB-Z4I1773590见注7

说明

  1. 单线写,双线读,100MHz
  2. ubifs,lzo 压缩,50% 随机数据,四线读写,100MHz,performance 调频策略。
  3. hs400,100MHz,8 线
  4. hs200,150MHz,4 线, 1.8V
  5. hs200,150MHz,4 线, 1.8V, 不带O_SYNC
  6. ubifs,lzo 压缩,50% 随机数据,四线读写,100MHz,performance 调频策略, cpu 频率1440000Hz, dram频率792MHz;
  7. 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 存储性能的测试方法和历史数据&#xff0c;提供参考。 1.2 适用范围 Tina V3.0 及其后续版本。 1.3 相关人员 适用于TinaLinux 平台的客户及相关技术人员。 2 经验性能值 Flash 性能与实…...

NCRE计算机等级考试Python真题(四)

第四套试题1、以下选项中&#xff0c;不属于需求分析阶段的任务是&#xff1a;A.需求规格说明书评审B.确定软件系统的性能需求C.确定软件系统的功能需求D.制定软件集成测试计划正确答案&#xff1a; D2、关于数据流图&#xff08;DFD&#xff09;的描述&#xff0c;以下选项中正…...

LeetCode每周刷题总结2.20-2.26

本栏目记录本人每周写的力扣题的相关学习总结。 虽然开新的栏目都没有完成 70.爬楼梯 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; 解题思路&#xff1a; 斐波那契数列递归 class Solution {…...

u盘里删除的文件可以恢复吗?分享解决方法

u盘里删除的文件可以恢复吗?不知道使用过U盘的你&#xff0c;是否遇到过这样的问题呢?其实正常情况下&#xff0c;在电脑中操作u盘&#xff0c;并删除相关的文件&#xff0c;删除的文件是不会经过电脑回收站的。想要找回就需要借助相关的恢复工具才能实现。下面小编给大家分享…...

十、vben框架如何使用table来写报表

在项目开发的过程中&#xff0c;有很多特殊的table样式&#xff0c;有的时候后端会用帆软来写报表&#xff0c;但是有的特殊的报表后端就不能支持实现了&#xff0c;那么前端是如何实现的呢&#xff0c;今天我们就来讲讲。 先上效果图&#xff1a; 本次使用的tsx组件来写的报表…...

jQuery:入门

jQuery 入门 Date: January 19, 2023 目标&#xff1a; 能够说出什么是 jQuery 能够说出 jQuery 的优点 能够简单使用 jQuery 能够说出 DOM 对象和 jQuery 对象的区别 jQuery 概述 JavaScript 库 仓库&#xff1a; 可以把很多东西放到这个仓库里面。找东西只需要到仓库里…...

实例3:树莓派呼吸灯

实例3&#xff1a;树莓派呼吸灯 实验目的 通过背景知识学习&#xff0c;了解digital与analog的区别。通过GPIO对外部LED灯进行呼吸控制&#xff0c;熟悉PWM技术。 实验要求 通过python编程&#xff0c;用GPIO控制LED灯&#xff0c;使之亮度逐渐增大&#xff0c;随后减小&am…...

android适配ipv6,请求慢?

先贴一篇我们经常能搜索到的解决方案&#xff1a; Android 在 4G 下访问 IPV6 慢的解决方案 文章很有参考意义&#xff0c;但也并不是所有请求慢的的原因&#xff01; 本文是另一种原因,有兴趣就继续往下看一看. 使用的okhttp框架,模式支持ipv6和ipv4协议,但两种协议同时存在时…...

【LeetCode】剑指 Offer(10)

目录 题目&#xff1a;剑指 Offer 27. 二叉树的镜像 - 力扣&#xff08;Leetcode&#xff09; 题目的接口&#xff1a; 解题思路&#xff1a; 代码&#xff1a; 过啦&#xff01;&#xff01;&#xff01; 题目&#xff1a;剑指 Offer 28. 对称的二叉树 - 力扣&#xff0…...

学校AI视频行为分析监测系统 opencv

学校AI视频行为分析监测系统通过pythonopencv网络模型AI视频分析技术&#xff0c;学校AI视频行为分析监测算法对学校区域人员打架行为识别、跌倒行为识别、翻墙识别、人员聚众识别、攀高识别、抽烟行为等进行智能识别预警。OpenCV的全称是Open Source Computer Vision Library&…...

内存数据库的设计与实现(已在大型项目中应用)

一、概况 1、设计总图 组成,由Redis集群缓存,普通缓存,传统数据库,各类数据驱动 2、内存数据库的增删改查,分页查询 组成,由数据查询,分页查询,数据存储,数据修改,数据删除 3、内存数据库的驱动 组成,由驱动适配器,普通缓存驱动,Redis缓存驱动 4、内存数据库与…...

Linux基础命令-stat显示文件的状态信息

文章目录 stat 命令介绍 语法格式 基本参数 测试三个时间的变化过程 1&#xff09;使用cat命令 2&#xff09;使用echo命令 3&#xff09;使用chmod命令 4&#xff09;使用vim命令 参考实例 1&#xff09;显示文件的状态信息 2&#xff09;以简洁的形式显示状态信…...

SQL入门DEMO

单表查询 ● --查询订购日期在1996年7月1日至1996年7月15日之间的订单的订购日期、订单ID、客户ID和雇员ID等字段的值 ● --查询供应商的ID、公司名称、地区、城市和电话字段的值。条件是“地区等于华北”并且“联系人头衔等于销售代表”。 –查询供应商的ID、公司名称、地…...

辉光管时钟学习制作及开源软硬件工程

文章目录前言开源地址辉光管项目介绍辉光管的工作条件硬件部分部分介绍充电电路驱动电路不足之处软件部分总结前言 作为一个电子人&#xff0c;一直想做一个辉光管时钟&#xff0c;算是大学的一个心愿&#xff0c;终于在快要毕业前做了一个&#xff0c;下面把软件和硬件的部分…...

动手学深度学习(第二版)学习笔记 第三章

第三章 线性神经网络 代码&#xff1a;d2l-zh/pytorch/chapter_linear-networks 3.1 线性回归 3.1. 线性回归 — 动手学深度学习 2.0.0 documentation 解析解 线性回归的解可以用一个公式简单地表达出来&#xff0c;这类解叫作解析解&#xff08;analytical solution&…...

冯诺依曼体系结构与操作系统的概念及理解

一、 冯诺依曼体系结构1、概念2、内存的作用3、硬件原理解释软件行为二、操作系统的概念及基本作用1、概念2、设计操作系统的目的3、操作系统的主要作用4、什么是管理5、管理的目的6、操作系统如何为我们服务一、 冯诺依曼体系结构 我们常见的计算机&#xff0c;如笔记本。我们…...

【深度探讨】如何利用区块链改善公共服务

发表时间&#xff1a;2022年5月4日 信息来源&#xff1a;bsvblockchain.org BSV区块链协会全力支持符合企业和政府对于节能降耗和合法合规等相关要求的区块链生态系统。 然而&#xff0c;虽然监管机构负责其监管范围内的技术服务的性质、目的和影响&#xff0c;但他们并不是全…...

【打卡】图分析与节点嵌入

背景介绍 图&#xff08;Graphs&#xff09;是一种对物体&#xff08;objects&#xff09;和他们之间的关系&#xff08;relationships&#xff09;建模的数据结构&#xff0c;物体以结点&#xff08;nodes&#xff09;表示&#xff0c;关系以边&#xff08;edges&#xff09;…...

python元编程详解

什么是元编程 软件开发中很重要的一条原则就是“不要重复自己的工作&#xff08;Don’t repeat youself&#xff09;”&#xff0c;也就是说当我们需要复制粘贴代码时候&#xff0c;通常都需要寻找一个更加优雅的解决方案&#xff0c;在python中&#xff0c;这类问题常常会归类…...

为什么文档对 SaaS 公司至关重要?

在过去十年左右的时间里&#xff0c;SaaS的兴起使全球数百家公司成为家喻户晓的公司。但他们并不是仅仅依靠产品的力量到达那里的。客户服务和支持是使一切在幕后顺利进行的原因——其中很大一部分是文档。以正确的风格和正确的位置在您的网站上找到适当的用户文档对于将浏览器…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动&#xff08;如演唱会、马拉松赛事、高考中考等&#xff09;期间&#xff0c;城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例&#xff0c;暖城商圈曾因观众集中离场导致周边…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具

文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

vue3 定时器-定义全局方法 vue+ts

1.创建ts文件 路径&#xff1a;src/utils/timer.ts 完整代码&#xff1a; import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

GitHub 趋势日报 (2025年06月08日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...

什么是Ansible Jinja2

理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具&#xff0c;可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板&#xff0c;允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板&#xff0c;并通…...

Python 包管理器 uv 介绍

Python 包管理器 uv 全面介绍 uv 是由 Astral&#xff08;热门工具 Ruff 的开发者&#xff09;推出的下一代高性能 Python 包管理器和构建工具&#xff0c;用 Rust 编写。它旨在解决传统工具&#xff08;如 pip、virtualenv、pip-tools&#xff09;的性能瓶颈&#xff0c;同时…...

LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf

FTP 客服管理系统 实现kefu123登录&#xff0c;不允许匿名访问&#xff0c;kefu只能访问/data/kefu目录&#xff0c;不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲

文章目录 前言第一部分&#xff1a;体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分&#xff1a;体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...

R 语言科研绘图第 55 期 --- 网络图-聚类

在发表科研论文的过程中&#xff0c;科研绘图是必不可少的&#xff0c;一张好看的图形会是文章很大的加分项。 为了便于使用&#xff0c;本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中&#xff0c;获取方式&#xff1a; R 语言科研绘图模板 --- sciRplothttps://mp.…...

Vite中定义@软链接

在webpack中可以直接通过符号表示src路径&#xff0c;但是vite中默认不可以。 如何实现&#xff1a; vite中提供了resolve.alias&#xff1a;通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...