偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

動(dòng)態(tài)追蹤技術(shù):Linux喜迎DTrace

系統(tǒng) Linux
DTrace 是動(dòng)態(tài)追蹤技術(shù)的鼻祖,源自 Solaris 操作系統(tǒng),提供了高級性能分析和調(diào)試功能,它的源代碼采用 CDDL 許可證,不兼容 Linux 內(nèi)核使用的 GPLv2 許可證,無法直接移植。

 通過前面幾篇文章的介紹,我們已經(jīng)可以通過一系列命令,從不同維度獲得操作系統(tǒng)當(dāng)前的性能運(yùn)行情況。 另外,借助類似Ganglia這樣的開源產(chǎn)品,持續(xù)不斷地實(shí)施性能數(shù)據(jù)采集和存儲(chǔ),我們基于時(shí)間序列的歷史性能圖形,就可以大致判讀出計(jì)算集群的資源消耗情況和變化趨勢。 但是,僅僅這些還是不夠的,在很多情況下,我們希望能夠知道:“慢,是為什么慢;快,又是為什么快”。 如果要回答這個(gè)問題,就必須引入另外一件神兵利器:動(dòng)態(tài)追蹤技術(shù)(Dynamic Tracing)。

鑒于這套兵器過于復(fù)雜(牛逼),屬于專家級技能, advanced performance analysis and troubleshooting tool。據(jù)稱掌握該技能需要耗費(fèi)大約100小時(shí)以上,所以如果不是對于系統(tǒng)性能問題有***追求,以及變態(tài)般地技術(shù)狂熱,建議繞過本文。

為了便于展開,今天先起個(gè)頭,重點(diǎn)梳理下動(dòng)態(tài)追蹤技術(shù)的發(fā)展簡史和目前的生態(tài)環(huán)境。更加具體詳細(xì)的內(nèi)容,會(huì)在后續(xù)的文章中陸續(xù)發(fā)表。

上月底,正當(dāng)全國人民翹首以盼光棍節(jié)的時(shí)候,開源社區(qū)傳來一則重要新聞: Linux 4.9-rc1發(fā)布,正式合并了一項(xiàng)重要特性:BPF追蹤(Timed sampling)。

系統(tǒng)性能領(lǐng)域的國際導(dǎo)師Brendan Gregg,感動(dòng)得都快哭了,當(dāng)即在Twitter上表示這是一個(gè)重要的里程碑! 他隨后又寫了一篇長文《DTrace for Linux 2016》,以示慶祝。

As a long time DTrace user and expert, this is an exciting milestone! --Brendan Gregg

Linux 合并了BPF而已嘛,跟DTrace這個(gè)勞什子有什么關(guān)系呢?

DTrace 是動(dòng)態(tài)追蹤技術(shù)的鼻祖,源自 Solaris 操作系統(tǒng),提供了高級性能分析和調(diào)試功能,它的源代碼采用 CDDL 許可證,不兼容 Linux 內(nèi)核使用的 GPLv2 許可證,無法直接移植。 當(dāng)然,江湖上還有另外一種說法,Linux之所以一直沒有原生支持DTrace,是因?yàn)長inus 覺得這玩意沒什么必要。 Anyway,隨著 BPF跟蹤的***主要功能合并到 Linux 4.9-rc1,Linux 現(xiàn)在有了類似 DTrace 的高級分析和調(diào)試功能。

Linux 這次合并的BPF(The Berkeley Packet Filter ),和Ganglia一樣,來自于加州大學(xué)伯克利分校(這所大學(xué)很有意思,以后還要反復(fù)提到)。 BPF,顧名思義,最早只是一個(gè)純粹的封***濾器,大家比較熟知的netfilter,就是基于BPF實(shí)現(xiàn)的動(dòng)態(tài)編譯器。 后來在很多牛人的參與下,進(jìn)行了擴(kuò)展,得到了一個(gè)所謂的 eBPF,可以作為某種更加通用的內(nèi)核虛擬機(jī)。 通過這種機(jī)制,我們其實(shí)可以在 Linux 中構(gòu)建類似 DTrace 那種常駐內(nèi)核的動(dòng)態(tài)追蹤虛擬機(jī)。

Linux 沒有 DTrace(名字),但現(xiàn)在有了 DTrace(功能)

嚴(yán)格來說,DTrace這個(gè)詞本身,已經(jīng)并不是狹義上基于Solaris的那套工具了,而是代表的是后現(xiàn)代操作系統(tǒng)的一整套工具家族和方法論。

History

當(dāng)時(shí) Solaris 操作系統(tǒng)的幾個(gè)工程師花了幾天幾夜去排查一個(gè)看似非常詭異的線上問題。 開始他們以為是很高級的問題,就特別賣力,結(jié)果折騰了幾天,***發(fā)現(xiàn)其實(shí)是一個(gè)非常愚蠢的、某個(gè)不起眼的地方的配置問題。 自從那件事情之后,這些工程師就痛定思痛,創(chuàng)造了 DTrace 這樣一個(gè)非常高級的調(diào)試工具,來幫助他們在未來的工作當(dāng)中避免把過多精力花費(fèi)在愚蠢問題上面。 畢竟大部分所謂的“詭異問題”其實(shí)都是低級問題,屬于那種“調(diào)不出來很郁悶,調(diào)出來了更郁悶”的類型。---《漫談動(dòng)態(tài)追蹤技術(shù)》

通觀DTrace的演變過程,幾乎相當(dāng)于一部現(xiàn)代操作系統(tǒng)系統(tǒng)的發(fā)展史,細(xì)查起來,極其復(fù)雜。 但是有兩個(gè)人非常值得關(guān)注,一個(gè)是***的布道師,一個(gè)是國內(nèi)的代表人物, 初學(xué)者完全可以通過閱讀他們的文章、代碼,甚至微博/Twitter動(dòng)態(tài),了解動(dòng)態(tài)追蹤技術(shù)的實(shí)際應(yīng)用情況。

Brendan Gregg

前SUN性能工程師,最早的DTrace用戶,出版了包括《性能之巔》在內(nèi)的一大批書籍,囊括了性能問題領(lǐng)域的技術(shù)、工具、方法論等方方面面。 是動(dòng)態(tài)追蹤技術(shù)當(dāng)之無愧的***布道師。他維護(hù)的個(gè)人博客發(fā)布了大量的原創(chuàng)內(nèi)容,并且持續(xù)保持著相當(dāng)?shù)幕钴S度??梢宰鳛?**手的學(xué)習(xí)資料。

Twitter: 個(gè)人網(wǎng)站:

章亦春 網(wǎng)名 agentzh。開源項(xiàng)目OpenResty創(chuàng)始人,編寫了很多 Nginx 的第三方模塊, Perl 開源模塊,以及最近一些年寫的很多 Lua 方面的庫。 他發(fā)表過的《漫談動(dòng)態(tài)追蹤技術(shù)》,是目前唯一由Brendan認(rèn)證的中文資料,入門***。 另外,他本人也在目前的工作、開源項(xiàng)目運(yùn)營中大量使用動(dòng)態(tài)追蹤技術(shù)。

Linux 追蹤器選型

動(dòng)態(tài)追蹤技術(shù)最復(fù)雜的地方在于追蹤器種類繁多,讓人一時(shí)無從下手。 根據(jù)前人的一些經(jīng)驗(yàn)總結(jié),建議按照以下路徑進(jìn)行選擇:

普通模式

適用于:開發(fā)者, 系統(tǒng)管理員, DevOps, SRE

CPU分析

perf_events的應(yīng)用很廣泛,配合Brendan Gregg老師研究的火焰圖工具,可以分析程序在所有代碼基的資源消耗,精確定位到函數(shù)級。 例如

[[178363]]

進(jìn)程追蹤

  1. # ./execsnoop 
  2. Tracing exec()s. Ctrl-C to end
  3.    PID   PPID ARGS 
  4.  22898  22004 man ls 
  5.  22905  22898 preconv -e UTF-8 
  6.  22908  22898 pager -s 
  7.  22907  22898 nroff -mandoc -rLL=164n -rLT=164n -Tutf8 

HARD模式

適用于:性能或內(nèi)核工程師

Understanding all the Linux tracers to make a rational decision between them a huge undertaking.

  1. ftrace 內(nèi)核hacker的***。已經(jīng)包含在內(nèi)核,能夠支持 tracepoints, kprobes, and uprobes, 并提供一些能力: 事件追蹤, 可選擇過濾器和參數(shù); 事件計(jì)數(shù)和時(shí)間采樣,內(nèi)核概覽;基于函數(shù)的路徑追蹤。
  2. perf_events Linux用戶的主要追蹤器之一,它的源代碼在內(nèi)核中,通常在一個(gè) linux-tools-common包。
  3. eBPF 基于內(nèi)核的虛擬機(jī)
  4. SystemTap ***有力的追蹤器。它可以做幾乎所有的事情: 分析,打點(diǎn), kprobes, uprobes (源子 SystemTap), USDT, 內(nèi)核編程等。
  5. LTTng 事件收集器, 優(yōu)于其它追蹤器,支持多種事件類型,包括 USDT。
  6. ktap 一個(gè)很有前景的追蹤器,基于lua內(nèi)核虛擬機(jī)
  7. dtrace4linux 個(gè)人開發(fā)者業(yè)余產(chǎn)出 (Paul Fox) ,將 Sun DTrace遷移到 Linux。
  8. OL DTrace Oracle Linux DTrace,將 DTrace 遷移到Oracle Linux的實(shí)現(xiàn)。
  9. sysdig 一種新型追蹤器, 能夠基于類似tcpdump的命令操作 syscall events, 再用lua后處理。
責(zé)任編輯:武曉燕 來源: 開源博客
相關(guān)推薦

2021-11-15 04:00:07

Linux 內(nèi)核動(dòng)態(tài)

2021-11-14 07:29:55

Linux 內(nèi)核靜態(tài)追蹤Linux 系統(tǒng)

2016-12-26 08:56:09

LinuxDTraceBPF

2011-10-09 12:59:54

DtraceLinux甲骨文

2024-04-15 11:24:32

庫存跟蹤技術(shù)NFC藍(lán)牙

2020-08-23 18:10:16

機(jī)器狗人工智能系統(tǒng)

2013-03-19 09:18:35

Cookie

2010-01-22 11:00:31

linux指針函數(shù)

2010-09-30 09:42:06

2009-06-12 11:36:42

Netbeans插件DTrace GUI

2015-02-06 15:51:11

2013-09-24 10:48:32

Google追蹤技術(shù)Cookies

2013-09-25 17:02:50

追蹤技術(shù)CookiesGoogle

2020-04-09 10:15:55

區(qū)塊鏈新冠疫情技術(shù)

2010-09-30 10:03:53

2016-12-28 16:30:50

51CTO 福利

2010-09-30 10:16:48

2012-11-30 10:44:06

網(wǎng)絡(luò)回溯分析技術(shù)

2019-03-21 09:21:07

技術(shù)研發(fā)指標(biāo)

2022-03-03 12:24:17

暗碼追蹤數(shù)字水印打印機(jī)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號