溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

為什么使用BPF工具分析性能?

發(fā)布時(shí)間:2020-05-25 21:38:12 來(lái)源:億速云 閱讀:197 作者:鴿子 欄目:系統(tǒng)運(yùn)維

性能工具之所以使用擴(kuò)展的BPF,部分原因在于它的可編程性。BPF程序可以執(zhí)行自定義等待時(shí)間計(jì)算和統(tǒng)計(jì)摘要。僅這些功能就可以構(gòu)成一個(gè)有趣的工具,并且還有許多其他具有這些功能的跟蹤工具。使BPF與眾不同的是,它還高效且生產(chǎn)安全,并且內(nèi)置于Linux內(nèi)核中。使用BPF,您可以在生產(chǎn)環(huán)境中運(yùn)行這些工具,而無(wú)需添加任何新的內(nèi)核組件。

讓我們看一些輸出和一個(gè)圖表,以了解性能工具如何使用BPF。該示例來(lái)自我發(fā)布的早期BPF工具bitehist,該工具以直方圖的形式顯示了磁盤(pán)I/O的大?。?br/>

為什么使用BPF工具分析性能?


關(guān)鍵的變化是直方圖可以在內(nèi)核上下文中生成,這大大減少了復(fù)制到用戶(hù)空間的數(shù)據(jù)量。這種效率的提高是如此之大,以至于它可以允許工具在生產(chǎn)中運(yùn)行,否則這些工具將太昂貴。詳細(xì)地:

在BPF之前,生成此直方圖摘要的完整步驟為:

1.     在內(nèi)核中:為磁盤(pán)I / O事件啟用檢測(cè)。

2.     在內(nèi)核中,對(duì)于每個(gè)事件:將一條記錄寫(xiě)入perf緩沖區(qū)。如果使用跟蹤點(diǎn)(首選),則記錄包含有關(guān)磁盤(pán)I / O的元數(shù)據(jù)的幾個(gè)字段。

3.     在用戶(hù)空間中:定期將所有事件的緩沖區(qū)復(fù)制到用戶(hù)空間。

4.     在用戶(hù)空間中:遍歷每個(gè)事件,為字節(jié)字段解析事件元數(shù)據(jù)。其他字段將被忽略。

5.     在用戶(hù)空間中:生成字節(jié)字段的直方圖摘要。

注意:這些是可用的最佳步驟,但它們并沒(méi)有顯示唯一的方法。您可以安裝樹(shù)外跟蹤器(例如SystemTap),但是根據(jù)您的內(nèi)核和發(fā)行版,這可能會(huì)很艱難。您也可以修改內(nèi)核代碼,或開(kāi)發(fā)自定義kprobe模塊,但是這兩種方法都涉及挑戰(zhàn),并帶來(lái)風(fēng)險(xiǎn)。我開(kāi)發(fā)了自己的解決方法,稱(chēng)為“ hacktogram”,其中涉及為直方圖的每一行創(chuàng)建多個(gè)帶范圍過(guò)濾器的perf(1)統(tǒng)計(jì)計(jì)數(shù)器[16]。那太差了。

步驟2到步驟4對(duì)于高I / O系統(tǒng)具有高性能開(kāi)銷(xiāo)。想象一下,每秒傳輸10,000個(gè)磁盤(pán)I / O跟蹤記錄到用戶(hù)空間程序以進(jìn)行分析和匯總。

使用BPF,bitesize程序的步驟為:

1.     在內(nèi)核中:?jiǎn)⒂脤?duì)磁盤(pán)I / O事件的檢測(cè),并附加一個(gè)由bitesize定義的自定義BPF程序。

2.     在內(nèi)核中,對(duì)于每個(gè)事件:運(yùn)行BPF程序。它僅獲取字節(jié)字段,并將其保存到自定義BPF映射直方圖中。

3.     在用戶(hù)空間中:一次讀取BPF地圖直方圖并打印出來(lái)。

此方法避免了將事件復(fù)制到用戶(hù)空間并對(duì)其進(jìn)行重新處理的開(kāi)銷(xiāo)。它還避免了復(fù)制未使用的元數(shù)據(jù)字段。復(fù)制到用戶(hù)空間的唯一數(shù)據(jù)顯示在上一個(gè)輸出中:“ count”列,它是數(shù)字?jǐn)?shù)組。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI