在嵌入式項目預研前期階段,我們常常需要對某個平臺進行資源和性能方面的評估,以下是最常見的一些評估指標:
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
審核編輯 :李倩
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
嵌入式
+關注
關注
5198文章
20449瀏覽量
334099 -
Linux
+關注
關注
88文章
11760瀏覽量
219042 -
磁盤
+關注
關注
1文章
398瀏覽量
26479
原文標題:嵌入式linux綜合性能評估
文章出處:【微信號:嵌入式應用研究院,微信公眾號:嵌入式應用研究院】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
熱點推薦
比斯特電池組綜合性能測試機的一站式解決方案
對效率、精度與成本控制的多重要求。深圳比斯特自動化設備有限公司創新推出的電池組綜合性能測試機,以其高度集成、智能準確的“一站式”解決方案,正在重新定義電池組出廠測試的行業標準。
Linux 下開發嵌入式必備命令速查表
在嵌入式開發中,Linux系統幾乎成為必備的開發環境。不管你是在做STM32、RaspberryPi、還是基于ARM的板子,熟練掌握Linux命令不僅能加快開發效率,還能讓你在調試、交叉編譯、文件
如何在Zynq UltraScale+ MPSoC平臺上通過JTAG啟動嵌入式Linux鏡像
在之前文章中,我們介紹了如何使用 XSCT 工具通過 JTAG 在 Zynq SoC 上啟動嵌入式 Linux 鏡像(從 JTAG 啟動 Zynq-7000 嵌入式 Linux:使用
什么是嵌入式應用開發?
包括ARM7、ARM9、ARM11、PowerPC、MIPS等。這些處理器和編程語言的選擇取決于具體的硬件條件和開發需求?。
綜上所述,嵌入式應用開發是一個綜合性的技術領域,涉及硬件和軟件的緊密結合,廣泛應用于各種設備和系統中,具有廣泛的應用前景和發展空間。
發表于 01-12 16:13
arm嵌入式主板優缺點
Windows CE、Linux等主流的嵌入式操作系統。
ARM的優點
一、高可靠性、高穩定性:在工業控制領域,性能穩定可靠是自動控制基本的要求,ARM嵌入式主板有著很特殊
發表于 01-08 07:08
從小白到大牛:Linux嵌入式系統開發的完整指南
從小白到大牛:Linux嵌入式系統開發的完整指南 一、小白入門:搭建 Linux 嵌入式開發的認知地基? 對于零基礎學習者,首先要打破 “嵌入式
發表于 12-16 10:42
開源 | 60余套STM32單片機、嵌入式Linux、物聯網、人工智能項目(開發板+教程+源碼)
嵌入式實戰項目推薦15個嵌入式Linux+Qt綜合應用項目,涉及家居、醫療、農業等多種應用領域,案例中使用了嵌入式、物聯網、人工智能多技術,
嵌入式與FPGA的區別
應用。
FPGA的開發是邏輯實現+約束+綜合+仿真,嵌入式的開發是編碼+編譯+調試,如果是對數字電路設計感興趣,可以考慮FPGA。
?在了解下就業機會哪個多?
?1、嵌入式的就業機會很多,優點就是就業容易,因為
發表于 11-20 07:12
嵌入式需要掌握哪些核心技能?
嵌入式需要掌握哪些核心技能?
若想通過學習嵌入式技術提升就業競爭力,需重點掌握C語言、嵌入式硬件架構、RTOS/Linux開發、通信協議四大核心技能,并結合行業需求積累項目經驗。
發表于 10-21 16:25
Microchip SAMA7G54-EK評估套件:為高性能嵌入式系統打造的全功能平臺
功耗嵌入式微處理器 (MPU),運行頻率高達1GHz。該套件由主流Linux發行版、裸機軟件框架和RTOS提供支持。這樣即可輕松開始開發。該套件包括板載嵌入式調試器,無需外部工具即可進行編程或調試。
AMD 2025.1版嵌入式軟件和工具的新增功能
AMD 2025.1 版嵌入式軟件和工具是面向新一代嵌入式系統開發而打造的綜合平臺,全面加速概念構想到部署落地。
怎么結合嵌入式,Linux,和FPGA三個方向達到一個均衡發展?
在嵌入式領域,不少人都懷揣著讓嵌入式、Linux 和 FPGA 三個方向實現均衡發展的夢想,然而實踐中卻面臨諸多挑戰。就像備受矚目的全棧工程師稚暉君,他從大學玩單片機起步,憑借將智能算法融入嵌
Linux嵌入式和單片機嵌入式的區別?
:成本較低,適合預算有限的項目。
Linux嵌入式 :成本較高,適合對功能和性能有較高要求的項目。
8. 社區和支持 :
單片機嵌入式 :社區和支持相對較小,但也有一些專業的論壇
發表于 06-20 09:46
嵌入式開發入門指南:從零開始學習嵌入式
特定功能的計算機系統,廣泛應用于智能家居、工業控制、醫療設備、車載系統等領域。 2. 學習嵌入式開發的前置知識熟悉C語言編程掌握基本的數據結構與算法了解數字電路與微控制器原理熟悉Linux操作系統
發表于 05-15 09:29
嵌入式linux綜合性能評估
評論