在嵌入式项目预研前期阶段,我们常常需要对某个平台进行资源和性能方面的评估,以下是最常见的一些评估指标:
1、内存评估
系统内存空间通过free、cat /proc/meminfo或者top,查看内存情况。一般有这样一个经验公式:
-
应用程序可用内存/系统物理内存>70%时,表示系统内存资源非常充足,不影响系统性能;
-
20%<应用程序可用内存/系统物理内存<70%时,表示系统内存资源基本能 满足应用需求,暂时不影响系统性能;
-
应用程序可用内存/系统物理内 存<20%时,表示系统内存资源紧缺,需要增加系统内存;
$free
totalusedfreesharedbuff/cacheavailable
Mem:123496215127513211322685263416
Swap:000
$cat/proc/meminfo
MemTotal: 123496 kB //所有可用的内存大小,物理内存减去预留位和内核使用。系统从加电开始到引导完成,firmware/BIOS要预留一些内存,内核本身要占用一些内存,最后剩下可供内核支配的内存就是MemTotal。这个值在系统运行期间一般是固定不变的,重启会改变。
MemFree: 75132 kB //表示系统尚未使用的内存。
MemAvailable:63400kB//真正的系统可用内存,系统中有些内存虽然已被使用但是可以回收的,比如cache/buffer、slab都有一部分可以回收,所以这部分可回收的内存加上MemFree才是系统可用的内存
Buffers:5644kB//用来给块设备做缓存的内存,(文件系统的metadata、pages)
Cached:19040kB//分配给文件缓冲区的内存,例如vi一个文件,就会将未保存的内容写到该缓冲区
SwapCached:0kB//被高速缓冲存储用的交换空间(硬盘的swap)的大小
Active:20356kB//经常使用的高速缓冲存储器页面文件大小
Inactive:12628kB//不经常使用的高速缓冲存储器文件大小
Active(anon):9412kB//活跃的匿名内存
Inactive(anon):20kB//不活跃的匿名内存
Active(file):10944kB//活跃的文件使用内存
Inactive(file):12608kB//不活跃的文件使用内存
Unevictable:0kB//不能被释放的内存页
Mlocked:0kB//系统调用mlock
SwapTotal:0kB//交换空间总内存
SwapFree:0kB//交换空间空闲内存
Dirty:0kB//等待被写回到磁盘的
Writeback:0kB//正在被写回的
AnonPages:8300kB//未映射页的内存/映射到用户空间的非文件页表大小
Mapped:11480kB//映射文件内存
Shmem:1132kB//已经被分配的共享内存
KReclaimable:2132kB//内核内存,内存压力时内核尝试回收
Slab:8240kB//内核数据结构缓存
SReclaimable:2132kB//可收回slab内存
SUnreclaim:6108kB//不可收回slab内存
KernelStack:568kB//内核消耗的内存
PageTables:516kB//管理内存分页的索引表的大小
NFS_Unstable:0kB//不稳定页表的大小
Bounce:0kB//在低端内存中分配一个临时buffer作为跳转,把位于高端内存的缓存数据复制到此处消耗的内存
WritebackTmp:0kB//FUSE用于临时写回缓冲区的内存
CommitLimit:61748kB//系统实际可分配内存
Committed_AS:58568kB//系统当前已分配的内存
VmallocTotal:1048372kB//预留的虚拟内存总量
VmallocUsed:1288kB//已经被使用的虚拟内存
VmallocChunk:0kB//可分配的最大的逻辑连续的虚拟内存
Percpu:32kB//percpu机制使用的内存
2、磁盘评估
获取磁盘空间
$df-h
FilesystemSizeUsedAvailableUse%Mountedon
/dev/root6.0M6.0M0100%/rom
tmpfs60.3M1.1M59.2M2%/tmp
/dev/mtdblock623.8M9.0M14.8M38%/overlay
overlayfs:/overlay23.8M9.0M14.8M38%/
tmpfs512.0K0512.0K0%/dev
- Filesystem:代表该文件系统时哪个分区,所以列出的是设备名称。
- 1K-blocks:说明下面的数字单位是1KB,可利用-h或-m来改变单位大小,也可以用-B来设置。
- Used:已经使用的空间大小。
- Available:剩余的空间大小。
- Use%:磁盘使用率。如果使用率在90%以上时,就需要注意了,避免磁盘容量不足出现系统问题,尤其是对于文件内容增加较快的情况(如/home、/var/spool/mail等)。
- Mounted on:磁盘挂载的目录,即该磁盘的内容可以在挂载目录下面找到。
$cat/proc/partitions
majorminor#blocksname
310192mtdblock0
31164mtdblock1
31264mtdblock2
31332448mtdblock3
3141962mtdblock4
31530485mtdblock5
31624384mtdblock6
3、磁盘写入速度评估
$timeddif=/dev/urandomof=ranfilebs=1Mcount=1
1+0recordsin
1+0recordsout
real0m0.126s//程序的实际运行时间
user0m0.000s//用户态的时间
sys0m0.110s//内核态的时间
4、CPU评估
获取CPU信息
$cat/proc/cpuinfo
processor:0
modelname:ARMv7Processorrev2(v7l)
BogoMIPS:298.80
Features:halfthumbfastmultvfpedspthumbeeneonvfpv3tlsvfpd32
CPUimplementer:0x41
CPUarchitecture:7
CPUvariant:0x3
CPUpart:0xc08
CPUrevision:2
Hardware:GenericAM33XX(FlattenedDeviceTree)
Revision:0000
Serial:0000000000000000
运行速度的一种尺度。Bogo是Bogus(伪)的意思;MIPS是每秒百万条指令。
5、cpu占用情况
$uptime
1601up6:40,loadaverage:1.27,1.27,1.39
- 1601 :服务器事件
- 6:40 :当前服务器运行时长
- load average:这个输出值,这三个值的大小一般不能大于系统CPU的个数,例如,本输出中系统有8个CPU,如果load average的三个值长期大于8时,说明CPU很繁忙,负载很高,可能会影响系统性能,但是偶尔大于8时,倒不用担心,一般不会影响系统性能。相反,如果load average的输出值小于CPU的个数,则表示CPU还有空闲的时间片,比如本例中的输出,CPU是非常空闲的。
6、系统运行情况
$top
Mem:48420Kused,75076Kfree,1132Kshrd,5644Kbuff,19040Kcached
CPU:30%usr68%sys0%nic0%idle0%io0%irq0%sirq
Loadaverage:1.051.141.062/716586
PIDPPIDUSERSTATVSZ%VSZ%CPUCOMMAND
72rootSW00%2%[ksoftirqd/0]
60645894rootS4677238%1%./myAPP
一般 经验
- user% + sys%< 70%状态良好
- user% + sys%= 85% 状态报警
- user% + sys% >=90% 状态糟糕
7、其他参数
系统现在参数
$ulimit-a
corefilesize(blocks,-c)unlimited
datasegsize(kbytes,-d)unlimited
schedulingpriority(-e)0
filesize(blocks,-f)unlimited
pendingsignals(-i)3814
maxlockedmemory(kbytes,-l)64
maxmemorysize(kbytes,-m)unlimited
openfiles(-n)1024
pipesize(512bytes,-p)8
POSIXmessagequeues(bytes,-q)819200
real-timepriority(-r)0
stacksize(kbytes,-s)8192
cputime(seconds,-t)unlimited
maxuserprocesses(-u)3814
virtualmemory(kbytes,-v)unlimited
filelocks(-x)unlimited
8、进程资源
新建一个进程需要最小的内存空间本机为8M,具体可通过ulimit -s查看
$ulimit-s
8192
审核编辑 :李倩
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
嵌入式
+关注
关注
5081文章
19079浏览量
304391 -
Linux
+关注
关注
87文章
11259浏览量
209173 -
磁盘
+关注
关注
1文章
370浏览量
25196
原文标题:嵌入式linux综合性能评估
文章出处:【微信号:嵌入式应用研究院,微信公众号:嵌入式应用研究院】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
嵌入式 Linux 操作系统配置
随着物联网(IoT)和智能设备的快速发展,嵌入式系统在各个领域扮演着越来越重要的角色。Linux因其开源、灵活和稳定的特性,成为嵌入式系统的首选操作系统。 1. 硬件选择 在配置嵌入式
【北京迅为】i.mx8mm嵌入式linux开发指南第四篇 嵌入式Linux系统移植篇第六十九章uboot移植
【北京迅为】i.mx8mm嵌入式linux开发指南第四篇 嵌入式Linux系统移植篇第六十九章uboot移植
AMD 面向嵌入式系统推出高能效 EPYC 嵌入式 8004 系列
AMD 凭借其 EPYC™ 嵌入式处理器不断树立行业标准,为网络、存储和工业应用提供卓越的性能、效率、连接与创新。今天,我们正以第四代 AMD EPYC 嵌入式 8004 系列处理器扩展这一
发表于 10-11 13:58
•708次阅读
嵌入式linux开发的基本步骤有哪些?
之前,首先需要选择合适的硬件平台。硬件选择需要考虑以下几个方面: 1.1 处理器 嵌入式Linux开发需要一个处理器,常见的处理器有ARM、MIPS、PowerPC等。选择处理器时,需要考虑处理器的性能、功耗、成本等因素。 1.
嵌入式linux开发板怎么操作
开发板概述 嵌入式Linux开发板是一种专门为嵌入式系统开发而设计的硬件平台。它具有体积小、功耗低、性能高等特点,广泛应用于工业控制、智能家居、医疗设备、汽车电子等领域。与传统的PC机
嵌入式linux开发板芯片的工作原理
嵌入式Linux开发板是一种基于Linux操作系统的嵌入式系统开发平台,它广泛应用于工业控制、智能家居、智能交通、医疗设备等领域。 嵌入式
专家力荐|《嵌入式系统原理与开发——基于RISC-V和Linux系统》新书发售
——基于RISC-V和Linux系统》图书,填补了高性能RISC-V应用处理器在嵌入式应用方面相关书籍的空白。《嵌入式系统原理与开发——基于RISC-V和
如何提升嵌入式编程能力?
和最佳实践。 13. 阅读相关书籍:阅读关于嵌入式系统设计和编程的书籍,以获得更深入的理解。 14. 构建项目:通过构建完整的嵌入式项目来综合运用所学知识,解决实际问题。 15. 性能
发表于 06-21 10:01
焊锡膏的综合性能该如何进行评估?
一款合适的锡膏对生产效率会带来巨大的提升,可以减少因为锡膏性能问题导致的工期延误。客户在选择锡膏产品是常常会遇到的问题就是,如何评估所选购焊锡膏综合性能的优劣? 根据深圳福英达工业技术有限公司多年的锡膏解决方案经验,
嵌入式工控机性能特点 嵌入式工控机应用场景
嵌入式工控机性能特点 嵌入式工控机应用场景 嵌入式工控机是一种专门设计用于工业控制系统的计算机设备。它具有与传统计算机不同的性能特点,并且在
高端嵌入式实验平台
微处理器、内存芯片组、闪存芯片组和电源管理电路,扩展板则由嵌入式硬件接口、板载功能和扩展功能模块组成。 软件提供嵌入式主流Andriod和Linux双系统软件包,开放的资源满足教学、科研、创新等应用,并提成配套实验教程。 该平台
评论