Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Tina_Linux存储性能参考指南

Tina_Linux存储性能参考指南

作者头像
韦东山
发布于 2023-03-01 06:14:33
发布于 2023-03-01 06:14:33
84000
代码可运行
举报
文章被收录于专栏:韦东山嵌入式韦东山嵌入式
运行总次数:0
代码可运行

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

说明

  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 型号

顺序读性能

顺序写性能

其他说明

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

说明

  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)。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
| 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。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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)。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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 个顺序读写性能的测试用例,分别如下。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/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 的规格书中有体现性能估值。 常见的,不同介质顺序读写性能排序如下。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
读: mmc > raw nand > spinor > spinand
写: mmc > raw nand > spinand > spinor

4 随机读写性能

4.1 随机性能测试方法

Tina 测试平台有1 个随机读写性能的测试用例,且只适用于>64M内存方案。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/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 策略。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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 类型,系统负载等。多次测试会有波动,可以烧录固件后第一次测试的数据为准,或多次取平均。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-02-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
在 UOS 下利用 QEMU 搭建飞腾 ARM64 的开发环境
近年来,在政府的推动下,国产操作系统(主要是统信 UOS 和麒麟 OS)以及相关软件的市场份额不断扩大。越来越多的企业和事业单位开始采用国产操作系统和软件,国产化替代进程正如火如荼地进行。目前,信创产业链上下游百花齐放,国产芯片领域更是群雄并起,如麒麟、兆芯、海光、龙芯、飞腾、申威等。作为产业链中的一环,软件开发者也面临一个普遍问题:需要适配多种硬件平台。
云水木石
2025/01/23
5060
在 UOS 下利用 QEMU 搭建飞腾 ARM64 的开发环境
实战最精简的 linux -- arch linux 安装
安装操作系统已经越来越成为一件非常简单的事情了,几乎可以做到仅依靠鼠标一路点击,傻瓜式安装了,也许这让你不禁会去想,到底操作系统安装过程中做了哪些事情,亦或是你想要安装一个真正干净的系统,一切组件要什么不要什么都自己说了算,那么,arch linux 可能会是你一个不错的选择。 正是因为 arch 的高度定制与简洁,加上他的滚动升级机制以及庞大的社区 AUR,让他成为了越来越火热的 linux 发行版,本文,我们就来通过安装 arch 讲解一下 linux 的一些基本的命令行配置方法。
用户3147702
2022/06/27
7.8K0
实战最精简的 linux -- arch linux 安装
arch linux 安装
好长时间都没有更新自己的博客了,我简单翻阅了一下自己的更新记录,上一次更新好像还是在5月份左右,距今也有快半年,这半年也是遇到了很多事情,有不好的,也有好的。这半年我对在日常生活工作中使用Linux系统产生了一些兴趣,从零开始折腾这一系列的内容,主要从安装、配置、以及尝试各种软件来取代Windows的主导地位,也产生了一些心得,这里我想分几篇博客来聊聊我是如何慢慢使用arch Linux 来替代以前的Windows机器
Masimaro
2021/10/20
2.7K0
X86模拟龙芯与编译 .NET CoreCLR
前段时间得知龙芯团队成功移植并开源了 CoreCLR ,忙完事情后,快乐地捣鼓一下这个东西。近年来国产操作系统、芯片等的到很大的关注和快速发展,我们开发的软件适配国产的机器环境就尤为重要,未来 IT 行业的变化会影响到我们的饭碗。
痴者工良
2021/04/26
1.3K0
Arch Linux 安装指南
如果想要学习Linux,Arch Linux是个很好的选择。Arch Linux提供了非常详细并且更新及时的Wiki(帮助文档),使用系统的过程中遇到的问题基本上都空余从上面找到。
小陈运维
2021/10/13
2.7K0
Arch Linux安装与初体验
Arch Linux 是一个 x86-64 通用发行版,它流行于那些喜欢 DIY Linux 系统的用户和 Linux铁杆粉丝当中。其默认的安装文件只含有一个最基本的系统,它希望使用者自己配置并使用 Arch 系统。其基于 KISS 原则(使它保持简单、傻瓜Keep It Simple, Stupid!),Arch Linux 是一个专注于优雅、代码正确,精简而简洁的系统。
yuanfan2012
2021/02/25
2.8K0
Arch Linux安装与初体验
VMware安装Arch Linux+Gnome桌面
官方下载地址:https://www.archlinux.org/download/。
Mculover666
2022/04/08
15.6K0
VMware安装Arch Linux+Gnome桌面
Archlinux基本安装
访问下载页面,根据您想要的启动方式,获取 ISO 文件或网络启动映像,以及相应的GnuPG签名。
vivi
2021/12/09
2.1K0
申威欧拉虚拟机启动
首先需要确保hmcode是1.20版本,然后修改/boot/grub/grub.cfg文件,内核参数改为:
风起--追风
2024/01/31
4060
【技术教程】怎样安装Arch Linux以及Deepin桌面环境
Arch Linux 是一个轻量级的Linux发行版本,实际上,Arch Linux提供给用户很多选择,用户可以自定义自己的安装过程,不x像其他很多的Linux发行版本,安装过程甚至是一个只有“下一步”的傻瓜式操作,因此我觉得Arch Linux是我见过安装过程最有技术含量的Linux发行版本。不过我们可以从中学到很多东西,因为很多东西是我们亲手构造出来的。Arch Linux的软件包管理工具是pacman,接下来我们基于Arch Linux镜像自带的Linux工具包以及pacman,从零构建属于自己的Arch Linux。
极客开发者
2022/01/18
5.5K0
【技术教程】怎样安装Arch Linux以及Deepin桌面环境
在计算机中安装Arch Linux
Arch Linux是一个优秀的linux操作系统。其优点是滚动发行、软件包比较新,并且可以深度可定制。缺点是由于深度可定制,所以开始安装的时候只有命令行可用,对于linux新手来说会有一些难度。我也是练习安装了好多次,才逐渐从安装过程中学习到linux的组成部分并体会到Arch的优美之处的。
乐百川
2022/05/05
4.2K0
在计算机中安装Arch Linux
Reinstalling Alpine Linux on a Lighthouse Instance
Create an instance with Debian or whatever flavour of your choice. Log in.
用户9453034
2022/02/16
1K0
Reinstalling Alpine Linux on a Lighthouse Instance
Archlinux 入门初步
  从 archlinux 官方或者是镜像源下载到 iso 文件,并使用以下命令制作启动U盘。
zhonger
2022/10/28
2K0
KVM管理虚拟机
在上一篇中,我们介绍了如何在 CentOS7上安装并配置KVM,以及通过KVM安装CentOS系统。本篇则是介绍在KVM里安装完虚拟机后,如何使用KVM来管理虚拟机。
端碗吹水
2020/09/23
2K0
X86_64平台上利用qemu安装aarch64架构的虚拟机「建议收藏」
2020.1.4更新:下面有些评论说现在安装不会遇到类似问题了,本博客参考意义不大,请绕行。 20200704更新:请参考https://wiki.ubuntu.com/UEFI/virt-install,现在安装过程没有什么问题了
全栈程序员站长
2022/11/02
10.7K0
从现有Linux系统上安装Archlinux
以Oracle Cloud环境为例,从现有Linux系统上安装Archlinux [理论上可以无VNC实现]
hiplon
2020/07/15
3.3K0
【系统篇】ArchLinux系统安装
本教程为最新安装Linux的教程,想看更详细可以到我B站主页看视频教程 本教程参考自 https://wiki.archlinux.org/index.php/Installation_guide 本教程于2019.11.9日编写,请根据查阅时间参考本教程(官网安装方式未更新,则本教程保持最新状态) 教程中的镜像更新时间:2019.11.01
huanhao
2020/04/09
2.6K0
archlinux安装教程2020(archlinux更换国内源)
(本次使用archlinux-2020.01.01-x86_64.iso) 截图未更新!最新的arch打包发生了变化,在pacstrap那一步以前只要pacstrap -i /mnt base base-devel就可以了,现在arch将基础包的众多组件分离了,还按照之前的命令安装,会发现最后内核都没装,更不用说系统引导了。 下载地址:https://www.archlinux.org/download/
全栈程序员站长
2022/08/01
11.6K0
archlinux安装教程2020(archlinux更换国内源)
虚拟机安装archlinux的简单步骤
这篇文章是我在虚拟机安装archlinux之后的一点心得,参考了archwiki关于安装arch的一些内容https://wiki.archlinux.org/index.php/Beginners%27_guide 。
乐百川
2022/05/05
2.2K0
Qemu搭建arm版麒麟系统
麒麟系统(Kylin)是由中国科学院计算技术研究所(ICT)开发的一款操作系统。它最初是为满足中国国家信息化建设需求而创建的,旨在提供一个安全可靠、高性能的操作系统平台,广泛应用于中国政府、军队、企事业单位等领域。 麒麟系统基于Linux内核进行开发,并在其上构建了自己的软件堆栈和应用程序生态系统。作为一个综合性操作系统,麒麟系统支持多种硬件架构,包括ARM架构。 模拟ARM平台安装麒麟系统是指在非ARM架构的计算机上使用虚拟化技术模拟ARM架构,然后在模拟的ARM平台上安装和运行麒麟系统。这种方法可以让开发人员、研究人员或爱好者在不拥有实际ARM设备的情况下,通过模拟器来体验和测试麒麟系统。 常用的模拟器之一是QEMU(Quick Emulator),它是一个开源的虚拟化和仿真工具,支持多种硬件架构的模拟。通过在QEMU上配置合适的硬件参数和设备模拟,可以在模拟的ARM平台上运行麒麟系统。 模拟ARM平台安装麒麟系统可以帮助开发人员和用户熟悉和测试麒麟系统的功能和性能,进行应用程序的开发和调试,以及进行系统优化和性能调优等工作。此外,这种方法还能够提供一个便捷的环境,使用户能够在常用的计算机上尝试和学习ARM架构相关的开发和应用。 需要注意的是,模拟器虽然提供了一种方便的方式来模拟ARM平台,但由于模拟器的性能和硬件差异,与实际ARM设备上的运行可能会存在一些差异。因此,在进行实际产品开发或性能评估时,还应该在真实的ARM硬件上进行测试和验证。
默 语
2024/11/20
5110
Qemu搭建arm版麒麟系统
相关推荐
在 UOS 下利用 QEMU 搭建飞腾 ARM64 的开发环境
更多 >
LV.1
深圳百问网科技有限公司技术总监
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验