2009年6月14日 星期日

systemtap

SystemTap是一種新穎的Linux內核診斷工具,提供了一種從運行中的Linux內核快速和安全地獲取信息的能力。 SystemTap 是内核开发人员和系统管理员的福音,因为这使得他们可以通过编写或者重用简单的脚本来收集内核的实时数据,而不需要再忍受修改源码、编译内核、重启系统的漫长煎熬。 SystemTap是內核開發人員和系統管理員的福音,因為這使得他們可以通過編寫或者重用簡單的腳本來收集內核的實時數據,而不需要再忍受修改源碼、編譯內核、重啟系統的漫長煎熬。 本文介绍了SystemTap 的安装、使用和基本原理,并用一些有趣的例子揭示了SystemTap 提供的强大能力。本文介紹了SystemTap的安裝、使用和基本原理,並用一些有趣的例子揭示了SystemTap提供的強大能力。

在SystemTap 出现之前,对于Linux 程序员或者系统管理员而言,调试内核往往是一场噩梦。在SystemTap出現之前,對於Linux程序員或者係統管理員而言,調試內核往往是一場噩夢。 例如,你怀疑传递给系统调用read 的参数fd 出了问题,想把它打印出来,你需要做的是:首先得到一份内核源码,找到sys_read() 的函数体中插入printk() 语句,接下来重新编译内核,然后用新的内核重新启动系统。例如,你懷疑傳遞給系統調用read的參數fd出了問題,想把它打印出來,你需要做的是:首先得到一份內核源碼,找到sys_read()的函數體中插入printk()語句,接下來重新編譯內核,然後用新的內核重新啟動系統。 谢天谢地,你总算看到了你想要看到的东西,不过你马上会发现遇到了一个新的麻烦:除非重新启动系统到原来的内核,printk() 会无休止地打印下去。謝天謝地,你總算看到了你想要看到的東西,不過你馬上會發現遇到了一個新的麻煩:除非重新啟動系統到原來的內核,printk()會無休止地打印下去。

SystemTap 的目的就是要把人们从这种泥潭中解救出来。 SystemTap的目的就是要把人們從這種泥潭中解救出來。 SystemTap 提供了一个简单的命令行接口和强大的脚本语言,同时预定义了丰富的脚本库。 SystemTap提供了一個簡單的命令行接口和強大的腳本語言,同時預定義了豐富的腳本庫。 基于内核中的kprobe,SystemTap允许你自由地从运行中的内核无害地收集调试信息和性能数据,来用于之后的分析和处理。基於內核中的kprobe,SystemTap允許你自由地從運行中的內核無害地收集調試信息和性能數據,來用於之後的分析和處理。 你可以随时开始或者停止这种收集过程,而无需漫长的修改代码、编译内核和重启系统的悲惨循环。你可以隨時開始或者停止這種收集過程,而無需漫長的修改代碼、編譯內核和重啟系統的悲慘循環。 SystemTap 使得上面的问题变得简单了,简单得只需要一条命令就可以做到: SystemTap使得上面的問題變得簡單了,簡單得只需要一條命令就可以做到

沒有留言:

張貼留言