- 深入理解eBPF與可觀測性
- 毛文安 鄭昱笙 程書意 廖肇燕
- 1733字
- 2025-06-09 17:11:26
1.2.2 eBPF與可觀測
可觀測性是指在軟件系統中收集、監測和分析關鍵指標和數據的能力,以全面了解系統的運行狀態、性能和行為。它是一種設計和構建系統的能力,旨在實現對系統的全面可見性,以幫助團隊完成故障排除、性能優化和容量規劃等工作。本節將分析eBPF對于可觀測性的價值,并基于Pixie展示各種可觀測能力,以讓讀者有直觀的了解。
1. eBPF對于可觀測性的價值
eBPF提供了在內核級別進行實時數據收集、數據過濾和處理的能力,并具備高性能和低成本等特點。eBPF在可觀測性方面發揮了重要作用,并為系統監測和分析帶來了許多價值,具體如下。
1)實時監控:eBPF可以實時監控系統的各種活動,如CPU使用情況、內存使用情況、磁盤I/O讀寫等,從而及時發現并解決問題。
2)高效獲取數據:eBPF可以在內核級別獲取數據,避免了用戶空間和內核空間之間的上下文切換,因此能夠更高效地獲取數據。
3)可擴展性:eBPF支持編寫自定義程序以收集和分析特定數據,從而滿足不同應用場景的需求,具有很高的可擴展性。
4)安全性:eBPF可以幫助檢測和防止惡意代碼的行為,保護系統的安全。
5)精細化監控:eBPF可以捕獲網絡包并進行分析,從而實現網絡性能優化、QoS(Quality of Service,服務質量)管理和安全策略實施。
2. Pixie在可觀測中的應用展示
隨著云原生(Cloud Native)技術的進一步發展,2018年CNCF(Cloud Native Computing Foundation,云原生計算基金會)率先將可觀測性一詞引入IT領域,并稱可觀測性是云原生時代必須具備的能力。自此,“可觀測性”逐漸取代“監控”,成為云原生技術領域最熱門的話題之一。那么,可觀測性和監控有什么區別呢?這兩者密切相關,但并不完全相同。
1)監控:是指對系統或應用程序的狀態進行定期檢查,以確定是否出現了異常或故障。監控通常基于預先定義的閾值和規則來判斷是否需要觸發警報或采取其他行動。
2)可觀測性:是指通過監控、日志、指標和分布式追蹤等方式來獲得關于系統或應用程序的詳細信息,以幫助開發者更好地理解系統或應用程序的運行情況,發現潛在問題并進行調整優化。
在云原生可觀測性項目中,New Relic公司開發的基于eBPF技術的開源可觀測性平臺Pixie具有舉足輕重的作用,目前已經捐獻給CNCF。Pixie可用于實時收集和分析應用程序的性能與狀態數據。Pixie通過使用eBPF技術,可以在不影響應用程序性能的情況下,直接在內核中捕獲和過濾應用程序的數據包、系統調用和事件,從而提供實時、高精度的性能和狀態數據。
網絡監控是Pixie非常經典的一項功能(見圖1-4),它提供了清晰的網絡拓撲圖,顯示了集群中網絡流量的流向以及DNS請求的流向。此外,圖1-4還顯示了單個完整的DNS請求過程,以及TCP丟包和TCP重傳的情況。
此外,Pixie還提供了基礎設施節點的監控能力(見圖1-5),具體如下。
1)網絡和應用程序:可以展示網絡和應用程序的監控情況,支持實時觀察網絡流量和應用程序的性能指標。
2)Pod、Node和Namespace的資源使用情況:可以了解這些資源的CPU、內存和存儲等資源的消耗情況。
3)提供每個Pod和Node的CPU火焰圖:這些火焰圖可以幫助用戶深入了解CPU的使用情況和系統運行的熱點分布情況。
圖1-6展示了Pixie提供的服務性能監控能力。Pixie可以自動跟蹤多種協議,能夠讓我們立即了解服務的健康狀況,包括如下方面。
1)服務之間的流量流向:通過Pixie,我們可以清晰地了解服務之間的流量流向,幫助識別和解決潛在的通信問題。

圖1-4 Pixie網絡拓撲功能

圖1-5 Pixie對基礎設施節點監控
2)每個服務和端點的延遲:Pixie可以監控每個服務和端點的延遲情況,讓我們能夠快速發現和定位潛在的性能瓶頸。
3)個別服務中最慢請求的實例:通過Pixie,我們可以獲得個別服務中最慢請求的實例,這有助于深入了解和優化服務的性能。
通過這些功能,Pixie能夠幫助我們全面了解服務的運行狀態,并提供有價值的信息來調整和改進系統的性能。

圖1-6 Pixie對服務性能監控
圖1-7展示了Pixie提供的數據庫性能分析能力。Pixie可以自動識別和跟蹤多種不同的數據庫協議。并提供了強大的數據庫性能分析工具,幫助我們全面了解和優化數據庫的性能,提高系統的穩定性和可靠性。

圖1-7 Pixie對數據庫性能分析
圖1-8展示了Pixie提供的鏈路追蹤能力。通過該能力,我們可以獲得即時且深入的可觀測性,使得調試微服務之間的通信工作變得簡單、高效。
圖1-9展示了Pixie提供的應用程序性能剖析能力。通過該能力,我們可以持續地分析應用程序的性能,以識別潛在的性能問題和瓶頸。

圖1-8 Pixie對鏈路追蹤

圖1-9 Pixie對應用程序性能剖析
- pcDuino開發實戰
- Kubernetes修煉手冊
- 全屋互聯:智能家居系統開發指南
- 發布!設計與部署穩定的分布式系統(第2版)
- UNIX操作系統設計
- 網絡操作系統:Windows Server 2003管理與應用
- Learning Android Intents
- Ganglia系統監控
- SharePoint 2013 WCM Advanced Cookbook
- 巧學活用Windows 7
- 嵌入式系統原理及開發
- Linux使用和管理指南:從云原生到可觀測性
- Delphi Programming Projects
- Mastering Windows 8 C++ App Development
- Linux操作系統案例教程(第2版)