LTT (Linux Trace Toolkit) 簡介

來源:互聯網
上載者:User
文章目錄
  • 1 概念
  • 2 使用
  • 3 體會
1 概念

1.1 功能

LTT是一個用於跟蹤系統詳細運行狀態和流程的工具,它可以追蹤記錄系統中的特定事件。這些事件包括:

? 系統調用的進入和退出
? 陷阱/中斷(Trap / Irq)的進入和退出
? 進程調度事件
? 核心定時器
? 進程管理相關事件:建立 ,喚醒,訊號處理等等
? 檔案系統相關事件:Open / Read / Write / Seek / Ioctl 等等
? 記憶體管理相關事件:記憶體配置/釋放等
? 其他事件:IPC / Socket/ 網路 等等

此外 Ltt還提供了自訂和記錄需要跟蹤的事件類型的函數介面。

1.2 結構

LTT主要由4個部分組成:
? 核心代碼補丁:LTT目前還沒有納入正式的官方核心,在核心中的部分代碼需要打Patch來獲得,主要是修改了上述各類事件的相關代碼,添加了Trace的調用代碼
? 核心模組:Trace功能的主要實現部分,記錄核心事件,並和使用者空間的守護進程進行互動
? 使用者空間的守護進程:從LTT的核心模組中擷取事件相關資料,並寫入檔案。
? 資料分析應用程式:讀取守護進程產生的資料檔案,加以分析,並以更加可讀的方式(圖表等)顯示出來。
 

 除此之外,LTT還具備自訂和跟蹤使用者空間事件的能力。

2 使用

    所有的安轉使用相關的內容,都可以在LTT的官方網站:http://www.opersys.com/ltt/ 找到。仔細閱讀裡面的文檔即可。
(不過,其穩定版本在我這編譯起來居然有Error,修改過一些代碼後,編譯通過,有很多warning,或許是我的編譯環境有問題,最終試用的時候圖省事,沒有去過多研究,使用了Montavista的Package中現成編譯好的版本 8 )

3 體會

LTT的確是一個很有用的工具,靈活的配合其他工具的使用,如strace,time等等,可以作為分析最佳化系統的performance的一個可行的途徑。

值得一提的是,LTT可以通過設定參數,在特定的時間段,篩選所需要記錄的事件類型,還可以按進程ID等選擇所跟蹤的特定對象,通過合理的配置參數,可以使得其對系統所造成的額外負擔減少到一個合理的程度,對系統效能的分析基本不會造成明顯的幹擾因素。

另外LTT提供的自訂和記錄需要跟蹤的事件類型的函數介面,也使它有了一些拓展能力,可以用來Debug自己編寫的核心模組代碼。

LTT跟蹤使用者空間事件的實現,是通過其核心模組中幾個特定的IOCTL介面,由使用者空間的一個LIB庫將其封裝成函數,使得其使用方法與其在核心 模組中自訂和記錄事件類型的函數介面相同。應該說這是一個很巧妙的實現辦法,不過對其效能個人還是有些懷疑,因為這樣一來,對使用者空間事件的紀錄就需要 經由 使用者空間-〉核心空間-〉使用者空間 走一趟來實現。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.