《4、DevPerfOps 性能工程_ 通往高性能低成本軟件之路_張旭海.pdf》由會員分享,可在線閱讀,更多相關《4、DevPerfOps 性能工程_ 通往高性能低成本軟件之路_張旭海.pdf(22頁珍藏版)》請在三個皮匠報告上搜索。
1、Dev evPerferfOps ps 性能工程性能工程 通往高性能低成本軟件之路通往高性能低成本軟件之路2023 China DevOpsDays-8月12日 北京-張旭海張旭海Thoughtworkshoughtworks 安全與系統研發事業部安全與系統研發事業部架構師、專家級咨詢師架構師、專家級咨詢師在軟件架構設計、云原生基礎設施、企業數字化和性能工程等領域擁有7年咨詢和交付經驗。關注并聚焦于云原生、分布式以及系統研發等技術領域,是活躍的技術博客寫作者,技術文章翻譯者和開源軟件貢獻者。性能后置時代落幕性能后置時代落幕計算機體系結構發展放緩計算機體系結構發展放緩CPU 性能增速急劇衰減:性
2、能增速急劇衰減:19862003:性能每年提升 52%20032015:單核 多核,每年提升 1223%2015至今:摩爾定律終結,每年提升 3%改善性能不再對代碼透明:改善性能不再對代碼透明:單核:指令級并行,硬件+編譯器多核:線程級并行,并發編程圖源:計算機體系結構:量化研究方法復雜系統性能治理愈發困難復雜系統性能治理愈發困難軟件一直朝著規模龐大的方向發展軟件一直朝著規模龐大的方向發展:復雜:單體 SOA 微服務 云原生緩慢:函數調用 進程間調用 跨服務遠程調用圖源:Uber 的微服務架構圖無法忽視的成本增速無法忽視的成本增速云成本管理成為企業用云的頭號挑戰。公有云支出平均超出企業預算 1
3、8%,且仍在逐年增長。2023 State of the Cloud Report即便在容器技術大幅提升資源利用率的情況下,仍有 68%的企業表示在遷移至 K8s 后其計算資源成本反倒增加了。FINOPS FOR KUBERNETES(CNCF)性能優化:提升服務體驗,降低硬件開銷,多角度性能優化:提升服務體驗,降低硬件開銷,多角度降成本降成本圖源:2023 State of the Cloud Report融入性能并不容易融入性能并不容易研發流程中,性能往往被忽視研發流程中,性能往往被忽視習慣于習慣于“性能后置性能后置”,把性能問題推到,把性能問題推到 Day2ay2打破思維定式不容易打破思
4、維定式不容易設計階段:性能考量基于經驗知識,缺少完整建模方案和驗證方法。開發階段:業務開發優先,性能優化看心情,缺少性能基準測試。測試階段:按時上線最重要。關鍵路徑覆蓋不足,測試方法可能存在偏頗。PlanningImplemen-tationClient NameMaintenanceDesignAnalysisTesting&IntegrationDevelopmentLifecycleDay2:發現性能問題開發測試返工依賴專家經驗,難以規?;蕾噷<医涷?,難以規?;阅軆灮W絡存儲CPU內存協議算法指標建模測試分析數據結構編程語言性能工具系統架構性能優化依賴性能優化依賴“分析性思維分析性思
5、維”和和“綜合技術能力綜合技術能力”理解關鍵業務路徑+熟悉系統架構掌握底層系統知識和原理+各種性能分析工具的使用性能優化方法和理論+大量的實踐經驗孤立工具的高認知負載孤立工具的高認知負載pprofjmapjstackjhatjstatjinfojps學習成本高:學習成本高:不同的語言、框架、系統都有自己的一套工具,使用復雜,不容易掌握數據不直觀:數據不直觀:需要在各種工具的結果報告間關聯數據,尋找問題蹤跡,注重邏輯分析和演繹圖源:Linux Performance Observability Tools什么是性能工程?什么是性能工程?Dev evPerferfOps ps:構建性能工程反饋閉環
6、:構建性能工程反饋閉環平臺能力支撐看護定界測試仿真代碼優化設計設計開發開發測試測試運營運營代碼靜態掃描微基準測試關鍵路徑插樁性能測試框架用例模板執行任務編排仿真數據分析版本性能基線指標模型對比根因分析性能優化模式性能建模性能指標要求性能規劃設計性能關注點地圖插件市場測試平臺觀測系統分析服務知識庫性能左移:技術支撐的流程再造性能左移:技術支撐的流程再造隊列容量消費速度排隊率中斷頻率上下文切換softirqAsync IO零拷貝用戶態 性能建模性能建模:關注點地圖、指標模型性能測試用例負載發生器用例調度仿真環境采樣分析器插件市場用例觀測系統性能測試性能測試:用例框架、基礎設施圖源:TCP Impl
7、ementation in Linux:A Brief Tutorial,Fig.1性能基線性能調優效果性能劣化版本/時間版本/時間TPSv1.0.105/14黑盒看護指標指標增量看護結果操作RT+20%Fail診斷TPS+3%Success進程/組件級看護指標v1.1.006/12v1.1.106/15v1.1.206/18v1.2.007/23指標增量看護結果操作IOPS+10%Fail診斷MEM+2%Success指定組件性能定界對比指標增量cache-miss50%持續改進:性能看護持續改進:性能看護動態看護,統計性能變化:動態看護,統計性能變化:看護的本質是建立基線。隨著版本迭代,通
8、過基線對比發現指標優化、劣化趨勢。多層級指標關聯,釋放診斷能力多層級指標關聯,釋放診斷能力:黑盒指標缺少細節,難以定位劣化點。與進程、組件級指標關聯,能夠縮小范圍,幫助識別根因。持續改進:性能持續改進:性能定界定界pprofTracingJVMTI性能剖析,函數級采樣分析性能剖析,函數級采樣分析:看護報告可以定位到到服務或模塊。但性能分析需要更細粒度數據來尋找劣化代碼段。性能剖析(Profiling)在函數級別進行數據采樣。生成函數調用圖、CPU 火焰圖、內存分析報告、TopDown 分析圖等以供分析和優化。Profilingrofiling知識圖譜知識圖譜:分析路徑分析路徑+優化模型優化模型
9、avgloadContextSwitchsoft-IRQInterruptibleNon-interruptibleCache-missUserKernelhard-IRQTLB-missFalse-sharingpidstatfreePage FaultSharedmmapshm_unlinkCGroupNUMALarge PageBranch-missvmstatlikely/unlikelyprefetchregisterpackedFlamegraphiostat/sarVFSinode-cacheCallgraphTrace LogPGOSlow switchCPU affinity
10、Multi-ThreadLazy-loadAlgorithmNetworkCopy-on-writepmutools性能分析性能分析 6060 秒秒uptimedmesg|tailvmstat 1mpstat-P ALL 1pidstat 1iostat-xz 1free-msar-n DEV 1sar-n TCP,ETCP 1top性能問題性能問題專項專項系統上下文設計架構代碼倉庫團隊成員性能定界調用圖火焰圖TopDown熱點函數問題日志現象描述過程看板看護報告觀測數據服務拓撲指標監控鏈路追蹤日志分析專家協同專家協同專家資源池預約/委派遠程協助環境仿真臨時憑證專家協同:處理效率提升專家協同:
11、處理效率提升整合性能上下文,整合性能上下文,專家資源高效協同專家資源高效協同:處理疑難雜癥,性能專家不可或缺。團隊可在內部平臺創建“性能優化專項”,對日志、觀測數據、分析結果等進行匯總,并預約/委派專家。性能專家進入項目后,可以快速熟悉上下文、授權臨時憑證訪問系統,并可隨時開展遠程協助。整合能力整合能力:啟發式自助分析流啟發式自助分析流視圖間靈活跳轉1.多維度指標變化趨勢發現異常2.調用圖符號過濾區分關注點和責任劃分3.火焰圖/Top-down發現瓶頸/優化重點4.差分圖識別問題來源和變更點5.熱點函數表關注重點組件6.匯編diff 細粒度分析問題表現平臺側7.記錄分析流程步驟,生成可復用的性
12、能分析圖譜應用側建設建設性能工程性能工程體系體系建設性能工程的成熟度路線建設性能工程的成熟度路線革新流程革新流程建立意識建立意識工作流引入性能建模、性能測試、性能仿真開發集成自有測試框架和工具集流程化持續看護持續看護持續優化持續優化建成性能數據收集和分析的可觀測能力性能基線持續看護,數據驅動持續優化和決策數字化固化經驗固化經驗積累模式積累模式形成專家資源池,建立性能知識圖譜總結分析路徑和優化模式,固化為公共組件資產化面向面向能力能力重構平臺重構平臺整合知識資產和方法實踐,重構企業內部平臺,建設面向性能工程的平臺化能力平臺化能力矩陣能力矩陣設計建模建模工具指標管理性能測試用例腳手架用例編排性能看護基線對比趨勢洞察性能分析啟發式分析自助分析項目運營上下文管理分析優化歷史數據支撐服務支撐服務基礎設施基礎設施資源服務資源服務數據服務數據服務一站式優化:性能工程平臺能力一站式優化:性能工程平臺能力知識庫知識圖譜案例集監控觀測數據采集分析洞察專家協同專家資源遠程協助仿真服務環境準備任務執行插件市場采樣分析用例模板 IaaS容器平臺 多云融合AI 服務能力數據倉庫數據分析Thanks感 謝 聆 聽2023 China DevOpsDays-8月12日 北京-