国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux性能分析實戰(zhàn):用trace揪出卡頓、高CPU的“真兇”

jf_44130326 ? 來源:Linux1024 ? 2026-02-03 15:24 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Linux開發(fā)或運維的你,是否常被這些問題困擾:服務(wù)突然卡頓卻找不到根源,CPU占用率飆升但查不到罪魁禍首,系統(tǒng)響應(yīng)變慢卻摸不清瓶頸?其實,Linux內(nèi)核早已為我們準備了透視鏡”——trace跟蹤技術(shù),今天就手把手教你從生成trace文件到可視化分析,搞定性能難題!

wKgZPGkanJaAQBRoAAMpnATTzdc834.png

一、先搞懂:trace分析的核心工具

在開始實操前,我們先理清幾個關(guān)鍵工具的作用,避免知其然不知其所以然

?debugfs/tracefsLinux內(nèi)核提供的調(diào)試文件系統(tǒng),是trace分析的基礎(chǔ)設(shè)施debugfs用于暴露內(nèi)核調(diào)試信息,tracefs專門記錄內(nèi)核/應(yīng)用的事件(如CPU調(diào)度、系統(tǒng)調(diào)用),后續(xù)工具都依賴這兩個文件系統(tǒng)。

?atraceAndroid團隊推出的跟蹤工具(也適用于Linux),能收集內(nèi)核事件(sched調(diào)度、syscalls系統(tǒng)調(diào)用)和應(yīng)用活動(如線程狀態(tài)),生成原始trace文件。

?catapultGoogle開源的性能分析套件,其中trace2html工具能將原始trace文件轉(zhuǎn)成交互式HTML報告,讓我們用可視化方式快速定位問題。

?adb:跨設(shè)備傳輸工具,當(dāng)我們在嵌入式Linux(如開發(fā)板)或Android設(shè)備上分析時,用它實現(xiàn)本地電腦與目標設(shè)備的文件傳輸。

二、手把手實操:從0生成trace分析報告

接下來我們以分析某Linux服務(wù)卡頓為例,按步驟完成整個流程,所有命令都已標注細節(jié),新手也能跟著做!

步驟1:檢查核心文件系統(tǒng)是否掛載

首先要確認debugfstracefs已掛載——這是后續(xù)操作的前提,沒掛載的話工具會罷工

在目標Linux設(shè)備(或通過adb連接的遠程設(shè)備)上執(zhí)行:

#檢查debugfs是否掛載

mount | grep debugfs

#檢查tracefs是否掛載

mount | grep trace

關(guān)鍵補充:

?如果執(zhí)行后無輸出(文件系統(tǒng)未掛載),手動掛載(需root權(quán)限):

#掛載debugfs到默認路徑

mount -t debugfs debugfs /sys/kernel/debug

#掛載tracefs到默認路徑

mount -t tracefs tracefs /sys/kernel/tracing

?不同Linux發(fā)行版路徑可能有差異(如部分嵌入式設(shè)備是/debug),可通過find / -name debugfs查找實際路徑。

步驟2:上傳工具到目標設(shè)備

我們需要將兩個關(guān)鍵文件傳到目標設(shè)備:atrace.sh(封裝atrace命令的腳本,簡化參數(shù)配置)和catapult-main.zip(可視化工具包)。

在本地電腦(Windows為例)打開命令行,執(zhí)行adb傳輸命令:

# 1.上傳atrace.sh腳本到目標設(shè)備的根目錄(/

adb push C:Usersmdg_rDesktoppullatrace.sh /

# 2.上傳catapult工具壓縮包到根目錄

adb push C:Usersmdg_rDesktoppullcatapult-main.zip /

# 3.atrace.sh添加可執(zhí)行權(quán)限(Linux文件默認無執(zhí)行權(quán))

adb shell chmod 777 /atrace.sh

小知識:

?chmod 777表示所有用戶(所有者、組、其他)都有讀、寫、執(zhí)行權(quán)限,測試環(huán)境用很方便;生產(chǎn)環(huán)境建議縮小權(quán)限(如chmod 700,僅所有者可執(zhí)行)。

?如果目標設(shè)備不是Android(如Ubuntu服務(wù)器),無需用adb,直接用scp傳輸文件:scp C:xxxatrace.sh user@服務(wù)器IP:/

步驟3:生成原始trace文件

執(zhí)行atrace.sh腳本,收集系統(tǒng)運行數(shù)據(jù)。腳本參數(shù)my_trace是輸出文件名,3表示跟蹤3(根據(jù)需求調(diào)整,建議1-5秒,避免文件過大)。

在目標設(shè)備上執(zhí)行:

#進入根目錄

cd /

#運行腳本,跟蹤3秒,輸出到my_trace文件

./atrace.sh my_trace 3

深入理解:

?atrace.sh本質(zhì)是封裝了atrace命令,你也可以直接用原生命令自定義跟蹤內(nèi)容,比如只跟蹤CPU調(diào)度和系統(tǒng)調(diào)用:

#原生atrace命令:跟蹤sched(調(diào)度)、syscalls(系統(tǒng)調(diào)用),持續(xù)3

atrace --set_events sched,syscalls -o my_trace 3

?常見跟蹤事件類型:schedCPU調(diào)度)、gfx(圖形渲染,適合UI場景)、disk(磁盤I/O)、mem(內(nèi)存活動),根據(jù)性能問題類型選擇。

步驟4:將trace文件轉(zhuǎn)成可視化HTML

原始trace文件是純文本,幾百行甚至幾十萬行數(shù)據(jù),直接看根本看不懂——這時候catapulttrace2html就派上用場了,能把數(shù)據(jù)轉(zhuǎn)成帶時間軸的交互式報告。

先解壓catapult工具包,再執(zhí)行轉(zhuǎn)換命令:

# 1.解壓catapult壓縮包(如果已解壓可跳過)

unzip catapult-main.zip

# 2.執(zhí)行trace2html,生成HTML報告

./catapult-main/tracing/bin/trace2html --config chrome --output my_trace.html my_trace

關(guān)鍵說明:

?--config chrome表示按Chrome瀏覽器的報告格式生成(最常用,支持豐富的視圖);

?執(zhí)行后會生成my_trace.html文件,這個就是我們最終要分析的性能報告

步驟5:拉取報告到本地分析

目標設(shè)備(如開發(fā)板)可能沒有瀏覽器,把HTML文件拉回本地電腦,用ChromeEdge等瀏覽器打開分析。

在本地電腦執(zhí)行adb拉取命令:

adb pull /my_trace.html C:Usersmdg_rDesktoppull

至此,我們就完成了從收集數(shù)據(jù)生成報告的全流程,接下來就是最核心的——分析報告找問題

三、核心技巧:怎么從HTML報告中揪出性能瓶頸?

打開my_trace.html后,主要關(guān)注3個核心視圖,90%的性能問題都能在這里找到答案:

1.時間軸視圖(Timeline):看卡頓點

這是最直觀的視圖,橫向是時間(從跟蹤開始到結(jié)束),縱向分3層:

?CPU核心層:每個CPU核心的運行狀態(tài)(綠色=運行,灰色=空閑,橙色=中斷);

?進程層:每個進程的活動時間線;

?線程層:每個線程的狀態(tài)(Running =運行,Waiting =等待,Sleeping =休眠)。

分析方法:

?異常等待:如果某個業(yè)務(wù)線程長時間處于Waiting狀態(tài)(比如超過100ms),可能是CPU資源不足(被其他進程搶占)或鎖競爭(線程等鎖);

?時間斷層:如果整個時間軸突然有一段無活動(灰色),可能是系統(tǒng)調(diào)用阻塞(如磁盤I/O卡住)。

2. CPU占用視圖(CPU Usage):找CPU的進程

這個視圖用柱狀圖或折線圖展示每個CPU核心的占用率,以及每個進程對CPU的消耗占比。

分析方法:

?峰值:如果某進程的CPU占用率突然飆升到90%以上,且持續(xù)時間長,那它很可能是性能瓶頸;

?核心負載均衡:如果只有1CPU核心占用率高,其他核心空閑,可能是進程線程數(shù)太少,或存在單線程瓶頸。

3.事件詳情視圖(Event Details):查耗時操作

點擊時間軸上的任意事件(如sys_read系統(tǒng)調(diào)用、sched_switch調(diào)度事件),會彈出詳情面板,顯示:

?事件開始/結(jié)束時間、持續(xù)時長;

?關(guān)鍵參數(shù)(如sys_read的文件描述符、讀取字節(jié)數(shù));

?調(diào)用棧(如果開啟了棧跟蹤)。

分析方法:

?長耗時事件:比如sys_write耗時超過50ms,可能是磁盤寫入速度慢;sched_switch頻繁,可能是進程切換太頻繁(上下文切換開銷大);

?調(diào)用棧:如果某函數(shù)調(diào)用耗時久,可順著調(diào)用棧定位到具體代碼(需配合符號表)。

四、避坑指南:這些問題別踩!

1.trace有性能開銷,生產(chǎn)環(huán)境慎用

跟蹤過程會消耗CPU和內(nèi)存(尤其是跟蹤事件多、時長久時),生產(chǎn)環(huán)境建議:縮短跟蹤時長(1-3秒);只跟蹤關(guān)鍵事件(如只跟蹤sched+syscalls);避開業(yè)務(wù)高峰期。

2.權(quán)限不夠?先提權(quán)!

掛載tracefs/debugfs、運行atrace都需要root權(quán)限,執(zhí)行命令前加sudo(如sudo ./atrace.sh),或切換到root用戶(su root)。

3.文件太大打不開?先篩選事件

如果trace文件超過100MBHTML報告可能加載緩慢,建議在生成trace時用--set_events篩選事件,比如只跟蹤與業(yè)務(wù)相關(guān)的進程:atrace -p 1234(進程ID-o my_trace 3

4.工具兼容性問題

?atrace在非Android設(shè)備上需安裝依賴:Ubuntu/CentOS可執(zhí)行sudo apt install android-tools-adb(部分系統(tǒng)需手動編譯atrace);

?catapult需要Python環(huán)境(Python 2.73.x),如果執(zhí)行trace2html報錯,先檢查Python是否安裝:python --version

五、總結(jié)

今天我們用檢查文件系統(tǒng)上傳工具生成trace→轉(zhuǎn)HTML→分析報告的流程,完整走了一遍Linux trace性能分析。這套方法的核心優(yōu)勢是:

?底層可見:能看到內(nèi)核級事件(如調(diào)度、系統(tǒng)調(diào)用),比topps等工具更深入;

?可視化直觀HTML報告比純文本日志更容易定位問題;

?跨場景適用:嵌入式Linux、服務(wù)器、Android設(shè)備都能用。

如果你的項目中遇到了特殊的性能問題(比如內(nèi)存泄漏、網(wǎng)絡(luò)延遲),或者對trace分析有疑問,歡迎在評論區(qū)留言!需要atrace.sh腳本模板或catapult工具包的朋友,也可以私信我獲取~



聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 內(nèi)核
    +關(guān)注

    關(guān)注

    4

    文章

    1467

    瀏覽量

    42872
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    11277

    瀏覽量

    224952
  • Linux
    +關(guān)注

    關(guān)注

    88

    文章

    11758

    瀏覽量

    219009
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    Linux系統(tǒng)性能指南

    Linux服務(wù)器運行了很多應(yīng)用,在負載下,服務(wù)器可能會出現(xiàn)性能瓶頸,例如CPU利用率過高、內(nèi)存不足、磁盤I/O瓶頸等,從而導(dǎo)致系統(tǒng)
    的頭像 發(fā)表于 06-23 14:12 ?1780次閱讀
    <b class='flag-5'>Linux</b>系統(tǒng)<b class='flag-5'>性能</b>指南

    鴻蒙5開發(fā)寶藏案例分享---性能優(yōu)化案例解析

    ;>trace</span>文件分析耗時操作,精確定位瓶頸。實戰(zhàn)案例 :頁面打開時延 操作流程 **: ** 體檢工具導(dǎo)出<span
    發(fā)表于 06-12 16:36

    鴻蒙5開發(fā)寶藏案例分享---點擊完成時延分析

    ... profiler.stopTrace(\'page_switch\'); 幀率分析揪出超時渲染幀(紅色警告幀) 調(diào)用棧追蹤:ArkTS/Native雙視角分析 支持冷啟動/
    發(fā)表于 06-12 17:03

    鴻蒙5開發(fā)寶藏案例分享---Web頁面內(nèi)點擊響應(yīng)時延分析

    復(fù)雜動畫優(yōu)先用CSS實現(xiàn) 避免在主線程執(zhí)行重型計算 遇到問題時,記住這個分析路徑:錄屏抓幀 → Trace定位 → DevTools逐層剖析 大家有遇到Web
    發(fā)表于 06-12 17:09

    TWS耳機問題

    時會有的現(xiàn)象(1首歌曲的時間1次的概率),在相同的環(huán)境下,接線出來的耳機反而長時間播放歌曲也不會遇到現(xiàn)象有沒比較懂音頻的大神協(xié)助
    發(fā)表于 04-03 17:00

    【技術(shù)視界】鴻蒙開發(fā)套件之DevEco Profiler助您輕松分析應(yīng)用性能問題

    Insight: 記錄每一幀的渲染數(shù)據(jù),自動標識其中的卡幀,并提供同時段的系統(tǒng)Trace信息和函數(shù)棧采樣數(shù)據(jù),幫助開發(fā)者高效分析位置
    發(fā)表于 09-15 15:55

    labview隊列實現(xiàn)DAQ高速數(shù)據(jù)采集和分析,程序報錯

    電壓數(shù)據(jù)采集與實時分析,程序消費者生產(chǎn)者模式,數(shù)據(jù)采集生產(chǎn)者,數(shù)據(jù)分析消費者,采樣率50k,運行程序就開始采集,但是速率明顯不是設(shè)置的50k,感覺有
    發(fā)表于 12-15 09:04

    智能(CPU),什么是智能(CPU)

    智能(CPU),什么是智能(CPU) 智能
    發(fā)表于 04-02 13:36 ?3686次閱讀

    你知道perf學(xué)習(xí)-linux自帶性能分析工具怎么

    Linux性能調(diào)優(yōu)工具,32內(nèi)核以上自帶的工具,軟件性能分析。在2.6.31及后續(xù)版本的linux內(nèi)核里,安裝perf非常的容易。
    發(fā)表于 05-16 14:54 ?3181次閱讀

    看電視經(jīng)常 這些辦法能幫你解決問題

    智能電視久了,難免會出現(xiàn)的問題,這個時候怎么辦,如果是小問題的話,我們自己也可以解決。下面小編,就簡單分析一下可能的原因,以及解決方法吧!
    發(fā)表于 05-24 15:46 ?1.5w次閱讀

    iQOO Pro搭載通驍龍X50 玩手機游戲消滅延遲

    ,有效避免了由于CPU、GPU性能不足而導(dǎo)致的玩手機游戲過程中的發(fā)熱和問題,并且續(xù)航能力也有顯著提升。
    發(fā)表于 08-27 08:53 ?895次閱讀

    Linux CPU性能應(yīng)該如何優(yōu)化

    Linux系統(tǒng)中,由于成本的限制,往往會存在資源上的不足,例如 CPU、內(nèi)存、網(wǎng)絡(luò)、IO 性能。本文,就對 Linux 進程和 CPU
    的頭像 發(fā)表于 01-18 08:52 ?4204次閱讀

    電腦出現(xiàn)CPU與內(nèi)存條誰造成的影響比較大

    相信只要用過電腦的用戶遇到過的情況,而電腦之所以會卡是與系統(tǒng)、網(wǎng)絡(luò)以及硬件都有關(guān)系,其中硬件與電腦的關(guān)系最大。
    的頭像 發(fā)表于 03-05 16:05 ?1.7w次閱讀

    aigo國民好物固態(tài)硬盤P3000能否解決電腦的問題?

    電腦的是處理器惹的禍?電腦最大的禍源是”誰”? 相信很多人都認為,電腦就一定是CPU
    的頭像 發(fā)表于 08-09 14:10 ?1616次閱讀
    aigo國民好物固態(tài)硬盤P3000能否解決電腦<b class='flag-5'>卡</b><b class='flag-5'>頓</b>的問題?

    視頻分析流程

    視頻分析流程
    發(fā)表于 11-10 16:55 ?0次下載