精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

如何通過Tracealyzer實現Linux系統的跟蹤?

麥克泰技術 ? 來源:麥克泰技術 ? 2023-12-08 14:08 ? 次閱讀

Tracealyzer是Percepio 公司開發的一款可視化跟蹤工具, 目前它提供了30多種相互關聯的運行時行為視圖,支持裸機、FreeRTOS、μC/OS-III、Zephyr、ThreadX、VxWorks、Linux系統的跟蹤。能夠幫助開發人員加快固件的開發,減少對系統驗證和性能優化所需要的時間。

本文將介紹如何通過Tracealyzer實現Linux系統的跟蹤。

1)在Linux主機上安裝Tracealyzer

Tracealyzer應用可以運行在Windows系統和Linux系統上,如果在在Linux系統上安裝應用,需Mono框架支持。

可以參考Tracealyzer應用程序目錄中的RunningOnLinux.txt。其中包含針對某些Linux發行版的附加說明。

2)在目標系統設置LTTng

在運行Linux系統的目標設備上安裝LTTng(Linux Trace Toolkit next generation),具體步驟與使用的目標系統相關。為了熟悉LLTng,可以先在主機上安裝。在Ubuntu系統上,只需要幾個apt-get命令。

確保運行跟蹤的用戶位于tracing group組,或者使用root用戶進行跟蹤。

在某些情況下,你需要在記錄跟蹤之前以root用戶身份啟動lttng -sessiond。

安裝LLTng并確保用戶位于tracing group后,可以創建一個簡單的跟蹤,例如:

lttng create

lttng enable-event -k sched_*

lttng add-context -k -t pid

lttng add-context -k -t ppid

lttng start

# Run some test command to get more activity in the trace echo “Hello world” | wc

lttng stop

lttng destroy

如果設置正確,將在~/ ltng -traces中記錄跟蹤信息。在Tracealyzer中選擇File ->Open→Open Folder加載trace文件。

3)在Tracealyzer中查看LTTng跟蹤記錄

在Linux系統中,使用Tracealyzer應用目錄中的launch-tz.sh腳本啟動Tracealyzer。

$ cd Tracealyzer--linux64

$ ./launch-tz.sh

如果不熟悉Tracealyzer,可以參考https://percepio.com/tag/tzlinux/下的Linux跟蹤系列文章。

接下來,閱讀Tracealyzer用戶手冊。用戶手冊可以在Help菜單中找到。建議閱讀Views、Tools、Event Mapping、User Events和Intervals and State Machines章節。TraceRecorder的部分僅適用于RTOS跟蹤。

確保在設置中啟用了“Raw Events”,參見File ->Settings->Project Settings->Performance Settings,確?!癐nclude Raw Events”項選中。

下一步是從目標系統獲取LTTng跟蹤記錄。首先,使用File ->Open->Open Folder并選擇root下跟蹤文件夾,可以打開上一步中記錄的跟蹤信息。

更簡便的方法是使用Trace菜單中的Tracealyzer Library Tool,用戶可以使用SSH連接直接從Tracealyzer應用中控制和下載跟蹤。

Target Library工具

使用Target Library,你可以設置目標配置文件,以便于訪問。使用New按鈕創建一個新的配置文件,設置目標地址,用戶名和密碼或私鑰文件。配置文件創建完成后,通過Connect按鈕連接到目標。

7da1ec5a-958c-11ee-8b88-92fbcf53809c.png

連接后,Target Library界面將打開一個新標簽,其中包含三個主要部分,跟蹤會話控制面板、命令日志和命令詳細信息框。單擊Start New Session按鈕啟動新會話。默認情況下,已經定義了一個TzTrace會話,它被預先配置為包括scheduling調度、syscalls系統調用、signals信號和UST事件。用戶可以使用Sessions和Channels Editor創建自己的設置。

Quick Connect選項

Target Library工具還提供了一個“Quick Connect”選項,位于左下角,允許用戶在一個字符串中指定所有參數,例如:

host=raspberrypi;user=pi;pass=raspberry;

Quick Connect選項的完整列表如下:

host -目標的主機名或地址

port - SSH端口(默認為22)

myhost -目標端看到的主機地址,可以不指定,但如果目標無法查找主機的主機名,則需顯式指定。

user—要連接的用戶

pass -用戶的密碼

keyFile -用于公鑰身份驗證的密鑰文件,注意F大寫。

cmdname - lttng命令的名稱。默認為lttng,但在使用前綴或類似的情況下可以重寫。

輸入連接字符串后,即可以使用 “Connect”按鈕進行連接。這需要主機已安裝lttng -relayd工具,通常使用發行版的lytng -tools包安裝。如果在Windows主機上運行Tracealyzer,則需要使用Windows Services For Linux,并確保在該環境中安裝并可訪問lttng -relayd。

為了獲得最佳體驗,我們建議在包含調度事件的內核通道上啟用pid和ppid上下文字段。在跟蹤用戶空間事件(UST)時,建議啟用vtid上下文。這將有助于Tracealyzer在某些特殊情況下正確呈現事件,特別是涉及多核系統中的遷移。

用于Linux跟蹤的Tracealyzer特性

當查看LTTng跟蹤信息時,Tracealyzer提供了專為Linux系統設計的分析功能:

Signals And Syscalls資源管理器工具,可以幫助分析進程如何通過系統調用與內核交互。例如,它可以讓你跟蹤正在訪問的文件。它將嘗試幫助你跟蹤文件描述符(有一些限制),并幫助識別失敗的調用。它可以顯示每個線程、進程或進程樹的系統調用列表。此外,它還可以展示信號是如何產生和傳遞的。

syscalls plot繪制系統調用的持續時間。它支持兩種模式:執行時間和響應時間。前者將只考慮線程處于活動狀態時的時間,而后者將包括線程切換出(即阻塞)的時間。

Communication flow view視圖具有特定于linux的模式,可以通過view菜單訪問。它支持進程樹模式、信號模式和文件描述符模式。后者可以幫助您跟蹤進程如何通過管道等進行通信

如果在主跟蹤視圖或事件日志中選擇raw event并右鍵單擊它,則可以向快速繪圖中添加數字字段。這可以用于任何事件類型,包括自己的用戶空間跟蹤事件。

Linux事件

Tracealyzer內置了對以下類型的Linux內核事件的感知:

調度事件(內核域中的sched_*)

信號事件(內核域中的signal_*)

IRQ和SoftIRQ事件(內核域的irq_*)

系統調用(在內核域中--sycall -a)

其他事件將以“Raw Events”的形式呈現。默認情況下,Tracealyzer不會解釋這些事件,只會在跟蹤視圖中顯示為事件標簽(即那些具有青色背景色的事件標簽),并且也會在事件日志中列出。

注意,Raw Events可以通過“Event Interpretation”來配置,以創建“User Events”。這些可以在用戶事件信號圖中繪制,并轉換為狀態機或自定義間隔。請參閱Tracealyzer用戶手冊中的“Event Mapping”、“User Events”和“Intervals and State Machines”章節。

7dca3d90-958c-11ee-8b88-92fbcf53809c.png

Tracealyzer目標庫使用LTTng接口,通過SSH連接到目標系統上的LTTng。LTTng接口對快照的支持有限。用戶也可以通過終端手動控制LTTng。然后將跟蹤目錄傳輸到主機,使用File ->Open Folder打開。

緩沖區覆蓋不均勻的跟蹤可能會有問題,多核Linux系統上的快照跟蹤有時就是這種情況。不均勻緩沖區覆蓋,指的是不同的LTTng通道或事件流覆蓋不同時間段的場景。如果為一個核調度數據的時間為30秒,而為另一個核調度數據的時間只有5秒,那么這些時間不一定在跟蹤的開始或結束時對齊。這使得Tracealyzer很難同步調度跟蹤。這個問題可以通過確保捕獲整個跟蹤來避免,例如通過將跟蹤流傳輸到目標文件系統(存儲在目標上)。







審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux系統
    +關注

    關注

    4

    文章

    591

    瀏覽量

    27354
  • RTOS
    +關注

    關注

    21

    文章

    809

    瀏覽量

    119433
  • FreeRTOS
    +關注

    關注

    12

    文章

    483

    瀏覽量

    62007
  • SSH
    SSH
    +關注

    關注

    0

    文章

    185

    瀏覽量

    16302

原文標題:如何使用Tracealyzer跟蹤Linux?

文章出處:【微信號:麥克泰技術,微信公眾號:麥克泰技術】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Tracealyzer 技術分享

    售出以后返廠維修的情況,對于系統運行情況,可以通過Tracealyzer 生成文件進行分析,以用于改進產品的性能。下面講一下Tracealyzer的工作原理:Tracelayzer 與
    發表于 01-04 21:10

    教你快遞入門-Tracealyzer跟蹤記錄庫移植

    。使用Tracealyzer,可以查看到系統的真實運行情況,為開發人員節省排除錯誤的時間。Tracealyzer由PC應用程序和跟蹤組件組成,Percepio提供了
    發表于 07-31 14:08

    使用Tracealyzer分析RTOS系統需掌握的基本概念

    Tracealyzer是一款RTOS行為分析工具,支持包括VxWorks、μC/OS-III、FreeRTOS在內的眾多RTOS,以及Linux系統。Tracealyzer能夠分析RT
    發表于 09-27 10:10

    Tracealyzer利用CortexM的ITM實現跟蹤

    通過EWARM來實時獲取跟蹤數據。圖 6 設置流模式的連接方式九、開啟實時跟蹤。需要先啟動Tracealyzer,Live Stream窗口中點“Start Session”之后,EW
    發表于 12-05 15:34

    如何使用Tracealyzer預先定義的記錄器擴展文件實現用戶應用程序跟蹤

    被記錄為“用戶事件”。從Tracealyzer V4.2.9版本開始,增加了記錄器擴展方式來跟蹤用戶應用程序。記錄器擴展方式可以幫助用戶實現中間件、驅動程序API等重要功能函數調用的跟蹤
    發表于 12-18 13:37

    出現“丟失事件”?看Tracealyzer流模式如何調優

    在使用自己定義的流端口實現跟蹤時,如果Tracealyzer提示了“丟失事件”,那么你可以參照以下幾種方法,來提升流端口的性能。潛在的問題可以分成3類:1、跟蹤記錄時沒有足夠的臨時緩
    發表于 02-19 10:06

    通過Tracealyzer用戶事件來了解應用程序

    Tracealyzer中稱為間隔)。間隔表示跟蹤中任意兩個事件之間的時間,例如按鍵按下和按鍵釋放??梢詾槿魏晤愋偷氖录x間隔,無論我們決定使用內核事件(如釋放或獲取信號量)還是用戶事件(如剛才定義的事件)。間隔對于理解系統中的
    發表于 08-20 10:11

    使用Tracealyzer跟蹤FreeRTOS內核

    程序,還需要可用于周期性任務的定時機制。大多數現有的開源 RTOS 實現了基于樹或列表的機制來跟蹤哪個任務已就緒。我們知道,基于樹的機制在復雜搜索操作方面是高效和極時的,但在處理刪除和插入操作上需花費
    發表于 12-01 14:57

    如何使用Tracealyzer理解多任務調度?

    任務使用了多少CPU時間?在運行時系統中實際發生了什么?Tracealyzer是一款記錄RTOS運行時行為的可視化分析工具,通過30多個相互關聯的視圖對記錄數據進行解析,向用戶展示應用層級詳細視圖,作為
    發表于 12-17 16:01

    如何使用Tracealyzer流模式跟蹤ThreadX?

    Tracealyzer是Percepio 公司開發的一款用于RTOS的嵌入式軟件系統的可視化跟蹤工具,提供了30多種相互關聯的可視化運行時行為視圖,本文將介紹如何使用Tracealyzer
    發表于 09-23 13:25

    Tracealyzer實現跟蹤最簡單的方法

    Tracealyzer 實現跟蹤最簡單的方法就是使用SEGGER J-Link調試器,通過RTT功能來實現數據的傳送。RTT需要在RAM上
    的頭像 發表于 09-02 11:11 ?2235次閱讀

    如何使用Tracealyzer的流模式來跟蹤ThreadX應用

    Tracealyzer是Percepio 公司開發的一款用于RTOS的嵌入式軟件系統的可視化跟蹤工具,提供了30多種相互關聯的可視化運行時行為視圖,本文將介紹如何使用Tracealyzer
    的頭像 發表于 09-16 11:14 ?1375次閱讀

    Tracealyzer跟蹤記錄庫移植

    使用Tracealyzer,首先要將跟蹤記錄庫集成到工程。安裝了Tracealyzer 4之后,在安裝路徑下找到以RTOS名稱命名的文件夾,將TraceRecorder子文件夾復制到自己的工程目錄中。以FreeRTOS為例:
    的頭像 發表于 11-08 11:17 ?1693次閱讀

    Tracealyzer利用CortexM的ITM實現跟蹤

    Tracealyzer快照模式,能夠跟蹤RTOS系統的運行時間受限于硬件可用的RAM大小,通常只能追蹤幾十秒的時間。使用流模式則不會存在這個問題,只要電腦硬盤空間足夠,可用追蹤幾小時甚至幾天的時間。
    的頭像 發表于 12-20 11:12 ?1713次閱讀

    如何通過Tracealyzer導出的跟蹤數據對任務進行分析?

    Tracealyzer是Percepio 公司開發的一款用于RTOS的可視化跟蹤工具, 目前Tracealyzer提供了30多種相互關聯的運行時行為視圖,對系統運行時的行為提供了前所未
    的頭像 發表于 02-06 14:13 ?1070次閱讀