在嵌入式项目预研前期阶段,我们常常需要对某个平台进行资源和性能方面的评估,以下是最常见的一些评估指标:
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
审核编辑 :李倩
-
嵌入式
+关注
关注
5188文章
20180浏览量
329276 -
Linux
+关注
关注
88文章
11635浏览量
218107 -
磁盘
+关注
关注
1文章
394浏览量
26307
原文标题:嵌入式linux综合性能评估
文章出处:【微信号:嵌入式应用研究院,微信公众号:嵌入式应用研究院】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
从小白到大牛:Linux嵌入式系统开发的完整指南
开源 | 60余套STM32单片机、嵌入式Linux、物联网、人工智能项目(开发板+教程+源码)
嵌入式与FPGA的区别
嵌入式需要掌握哪些核心技能?
Microchip SAMA7G54-EK评估套件:为高性能嵌入式系统打造的全功能平台
AMD 2025.1版嵌入式软件和工具的新增功能
盘点嵌入式就业所需要的技能有哪些?
怎么结合嵌入式,Linux,和FPGA三个方向达到一个均衡发展?
Linux嵌入式和单片机嵌入式的区别?
嵌入式开发入门指南:从零开始学习嵌入式
硬核升级!华清远见STM32MP157驱动开发课程助力嵌入式Linux底层开发入门进阶
飞凌嵌入式i.MX8M Mini核心板已支持Linux6.1
嵌入式开发必备-RK3562演示Linux常用系统查询命令(上)触觉智能出品

嵌入式linux综合性能评估
评论