在嵌入式項目預研前期階段,我們常常需要對某個平臺進行資源和性能方面的評估,以下是最常見的一些評估指標:
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
審核編輯 :李倩
-
嵌入式
+關注
關注
5121文章
19413瀏覽量
312522 -
Linux
+關注
關注
87文章
11408瀏覽量
212167 -
磁盤
+關注
關注
1文章
386瀏覽量
25525
原文標題:嵌入式linux綜合性能評估
文章出處:【微信號:嵌入式應用研究院,微信公眾號:嵌入式應用研究院】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
飛凌嵌入式i.MX8M Mini核心板已支持Linux6.1

嵌入式開發必備-RK3562演示Linux常用系統查詢命令(上)觸覺智能出品

嵌入式 Linux 操作系統配置
【北京迅為】i.mx8mm嵌入式linux開發指南第四篇 嵌入式Linux系統移植篇第六十九章uboot移植

AMD 面向嵌入式系統推出高能效 EPYC 嵌入式 8004 系列
嵌入式主板是什么意思?嵌入式主板全面解析
七大嵌入式GUI盤點
嵌入式linux開發的基本步驟有哪些?
嵌入式linux開發板怎么操作
嵌入式linux開發板芯片的工作原理
專家力薦|《嵌入式系統原理與開發——基于RISC-V和Linux系統》新書發售

從菜鳥到大牛!嵌入式完整學習路線:STM32單片機-RTOS-Linux

評論