一、什麼是lttng
1、lttng是什麼
LTTng是Linux追蹤工具鏈的一部分,它允許在Linux系統中的用戶空間和內核空間中收集實時事件跟蹤數據。LTTng的目標是適用於高性能計算和嵌入式系統,同時提供易於使用和易於部署的界面。也就是說LTTng被設計為生產力工具,它不應該增加使用的負擔或帶來延遲。
2、lttng的功能
LTTng將追蹤數據的輸出流聚合到一起,以形成操作系統的整體行為視圖。它支持多個不同的儲存後端系統,例如二進位文件、文本日誌或網路數據包。
3、lttng的優點
LTTng的主要優點在於其高效的數據收集,並且不會影響系統的性能。這意味著LTTng可以在生產環境中運行,並且可以部署在長時間運行的系統上,而不會增加負擔。
二、lttng的使用
1、安裝lttng
sudo apt-get install lttng-tools # 安裝lttng工具 sudo apt-get install lttng-modules-dkms # 安裝內核模塊 sudo apt-get install lttng-ust-dev # 安裝用戶空間跟蹤庫
2、創建跟蹤會話
# 開始跟蹤會話 sudo lttng create my-session # 添加跟蹤事件 sudo lttng enable-channel -k my-channel --subbuf-size 4M --num-subbuf 16 sudo lttng enable-event -k sched_switch -c my-channel sudo lttng enable-event -k block_rq_complete -c my-channel
3、開始跟蹤
# 啟動跟蹤 sudo lttng start # 停止跟蹤 sudo lttng stop # 刪除跟蹤會話 sudo lttng destroy my-session
三、lttng的常用場景
1、調試系統性能
LTTng可以跟蹤Linux內核的所有事件,這對於調試系統性能非常有幫助。通過跟蹤事件,開發人員可以發現系統瓶頸,並進行適當的優化。
2、分析事件序列
LTTng可以跟蹤事件發生的順序,從而分析事件序列。通過分析事件序列,可以獲得有關係統的詳細信息,例如線程狀態、作業排隊等。
3、監控系統行為
使用LTTng,可以對系統的行為進行監控。例如,可以跟蹤系統中運行的所有線程,以了解其運行時間和資源使用情況。
四、lttng的實例
以下是一個簡單的lttng實例,跟蹤進程執行和系統調用:
#include #include #include #include int main(){ int pid; pid = fork(); if (pid == 0) { printf("Child process\n"); sleep(1); } else { printf("Parent process\n"); sleep(1); } return 0; }
使用以下命令跟蹤上述程序:
sudo lttng create my-session sudo lttng enable-event -k -a sudo lttng start ./a.out sudo lttng stop sudo lttng view
最後可以打開Trace Compass查看跟蹤數據,如下圖:
原創文章,作者:NEUP,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/133227.html