新聞中心
bpftrace是基于BPF和BCC構(gòu)建的開源跟蹤程序。與BCC一樣,bpftrace附帶了許多性能工具和支持文檔。但是,它還提供了高級(jí)編程語(yǔ)言,使您可以創(chuàng)建功能強(qiáng)大的單行代碼和簡(jiǎn)短的工具。
例如,使用bpftrace one-liner將vfs_read()返回值(字節(jié)或錯(cuò)誤值)匯總為直方圖:
# bpftrace -e 'kretprobe:vfs_read { @bytes = hist(retval); }'
Attaching 1 probe...
^C
@bytes:
(..., 0) 223 |@@@@@@@@@@@@@ |
[0] 110 |@@@@@@ |
[1] 581 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ |
[2, 4) 23 |@ |
[4, 8) 9 | |
[8, 16) 844 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@|
[16, 32) 44 |@@ |
[32, 64) 67 |@@@@ |
[64, 128) 50 |@@@ |
[128, 256) 24 |@ |
[256, 512) 1 |
bpftrace是使用自定義單行代碼和簡(jiǎn)短腳本的臨時(shí)工具的理想選擇,而BCC是復(fù)雜工具和守護(hù)程序的理想選擇。
bpftrace與其它可觀測(cè)性工具的對(duì)比
l perf
bpftrace提供了一種簡(jiǎn)潔的高級(jí)語(yǔ)言,而perf腳本語(yǔ)言則是冗長(zhǎng)的。
perf通過perf記錄和內(nèi)存摘要模式(例如perf top)以二進(jìn)制格式支持有效的事件轉(zhuǎn)儲(chǔ)。
bpftrace支持有效的內(nèi)核內(nèi)摘要,例如自定義直方圖,而perf的內(nèi)置內(nèi)核內(nèi)摘要僅限于計(jì)數(shù)(perf stat)。
可以通過運(yùn)行BPF程序來擴(kuò)展perf的功能,盡管不能使用bpftrace之類的高級(jí)語(yǔ)言來實(shí)現(xiàn)。
l Ftrace
bpftrace提供類似于C和awk的高級(jí)語(yǔ)言,而Ftrace具有其自己的特殊語(yǔ)法。Ftrace具有較少的依賴性,使其適合于小型Linux環(huán)境。Ftrace還具有檢測(cè)模式,例如到目前為止的功能計(jì)數(shù)除了bpftrace使用的事件源之外,還進(jìn)行了更多優(yōu)化。(我的Ftrace funccount當(dāng)前的啟動(dòng)和停止時(shí)間比bpftrace更快,并且運(yùn)行時(shí)開銷也較低。)
l Systemtap
bpftrace和SystemTap均提供高級(jí)語(yǔ)言。
bpftrace基于內(nèi)置Linux技術(shù),而SystemTap添加了自己的內(nèi)核模塊,事實(shí)證明,這些模塊在RHEL以外的系統(tǒng)上都不可靠。正如bpftrace所做的那樣,SystemTap支持BPF后端的工作已經(jīng)開始,這應(yīng)該使其在其他系統(tǒng)上更可靠。SystemTap當(dāng)前在其庫(kù)(磁帶集)中具有更多輔助功能,可用于檢測(cè)不同的目標(biāo)。
l Lttng
LTTng優(yōu)化了事件轉(zhuǎn)儲(chǔ),并提供了用于分析事件轉(zhuǎn)儲(chǔ)的工具。與bpftrace相比,這種性能分析方法與bpftrace不同,后者專門用于臨時(shí)實(shí)時(shí)分析。
l 應(yīng)用程序自帶的特定工具
特定于應(yīng)用程序和運(yùn)行時(shí)的工具僅限于用戶級(jí)別的可見性。bpftrace還可以檢測(cè)內(nèi)核和硬件事件,從而確定那些工具無法解決的問題根源。這些工具的優(yōu)點(diǎn)是它們通常是針對(duì)目標(biāo)應(yīng)用程序或運(yùn)行時(shí)量身定制的。MySQL數(shù)據(jù)庫(kù)分析器已經(jīng)了解如何檢測(cè)查詢,而JVM分析器已經(jīng)可以檢測(cè)垃圾收集。在bpftrace中,您需要自己編寫此類功能的代碼。
bpftrace推薦的幾個(gè)相關(guān)工具
bpftrace工具具有許多共同點(diǎn):
他們解決了現(xiàn)實(shí)世界中的可觀察性問題。
它們被設(shè)計(jì)為以root用戶身份在生產(chǎn)環(huán)境中運(yùn)行。
每個(gè)工具都有一個(gè)手冊(cè)頁(yè)(在man / man8下)。
每個(gè)工具都有一個(gè)示例文件,包含輸出和討論(在tools / * _ examples.txt下)。
工具源代碼以塊注釋介紹開始。
這些工具越簡(jiǎn)單越好。(更復(fù)雜的工具將交由BCC使用。)
CentOS7下,bpftrace安裝后的,可執(zhí)行文件 *.bt文件路徑在: /usr/share/bpftrace/tools
cd /usr/share/bpftrace/tools
./opensnoop.bt 即可執(zhí)行對(duì)應(yīng)的bpftrace程序
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
分享名稱:bpftrace工具以及相關(guān)工具介紹-創(chuàng)新互聯(lián)
當(dāng)前路徑:http://www.dlmjj.cn/article/deihoh.html