0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

嵌入式linux综合性能评估

嵌入式应用研究院 来源:嵌入式应用研究院 2023-01-04 15:04 次阅读

嵌入式项目预研前期阶段,我们常常需要对某个平台进行资源和性能方面的评估,以下是最常见的一些评估指标:
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

BogoMIPS Linux操作系统中衡量 计算机处理器

运行速度的一种尺度。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


审核编辑 :李倩


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    5046

    文章

    18837

    浏览量

    299068
  • Linux
    +关注

    关注

    87

    文章

    11131

    浏览量

    208013
  • 磁盘
    +关注

    关注

    1

    文章

    355

    浏览量

    25105

原文标题:嵌入式linux综合性能评估

文章出处:【微信号:嵌入式应用研究院,微信公众号:嵌入式应用研究院】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    嵌入式linux开发的基本步骤有哪些?

    之前,首先需要选择合适的硬件平台。硬件选择需要考虑以下几个方面: 1.1 处理器 嵌入式Linux开发需要一个处理器,常见的处理器有ARM、MIPS、PowerPC等。选择处理器时,需要考虑处理器的性能、功耗、成本等因素。 1.
    的头像 发表于 09-02 09:11 200次阅读

    嵌入式linux开发板怎么操作

    开发板概述 嵌入式Linux开发板是一种专门为嵌入式系统开发而设计的硬件平台。它具有体积小、功耗低、性能高等特点,广泛应用于工业控制、智能家居、医疗设备、汽车电子等领域。与传统的PC机
    的头像 发表于 09-02 09:09 216次阅读

    嵌入式linux开发板芯片的工作原理

    嵌入式Linux开发板是一种基于Linux操作系统的嵌入式系统开发平台,它广泛应用于工业控制、智能家居、智能交通、医疗设备等领域。 嵌入式
    的头像 发表于 09-02 09:07 184次阅读

    专家力荐|《嵌入式系统原理与开发——基于RISC-V和Linux系统》新书发售

    ——基于RISC-V和Linux系统》图书,填补了高性能RISC-V应用处理器在嵌入式应用方面相关书籍的空白。《嵌入式系统原理与开发——基于RISC-V和
    的头像 发表于 07-24 08:20 300次阅读
    专家力荐|《<b class='flag-5'>嵌入式</b>系统原理与开发——基于RISC-V和<b class='flag-5'>Linux</b>系统》新书发售

    焊锡膏的综合性能该如何进行评估

    一款合适的锡膏对生产效率会带来巨大的提升,可以减少因为锡膏性能问题导致的工期延误。客户在选择锡膏产品是常常会遇到的问题就是,如何评估所选购焊锡膏综合性能的优劣? 根据深圳福英达工业技术有限公司多年的锡膏解决方案经验,
    的头像 发表于 03-20 09:13 261次阅读

    图像采集综合评估嵌入式指纹识别系统

    电子发烧友网站提供《图像采集综合评估嵌入式指纹识别系统.pdf》资料免费下载
    发表于 11-07 15:21 0次下载
    图像采集<b class='flag-5'>综合</b><b class='flag-5'>评估</b>的<b class='flag-5'>嵌入式</b>指纹识别系统

    基于嵌入式Linux的无线多媒体传输系统设计与实现

    电子发烧友网站提供《基于嵌入式Linux的无线多媒体传输系统设计与实现.pdf》资料免费下载
    发表于 10-26 14:37 0次下载
    基于<b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>的无线多媒体传输系统设计与实现

    嵌入式linux-聊天程序设计

    电子发烧友网站提供《嵌入式linux-聊天程序设计.doc》资料免费下载
    发表于 10-26 11:42 8次下载
    <b class='flag-5'>嵌入式</b><b class='flag-5'>linux</b>-聊天程序设计

    基于嵌入式Linux智能家居监控系统设计

    电子发烧友网站提供《基于嵌入式Linux智能家居监控系统设计.pdf》资料免费下载
    发表于 10-25 10:02 1次下载
    基于<b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>智能家居监控系统设计

    基于嵌入式Linux的数字相框设计

    电子发烧友网站提供《基于嵌入式Linux的数字相框设计.pdf》资料免费下载
    发表于 10-23 09:45 0次下载
    基于<b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>的数字相框设计

    如何评估所选购焊锡膏综合性能的优劣?

    简要分享如何评估所选购焊锡膏综合性能的优劣?
    的头像 发表于 10-23 09:08 505次阅读

    基于嵌入式Linux系统的MiniGUI的移植

    电子发烧友网站提供《基于嵌入式Linux系统的MiniGUI的移植.pdf》资料免费下载
    发表于 10-12 10:20 1次下载
    基于<b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>系统的MiniGUI的移植

    什么是嵌入式Linux

    什么是嵌入式Linux? 对于很多电气、电信、通信专业的同学来说,对口专业就业方向主要有软、硬件两个方向。无论是对于学生还是就业而言,软硬件的开发学习,嵌入式物联网在近年来无疑是一个摆在面前
    发表于 10-11 13:47

    基于Linux嵌入式视觉系统设计原理

    电子发烧友网站提供《基于Linux嵌入式视觉系统设计原理.pdf》资料免费下载
    发表于 10-11 11:26 0次下载
    基于<b class='flag-5'>Linux</b>的<b class='flag-5'>嵌入式</b>视觉系统设计原理

    嵌入式Linux在磁场测量系统中的应用

    电子发烧友网站提供《嵌入式Linux在磁场测量系统中的应用.pdf》资料免费下载
    发表于 10-11 10:11 0次下载
    <b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>在磁场测量系统中的应用