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


审核编辑 :李倩


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

    关注

    5081

    文章

    19079

    浏览量

    304391
  • Linux
    +关注

    关注

    87

    文章

    11259

    浏览量

    209173
  • 磁盘
    +关注

    关注

    1

    文章

    370

    浏览量

    25196

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

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

收藏 人收藏

    评论

    相关推荐

    嵌入式 Linux 操作系统配置

    随着物联网(IoT)和智能设备的快速发展,嵌入式系统在各个领域扮演着越来越重要的角色。Linux因其开源、灵活和稳定的特性,成为嵌入式系统的首选操作系统。 1. 硬件选择 在配置嵌入式
    的头像 发表于 11-06 10:22 291次阅读

    【北京迅为】i.mx8mm嵌入式linux开发指南第四篇 嵌入式Linux系统移植篇第六十九章uboot移植

    【北京迅为】i.mx8mm嵌入式linux开发指南第四篇 嵌入式Linux系统移植篇第六十九章uboot移植
    的头像 发表于 10-22 14:46 547次阅读
    【北京迅为】i.mx8mm<b class='flag-5'>嵌入式</b><b class='flag-5'>linux</b>开发指南第四篇 <b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>系统移植篇第六十九章uboot移植

    AMD 面向嵌入式系统推出高能效 EPYC 嵌入式 8004 系列

    AMD 凭借其 EPYC™ 嵌入式处理器不断树立行业标准,为网络、存储和工业应用提供卓越的性能、效率、连接与创新。今天,我们正以第四代 AMD EPYC 嵌入式 8004 系列处理器扩展这一
    发表于 10-11 13:58 708次阅读

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

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

    嵌入式linux开发板怎么操作

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

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

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

    【出版发行】嵌入式系统原理与开发——基于RISC-V和Linux系统

    【出版发行】嵌入式系统原理与开发——基于RISC-V和Linux系统
    的头像 发表于 07-26 08:36 295次阅读
    【出版发行】<b class='flag-5'>嵌入式</b>系统原理与开发——基于RISC-V和<b class='flag-5'>Linux</b>系统

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

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

    如何提升嵌入式编程能力?

    和最佳实践。 13. 阅读相关书籍:阅读关于嵌入式系统设计和编程的书籍,以获得更深入的理解。 14. 构建项目:通过构建完整的嵌入式项目来综合运用所学知识,解决实际问题。 15. 性能
    发表于 06-21 10:01

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

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

    嵌入式人工智能的就业方向有哪些?

    网络编程开发及实战下 数据库开发 Linux应用开发综合实战 三:嵌入式Linux系统工程师,Linuxkernel工程师,嵌入式
    发表于 02-26 10:17

    嵌入式工控机性能特点 嵌入式工控机应用场景

    嵌入式工控机性能特点 嵌入式工控机应用场景 嵌入式工控机是一种专门设计用于工业控制系统的计算机设备。它具有与传统计算机不同的性能特点,并且在
    的头像 发表于 02-04 11:35 661次阅读

    高端嵌入式实验平台

    微处理器、内存芯片组、闪存芯片组和电源管理电路,扩展板则由嵌入式硬件接口、板载功能和扩展功能模块组成。 软件提供嵌入式主流Andriod和Linux双系统软件包,开放的资源满足教学、科研、创新等应用,并提成配套实验教程。 该平台
    的头像 发表于 01-29 09:55 503次阅读
    高端<b class='flag-5'>嵌入式</b>实验平台

    嵌入式Linux开发的三种方式

    嵌入式Linux开发主要有三种方式:裸机开发、SDK开发和驱动开发。
    的头像 发表于 01-22 14:22 951次阅读

    什么是嵌入式系统?嵌入式系统的具体应用

    嵌入式,一般是指嵌入式系统。用于控制、监视或者辅助操作机器和设备的装置。
    的头像 发表于 12-20 13:33 2460次阅读