《謝寶友--eBPF和內核模塊在Linux診斷中的應用.pdf》由會員分享,可在線閱讀,更多相關《謝寶友--eBPF和內核模塊在Linux診斷中的應用.pdf(20頁珍藏版)》請在三個皮匠報告上搜索。
1、eBPF&內核模塊在Linux診斷中的應用第二屆 eBPF開發者大會w w w.e b p f t r a v e l.c o m中 國 西 安銀河雷神特大型特大型自研操作系統作者-謝寶友eBPF&內核模塊優劣勢1、第二屆 eBPF開發者大會w w w.e b p f t r a v e l.c o m中 國 西 安eBPF案例2、內核模塊案例3、高安全性嚴格驗證:確保無死循環、非法內存訪問、棧溢出、除數為0等不安全操作,不會崩潰,不會對系統造成損害。隔離:與內核其他組件隔離,防止未經授權訪問內核內存、數據結構和內核源代碼。有限操作:一個受限的指令集。限制可以執行的操作,降低了安全漏洞的風險。
2、高性能針對特定硬件優化:生成硬件專用指令集,作為本機機器代碼運行。無上下文切換:在內核運行,直接訪問內核數據結構和資源。事件驅動:僅在響應事件時運行,不是一直運行。高擴展性TCP 擁塞算法:BPF_PROG_TYPE_STRUCT_OPSextFUSE:用戶空間文件系統擴展框架調度器:BPF_PROG_TYPE_SCHED高可移植性BPF CO-RE(Compile Once Run Everywhere),BTF為內核而設計,幫助eBPF程序兼容不同的內核版本。第 二 屆 e B P F 開 發 者 大 會eBPF優勢1、受限于linux及較新內核內核版本低于4.14將無法運行部分新特性在較
3、高版本才支持,并不斷演進中 訪問操作系統功能是有限的eBPF的安全性是通過限制程序可訪問資源來實現的其訪問操作系統的功能受限 不保證精確計數 不宜用于頻繁執行的函數第 二 屆 e B P F 開 發 者 大 會eBPF劣勢1、自由調用內核API,甚至私有函數 性能更高 代碼尺寸不受限制,可以實現復雜功能 更靈活的掛接鉤子 幾乎可以用于所有內核版本第 二 屆 e B P F 開 發 者 大 會內核模塊優勢1、第 二 屆 e B P F 開 發 者 大 會內核模塊劣勢1、需要小心的編寫代碼,穩定性驗證周期長 版本適配工作更繁瑣 穩定性責任劃分問題 人才問題eBPF&內核模塊優劣勢1、第二屆 eBP
4、F開發者大會w w w.e b p f t r a v e l.c o m中 國 西 安eBPF案例2、內核模塊案例3、BCC等工具在實踐中的缺點部署時需攜帶Clang和LLVM等基礎庫運行時編譯BPF代碼,耗費CPU資源,開銷高需發布源碼 解決方案采用BPF CO-RE技術,在本地主機上預編譯BPF程序只需編譯機安裝Clang和LLVM等基礎庫,目標機無需部署避免了運行時編譯開銷高的缺點無需源碼發布需要特定版本的內核,并打開相關配置選項不一樣的libbpftools/lib/bpf、tools/bpf第 二 屆 e B P F 開 發 者 大 會如何避免編譯eBPF?2、核心思想:eBPF所
5、有操作均封裝在動態庫(.so)中,需要時可以動態獲取將eBPF程序的load和attach一系列操作流程進行封裝,對用戶僅暴露必要、最少接口注意放寬內核版本匹配 優點:避免了eBPF代碼的暴露使用簡便,對用戶更友好避免安裝基礎庫,引起版本沖突并觸發生產故障第 二 屆 e B P F 開 發 者 大 會如何避免暴露eBPF代碼?2、按進程PID,診斷塊設備的IO操作的延遲情況支持用戶指定時間閾值記錄堆棧、進程、io、延遲等信息基于kprobe、tracepoint第 二 屆 e B P F 開 發 者 大 會eBPF應用案例 -IO延遲2、第 二 屆 e B P F 開 發 者 大 會eBPF應
6、用案例 -IO延遲2、跟蹤所有進程的io延遲情況 -stress模擬診斷系統內存直接回收的延時。支持用戶設定時間閾值,記錄進程堆棧、進程ID、延遲時間等?;趖racepoint第 二 屆 e B P F 開 發 者 大 會eBPF應用案例 -直接內存回收延遲診斷2、第 二 屆 e B P F 開 發 者 大 會eBPF應用案例 -直接內存回收延遲診斷2、stress 模擬觸發直接內存回收按進程PID統計 CPU 緩存的reference和miss情況。支持用戶設定采樣周期、命中率閾值(0100)記錄命中率低的進程ID和棧信息等;基于perf第 二 屆 e B P F 開 發 者 大 會eBP
7、F應用案例 -緩存命中率2、第 二 屆 e B P F 開 發 者 大 會eBPF應用案例 -緩存命中率2、5s內命中率(0100%)所有進程棧信息eBPF&內核模塊優劣勢1、第二屆 eBPF開發者大會w w w.e b p f t r a v e l.c o m中 國 西 安eBPF案例2、內核模塊案例3、第 二 屆 e B P F 開 發 者 大 會內核模塊應用案例3、第 二 屆 e B P F 開 發 者 大 會內核模塊應用案例3、功能:統計應用的域間網絡流量難點:IP/域映射關系復雜流量大,每秒10Gb+秒級精確統計實現要點:每CPU的統計隊列小心維護IP/域映射關系,快速查找用戶態/內核態數據交換技術第 二 屆 e B P F 開 發 者 大 會內核模塊應用案例3、功能:混部應用干擾分析難點:調度鉤子執行頻繁按應用/容器統計硬件指標秒級精確統計實現要點:修復perf子系統缺陷,不重啟系統IPI/workqueue 匯總數據?短生命周期的容器不同凡響的銀河雷神操作系統第二屆 eBPF開發者大會w w w.e b p f t r a v e l.c o m