在嵌入式項目預研前期階段,我們常常需要對某個平臺進行資源和性能方面的評估,以下是最常見的一些評估指標:
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是非??臻e的。
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
審核編輯 :李倩
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
嵌入式
+關注
關注
5082文章
19104瀏覽量
304829 -
Linux
+關注
關注
87文章
11292瀏覽量
209335 -
磁盤
+關注
關注
1文章
375瀏覽量
25201
原文標題:嵌入式linux綜合性能評估
文章出處:【微信號:嵌入式應用研究院,微信公眾號:嵌入式應用研究院】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
嵌入式 Linux 操作系統配置
隨著物聯網(IoT)和智能設備的快速發展,嵌入式系統在各個領域扮演著越來越重要的角色。Linux因其開源、靈活和穩定的特性,成為嵌入式系統的首選操作系統。 1. 硬件選擇 在配置嵌入式
【北京迅為】i.mx8mm嵌入式linux開發指南第四篇 嵌入式Linux系統移植篇第六十九章uboot移植
【北京迅為】i.mx8mm嵌入式linux開發指南第四篇 嵌入式Linux系統移植篇第六十九章uboot移植
AMD 面向嵌入式系統推出高能效 EPYC 嵌入式 8004 系列
AMD 憑借其 EPYC? 嵌入式處理器不斷樹立行業標準,為網絡、存儲和工業應用提供卓越的性能、效率、連接與創新。今天,我們正以第四代 AMD EPYC 嵌入式 8004 系列處理器擴展這一
發表于 10-11 13:58
?714次閱讀
七大嵌入式GUI盤點
提供商業技術支持,同時也繼續提供開源版本。MiniGUI為嵌入式Linux系統提供了完整的多進程支持;可以MiniGUI-Processes、MiniGUI-Threads或者
發表于 09-02 10:58
嵌入式linux開發的基本步驟有哪些?
之前,首先需要選擇合適的硬件平臺。硬件選擇需要考慮以下幾個方面: 1.1 處理器 嵌入式Linux開發需要一個處理器,常見的處理器有ARM、MIPS、PowerPC等。選擇處理器時,需要考慮處理器的性能、功耗、成本等因素。 1.
嵌入式linux開發板怎么操作
開發板概述 嵌入式Linux開發板是一種專門為嵌入式系統開發而設計的硬件平臺。它具有體積小、功耗低、性能高等特點,廣泛應用于工業控制、智能家居、醫療設備、汽車電子等領域。與傳統的PC機
嵌入式linux開發板芯片的工作原理
嵌入式Linux開發板是一種基于Linux操作系統的嵌入式系統開發平臺,它廣泛應用于工業控制、智能家居、智能交通、醫療設備等領域。 嵌入式
專家力薦|《嵌入式系統原理與開發——基于RISC-V和Linux系統》新書發售
——基于RISC-V和Linux系統》圖書,填補了高性能RISC-V應用處理器在嵌入式應用方面相關書籍的空白?!?b class='flag-5'>嵌入式系統原理與開發——基于RISC-V和
如何提升嵌入式編程能力?
和最佳實踐。 13. 閱讀相關書籍:閱讀關于嵌入式系統設計和編程的書籍,以獲得更深入的理解。 14. 構建項目:通過構建完整的嵌入式項目來綜合運用所學知識,解決實際問題。 15. 性能
發表于 06-21 10:01
焊錫膏的綜合性能該如何進行評估?
一款合適的錫膏對生產效率會帶來巨大的提升,可以減少因為錫膏性能問題導致的工期延誤。客戶在選擇錫膏產品是常常會遇到的問題就是,如何評估所選購焊錫膏綜合性能的優劣? 根據深圳福英達工業技術有限公司多年的錫膏解決方案經驗,
嵌入式工控機性能特點 嵌入式工控機應用場景
嵌入式工控機性能特點 嵌入式工控機應用場景 嵌入式工控機是一種專門設計用于工業控制系統的計算機設備。它具有與傳統計算機不同的性能特點,并且在
高端嵌入式實驗平臺
微處理器、內存芯片組、閃存芯片組和電源管理電路,擴展板則由嵌入式硬件接口、板載功能和擴展功能模塊組成。 軟件提供嵌入式主流Andriod和Linux雙系統軟件包,開放的資源滿足教學、科研、創新等應用,并提成配套實驗教程。 該平臺
評論