啟動(dòng)耗時(shí)統(tǒng)計(jì)
printk time
打開kernel配置:
kernel hacking --- >
[*] Show timing information on printks
打開后,每個(gè)printk的前面都會(huì)顯示時(shí)間戳
主要用來測量內(nèi)核啟動(dòng)過程各個(gè)階段的耗時(shí)
initcall_debug
眾所周知,kernel
啟動(dòng)時(shí)會(huì)執(zhí)行不同等級的initcall
,而每個(gè)initcall
的耗時(shí)也是可以統(tǒng)計(jì)的。
在kernel
的cmdline
中加入參數(shù)initcall_debug=1
:
initcall_debug=1
setargs_nand=setenv bootargs console=${console} earlyprintk=${earlyprintk} root=${nand_root} initcall_debug=${initcall_debug} init=${init}
開啟后,就能打印每個(gè)initcall
函數(shù)調(diào)用及耗時(shí)。
bootgraph
內(nèi)核自帶了一個(gè)工具用于統(tǒng)計(jì)啟動(dòng)時(shí)間:scripts/bootgraph.pl
使用該工具需要打開內(nèi)核配置CONFIG_PRINTK_TIME=y
,并且在cmdline
中加上"initcall_debug=1
"
系統(tǒng)啟動(dòng)之后,執(zhí)行命令:
dmesg|perl $(kernel_dir)/script/bootgraph.pl > out.svg
用瀏覽器查看out.svg
文件,可以看到內(nèi)核啟動(dòng)過程中各個(gè)階段的耗時(shí)。
這個(gè)工具有點(diǎn)類似于perf
的火焰圖,可以統(tǒng)計(jì)啟動(dòng)各階段的耗時(shí)。
bootchart
除了內(nèi)核自帶的工具,也有開源的工具可用:bootchart
。
bootchart是一個(gè)用于linux啟動(dòng)過程性能分析的開源軟件工具,在系統(tǒng)啟動(dòng)過程自動(dòng)收集CPU占用率、進(jìn)程等信息,并以圖形方式顯示分析結(jié)果,可用作指導(dǎo)優(yōu)化系統(tǒng)啟動(dòng)過程。
- 修改
kernel cmdline
。將其中的init
修改為“init=/sbin/bootchartd
”。 - 收集信息。
bootchartd
會(huì)從/proc/stat
,/proc/diskstat
,/proc/[pid]/stat
中采集信息,經(jīng)過處理后保存為bootchart.tgz
文件 - 轉(zhuǎn)換圖片。在
pc
上通過pybootchartgui.py
工具將bootchart.tgz
轉(zhuǎn)換為bootchart.png
,方便分析
最后也會(huì)成圖片供做分析,例如:
bootchar
主要用來測量掛載文件系統(tǒng)到主應(yīng)用程序啟動(dòng)過程中的耗時(shí)
gpio+示波器
可以找一個(gè)在系統(tǒng)啟動(dòng)過程中空閑的GPIO
,在適當(dāng)位置設(shè)置GPIO
電平。
通過示波器抓取波形可以得到各階段耗時(shí)。
通常該方法被用來 測量整個(gè)啟動(dòng)的耗時(shí),或者各階段的耗時(shí) ,該方法也是用的比較多的。
-
示波器
+關(guān)注
關(guān)注
113文章
6279瀏覽量
185595 -
內(nèi)核
+關(guān)注
關(guān)注
3文章
1380瀏覽量
40359 -
Linux
+關(guān)注
關(guān)注
87文章
11336瀏覽量
210097
發(fā)布評論請先 登錄
相關(guān)推薦
請問DM8168上怎么統(tǒng)計(jì)算法程序的耗時(shí)?
幾種Linux下后臺(tái)啟動(dòng)jar包的方法介紹
內(nèi)核是如何啟動(dòng)的
Cortex-M3內(nèi)核HardFault錯(cuò)誤調(diào)試定位方法有哪幾種
分辨矩陣法耗時(shí)推算
linux內(nèi)核啟動(dòng)內(nèi)核解壓過程分析
用戶與內(nèi)核空間數(shù)據(jù)交換的方式之一:內(nèi)核啟動(dòng)參數(shù)
內(nèi)核級HOOK的幾種實(shí)現(xiàn)方法與應(yīng)用說明
電機(jī)軟啟動(dòng)有幾種方式_電機(jī)軟啟動(dòng)最簡單的方法
Linux內(nèi)核常用的幾種鏡像文件
![Linux<b class='flag-5'>內(nèi)核</b>常用的<b class='flag-5'>幾種</b>鏡像文件](https://file1.elecfans.com/web2/M00/89/F4/wKgZomSNLMuATh-IAABZZxH4jhI349.jpg)
如何在內(nèi)核中啟動(dòng)secondary cpu
![如何在<b class='flag-5'>內(nèi)核</b>中<b class='flag-5'>啟動(dòng)</b>secondary cpu](https://file1.elecfans.com/web2/M00/B4/70/wKgZomVu01iARkXLAAFbKxedE4Q782.jpg)
評論