问题

在板子上观察到56M的ubi卷,挂载上ubifs之后,df -h显示可用空间约为50M。

如此计算开销超过了10%,那么这个开销随容量如何变化呢,是固定为10%吗还是有其他规律?

理论计算

简单查了下资料,没找到明确的计算方式。只知道ubifs分为了六个区域,那么要确认可用大小,应该先减去其余区域的占用,再确认main area本身如何计算可用空间。

这个要深入进去看源码,就比较花时间了。暂且搁置,以后有空再来填这个坑。

实际测试

测试命令

想了想,没有确认到理论计算方式的话,那就干脆直接实测一组数据好了。

板子本身nand的容量有限,且操作麻烦,我们直接在PC上模拟即可

#注意顺序,如果没有/dev/ubi0可能是modprobe顺序错了,则需要先rmmod,再重新执行
sudo modprobe nandsim first_id_byte=0xec second_id_byte=0xd3 third_id_byte=0x10 fourth_id_byte=0xa6
sudo modprobe ubi mtd=0
sudo ubimkvol /dev/ubi0 -N ubifs-vol -s 100MiB
sudo mkdir -p /mnt/ubifs
sudo mount -t ubifs /dev/ubi0_0 /mnt/ubifs
df -h | grep ubi0_0

对应卸载命令为

sudo umount /mnt/ubifs
sudo rmmod ubifs ubi nandsim

查看ubi信息的命令

ubinfo /dev/ubi0_0

测试结果

注: nandsim支持多种nand,由传入的id指定。模拟不同的nand型号,结果会有所差别。可以选择跟自己目标nand参数较为一致的设备作为模拟,更具有实际参考意义

参考资料

http://www.linux-mtd.infradead.org/faq/nand.html#L_nand_nandsim

http://www.linux-mtd.infradead.org/nand-data/nanddata.html

本文地址: https://www.cnblogs.com/zqb-all/p/11147184.html

ubifs开销测试的更多相关文章

  1. 从0开发3D引擎(四):搭建测试环境

    目录 上一篇博文 了解自动化测试 单元测试 集成测试 端对端测试 通过打印日志来调试 了解运行测试 断点调试 通过Spector.js测试WebGL 通过log调试Shader 移动端测试 了解性能测 ...

  2. Python 中的进程、线程、协程、同步、异步、回调

    进程和线程究竟是什么东西?传统网络服务模型是如何工作的?协程和线程的关系和区别有哪些?IO过程在什么时间发生? 一.上下文切换技术 简述 在进一步之前,让我们先回顾一下各种上下文切换技术. 不过首先说 ...

  3. Python数据结构与算法--算法分析

    在计算机科学中,算法分析(Analysis of algorithm)是分析执行一个给定算法需要消耗的计算资源数量(例如计算时间,存储器使用等)的过程.算法的效率或复杂度在理论上表示为一个函数.其定义 ...

  4. XRP节点部署

    目录 XRP节点部署 准备 硬软件配置(建议) 安装Rippled服务 一. 以Stock Server模型运行 在何种情况下运行此模式 二 .以 Validator模式运行 在何种情况下运行此模式 ...

  5. 读书笔记-C#中装箱拆箱性能

    前言   最近在看王涛大神的<你必须知道的.NET(第二版)>一书,嗯,首先膜拜一下….     在书中的第五章-品味类型中,对装箱与拆箱一节感触很深,概念本身相信每一个程序猿都不陌生,装 ...

  6. 《深入理解JVM》第二章读书笔记

    Java内存区域与内存溢出异常 运行时数据区域 JVM执行java程序的时候有一个运行时数据区,每个区域有自己的作用,了解这些区域有助于我们理解JVM.JVM运行时数据区如图所示: 程序计数器 该区域 ...

  7. union的两个子查询是否并行

    需求描述 问题:subquery 1 union subquery2,其中union左右的两个子查询是否并行. 场景:业务中性能敏感的业务,希望能加快速度,如果数据库能两个子查询并行执行,既可以节省时 ...

  8. Java 并发系列之三:java 内存模型(JMM)

    1. 并发编程的挑战 2. 并发编程需要解决的两大问题 3. 线程通信机制 4. 内存模型 5. volatile 6. synchronized 7. CAS 8. 锁的内存语义 9. DCL 双重 ...

  9. ubifs笔记

    第1章 UBIFS UBIFS不是工作在块在设备之上,所以UBIFS不能用于MMC之类的设备. 与传统的flash文件不同,UBIFS不是工作是块设备之上.传统的flash文件系统(如Jffs2)工作 ...

随机推荐

  1. 使用RNN进行imdb影评情感识别--use RNN to sentiment analysis

    原创帖子,转载请说明出处 一.RNN神经网络结构 RNN隐藏层神经元的连接方式和普通神经网路的连接方式有一个非常明显的区别,就是同一层的神经元的输出也成为了这一层神经元的输入.当然同一时刻的输出是不可 ...

  2. 如何在SQL Server 2008下轻松调试T-SQL语句和存储过程

    一.回顾早期的SQL SERVER版本:早在SQL Server 2000时代,查询分析器的功能还很简陋,远不如VS那么强大.到SQL Server 2005时代,代码高亮.SQL优化等功能逐渐加强, ...

  3. C++桌面计算机

    #include<iostream> #include<string> #include<map> #include<cctype> using nam ...

  4. css隐藏页面元素的多种方法

    在平常的样式排版中,我们经常遇到将某个模块隐藏,下面我整理了一下隐藏元素的多种方法以及对比(有的占据空间,有的不占据空间.有的可以点击,有的不能点击.): ( 一 )  display:  none; ...

  5. mysql那些事(5)建表存储引擎的选择

    在mysql见表的时候,会遇到选择存储引擎:MyISAM和InnoDB.究竟用哪种存储引擎好呢? 1.MyISAM:表锁:支持全文索引:读并发性能较好. 2.InnoDB:行锁:支持事务,支持外键:写 ...

  6. Modelarts与无感识别技术生态总结(浅出版)

    [摘要] Modelarts技术及相关产业已成为未来AI与大数据重点发展行业模式之一,为了促进人工智能领域科学技术快速发展,modelarts现状及生态前景成为研究热点.笔者首先总结modelarts ...

  7. 【LiteOS】LiteOS移植常见问题

    发现很多人在LiteOS的移植过程中总会遇到一些问题,现在简单做一些总结.后续有新的问题提再继续补充. 1.CMSIS版本导致的问题 问题现象一般如下图所示,编译后报错,Undefined symbo ...

  8. luogu P1327 数列排序

    题目描述 给定一个数列{an},这个数列满足ai≠aj(i≠j),现在要求你把这个数列从小到大排序,每次允许你交换其中任意一对数,请问最少需要几次交换? 输入格式 第一行,正整数n (n<=10 ...

  9. 鲲鹏来了,在EulerOS试用.NETCore-3.1

    在EulerOS试用.NETCore-3.1 前言 EulerOS其实出来有一段时间了,一直在关注,单是仅仅也只是停留在观望的阶段,目前还没有接入的打算:正好看到园子里的兄弟分享了华为云免费试用的活动 ...

  10. [TimLinux] systemd 精通CentOS7系统启动systemd

    1. 介绍 systemd: 在12种不同类型的实体单元(entity unit)间提供了一个依赖关系系统. 2. 几个概念 实体单元:为系统的启动和维护封装多种对象(object).主体单元在单元配 ...