簡介
1997年,供職於Sun而現已是Solaris核心研發部高級工程師的Bryan Cantrill 和他的工作組在緊張地研究一個性能問題,他出現在剛剛提及的Sun E10000伺服器。該伺服器在運行基準測試時,速度突然在一段時間內奇怪地降低。工作組經過六天夜以繼日的工作後,終於發現了問題的根本原因。某個“愚蠢之極”的配置錯誤將伺服器配置成了路由器。
“我很受震驚,”Cantrill 說到, “這是任何一個客戶都可能碰到的問題,但是他們可不敢奢望讓核心研發人員為之夜以繼日地工作,編寫自定義代碼以弄清楚問題。我們得找出一個更好的方法。” 經過兩年半的緊張研發,Cantrill和他的工作組終於研究出了這個更好的方法: Dtrace 。
特性
DTrace是過去十年中在作業系統方面最具意義的革新之一。Solaris中分散著30,000多的位置指針,也叫探測器probes,DTrace可激活成千上萬的探測器,記錄所關注的位置指定的數據,如命中,即可從該地址顯示用戶進程或系統核心的數據,從而了解系統,包括:
1。任何函式的參數
2。核心的任何全局變數
3。函式調用的時間(NS,十億分之一秒,無任何其他PC/Unix在ns一級精度)
4。跟蹤堆疊,包括指明函式調用的代碼
5。函式調用時運行的進程
6。產生函式調用的執行緒
7。統計調用次數、磁碟占用等信息
Dtrace在追蹤之外,也支持對系統的採樣。
作業系統
除Solaris系列以外,Dtrace已先後被移植到FreeBSD、NetBSD及Mac OS X等作業系統上 。