0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

分享一款適用于云原生的全棧持續(xù)性能監(jiān)測工具

openEuler ? 來源:openEuler ? 2023-02-28 15:59 ? 次閱讀

對于開發(fā)及運(yùn)維人員來講,火焰圖是一個經(jīng)典的定位性能問題的方法。利用火焰圖可以可視化系統(tǒng)資源(cpu占用、內(nèi)存占用、調(diào)度、IO等)的占用情況,從而幫助技術(shù)人員快速定位資源異常使用的代碼級根因,或者觀察潛在性能劣化趨勢,進(jìn)而優(yōu)化系統(tǒng)和應(yīng)用的性能。

然而,現(xiàn)有流行的火焰圖工具往往存在一個或多個局限性,實(shí)際應(yīng)用場景比較有限。因此,openEuler上的開源項(xiàng)目A-Ops中的gala-ops系列組件提供了適用于云原生的全棧持續(xù)性能監(jiān)測火焰圖。

傳統(tǒng)火焰圖在實(shí)際應(yīng)用中的痛點(diǎn)

1.傳統(tǒng)火焰圖工具相對獨(dú)立,難以對接第三方插件或集成到運(yùn)維系統(tǒng),在應(yīng)用中需要有經(jīng)驗(yàn)的開發(fā)人員手動結(jié)合其他調(diào)試工具分析定位。

2.由于開銷較大,火焰圖大多僅僅作為工具在開發(fā)和調(diào)試階段被使用,不能在生產(chǎn)環(huán)境中常態(tài)化部署。所以對于更常見的場景——即實(shí)際生產(chǎn)環(huán)境中的突發(fā)性的性能問題,火焰圖并不是定位問題的有效手段。

3.生產(chǎn)環(huán)境上中部署的應(yīng)用類型錯綜復(fù)雜,語言紛繁多樣,而且很多應(yīng)用是會調(diào)用不同語言的模塊。但是每種火焰圖工具往往只針對單一類型的語言。即使同時部署了不同語言的火焰圖觀測工具,所生成的火焰圖數(shù)據(jù)又難以統(tǒng)一,從系統(tǒng)角度難以觀測不同語言應(yīng)用的性能占比。

4.傳統(tǒng)火焰圖往往只能觀測進(jìn)程,線程粒度,是host時代的工具。對于云原生系統(tǒng)更關(guān)注的容器粒度,傳統(tǒng)火焰圖無法直觀區(qū)分。

gala-ops火焰圖的四大特性

1.易于部署和集成

gala-ops是針對云基礎(chǔ)設(shè)施灰度故障的應(yīng)用級/系統(tǒng)級在線診斷工具,火焰圖探針stackprobe集成在其中的gala-gopher組件內(nèi)。用戶只需一鍵安裝gala-gopher后,在配置文件中開啟或關(guān)閉火焰圖探針即可使用。具體的安裝部署說明可參考gala-gopher文檔。

c62d2d22-aa8c-11ed-bfe3-dac502259ad0.png

gala-ops火焰圖默認(rèn)會在本地生成svg格式的火焰圖。另外它也支持pyroscope和grafana等第三方運(yùn)維平臺,僅需在配置文件中填上第三方插件的地址,火焰圖探針程序就會定期自動將火焰圖數(shù)據(jù)上傳到遠(yuǎn)端以方便后續(xù)分析和實(shí)時監(jiān)測。

以下是gala-ops cpu火焰圖對接pyroscope和grafana的示例。通過選擇特定時間段,可以查看到該時間段的火焰圖,函數(shù)cpu占比排序,配合其他系統(tǒng)或應(yīng)用指標(biāo)可以很方便地發(fā)現(xiàn)和定位問題。

c63d88ac-aa8c-11ed-bfe3-dac502259ad0.png

2.容器支持

云原生系統(tǒng)中,應(yīng)用以容器形式部署。傳統(tǒng)火焰圖中在進(jìn)行系統(tǒng)級觀測時,最多體現(xiàn)線程名稱,若不同容器示例內(nèi)線程名相同,則調(diào)用棧會合并在一起無法區(qū)分,影響后續(xù)定位定界。gala-ops火焰圖探針能夠自動識別本機(jī)中的pod和container,并在圖里增加工作負(fù)載,容器和進(jìn)程號信息。

若進(jìn)程為工作負(fù)載/容器內(nèi)進(jìn)程,則分別以[Pod]和[Con]前綴標(biāo)記pod和container,進(jìn)程以[]前綴標(biāo)記。

效果圖參見下一段附圖,可見通過查看調(diào)用棧底部第一層,可以明顯區(qū)分主機(jī)進(jìn)程和容器進(jìn)程。

3.全棧支持

gala-ops火焰圖支持編譯型和解釋型語言的混合代碼調(diào)用棧解析。目前已支持的語言包括C,C++,GO,Rust,JAVA。不同語言的應(yīng)用,同一調(diào)用棧中不同語言的函數(shù)/方法,用戶態(tài)和內(nèi)核態(tài),均可在同一火焰圖中統(tǒng)一顯示。而且使用gala-ops火焰圖前不需要針對不同的語言做額外配置或重新部署應(yīng)用,即開即用。

下圖顯示了一個實(shí)測生成的gala-ops cpu火焰圖,以右側(cè)的一個tomcat容器調(diào)用棧為例,從底層往頂層看調(diào)用關(guān)系:tomcat pod內(nèi)包含一個container,containter中有一個pid為2434466的java進(jìn)程,進(jìn)程內(nèi)cpu占用最多的是名為http-nio-8080-e的JVM線程,JVM調(diào)用了C庫函數(shù)thread_native_entry,再往上進(jìn)入了Java方法java.lang.Thread::run,然后經(jīng)過一系列的Java方法調(diào)用,最終走到了ksys_write系統(tǒng)調(diào)用,然后進(jìn)入內(nèi)核態(tài)函數(shù)。

這樣一個Java進(jìn)程從k8s層->OS層->JVM底層實(shí)現(xiàn)->Java方法->內(nèi)核態(tài)函數(shù)——完整的調(diào)用過程就可以通過gala-ops火焰圖追溯到。

c64c6c78-aa8c-11ed-bfe3-dac502259ad0.png

4.低開銷

gala-ops火焰圖基于ebpf技術(shù),精簡堆棧采樣邏輯,實(shí)現(xiàn)保持采樣精度(cpu采樣頻率10ms)的同時對被觀測應(yīng)用性能影響很?。ㄒ话阍?%左右)。因此,大規(guī)模生產(chǎn)環(huán)境中也可以持續(xù)開啟gala-ops火焰圖以實(shí)時觀測應(yīng)用性能,這樣即使出現(xiàn)應(yīng)用或系統(tǒng)故障,無需事后重現(xiàn)問題,通過gala-ops火焰圖可以回溯以往任意時刻的系統(tǒng)狀態(tài)。

我們測試了開關(guān)cpu火焰圖對不同應(yīng)用的性能影響:對于本身性能中等,吞吐量中等的應(yīng)用,例如tomcat,tps劣化在1%以下;對于本身性能較高,吞吐量大的應(yīng)用,例如kafka,tps劣化在2%以下。結(jié)果如下:

對比開關(guān)cpu火焰圖探針對tomcat性能的影響:

c66b4742-aa8c-11ed-bfe3-dac502259ad0.png

對比開關(guān)cpu火焰圖探針對kafka寫入MQ消息性能的影響:

c67d4852-aa8c-11ed-bfe3-dac502259ad0.png

gala-ops火焰圖具有易于部署和集成,容器支持,全棧支持,低開銷等特性,使得開發(fā)者和維護(hù)者無論在開發(fā)環(huán)境還是生產(chǎn)環(huán)境均可通過火焰圖的形式預(yù)測潛在問題和定位已發(fā)生問題。

功能的持續(xù)完善

目前gala-ops火焰圖已經(jīng)支持cpu占用,內(nèi)存泄漏兩種類型火焰圖,后續(xù)還會加入對其他系統(tǒng)資源的觀測,例如調(diào)度、網(wǎng)絡(luò)IO、磁盤IO等。此外,對其他語言應(yīng)用的支持也在持續(xù)開發(fā)中。







審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10863

    瀏覽量

    211779
  • JAVA
    +關(guān)注

    關(guān)注

    19

    文章

    2967

    瀏覽量

    104758
  • SVG
    SVG
    +關(guān)注

    關(guān)注

    0

    文章

    127

    瀏覽量

    16423
  • OPS
    OPS
    +關(guān)注

    關(guān)注

    0

    文章

    61

    瀏覽量

    18165

原文標(biāo)題:A-Ops性能火焰圖——適用于云原生的全棧持續(xù)性能監(jiān)測工具

文章出處:【微信號:openEulercommunity,微信公眾號:openEuler】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    EVAL-AD7785EBZ是一款完整的模擬前端,適用于低頻測量應(yīng)用

    EVAL-AD7785EBZ,AD7785評估板,是一款低功耗,20位sigma-delta ADC。 AD7785是一款完整的模擬前端,適用于低頻測量應(yīng)用
    發(fā)表于 08-23 08:37

    EVAL-AD7718EB,是一款完整的模擬前端,適用于低頻測量應(yīng)用

    EVAL-AD7718EB,評估板使用AD7718,8 / 10通道,24位sigma delta模數(shù)轉(zhuǎn)換器。 AD7718是一款完整的模擬前端,適用于低頻測量應(yīng)用。 AD7718經(jīng)過工廠校準(zhǔn),因此
    發(fā)表于 09-16 10:42

    阿里云安全肖力:云原生安全構(gòu)筑下代企業(yè)安全架構(gòu)

    解決方案,分別適用于公共云和專有云,通過保障云平臺之上業(yè)務(wù)系統(tǒng)和應(yīng)用的關(guān)鍵代碼和數(shù)據(jù)不被篡改,來確保系統(tǒng)和應(yīng)用運(yùn)行在個可信的狀態(tài),從根本上保障安全。目前已經(jīng)在公共云有實(shí)踐應(yīng)用。數(shù)據(jù)安全是云平臺立身之本
    發(fā)表于 09-29 15:15

    阿里云推出內(nèi)部操作透明化服務(wù) 為用戶提供數(shù)據(jù)保護(hù)體系

    與用戶相關(guān)的操作日志對用戶可見。阿里云還為用戶提供了可靠的鏈路數(shù)據(jù)加密,且密鑰僅為用戶所有,并完全可控,進(jìn)步保護(hù)用戶數(shù)據(jù)安全。此外,阿里云還發(fā)布了基于云原生安全技術(shù)的云平臺可信解決方案,分別
    發(fā)表于 09-29 15:27

    求大佬分享一款適用于激光及MRI的寬帶LDMOS晶體管

    求大佬分享一款適用于激光及MRI的寬帶LDMOS晶體管
    發(fā)表于 06-08 06:29

    一款適用于STM32的UI設(shè)計(jì)軟件

    最近發(fā)現(xiàn)一款適用于STM32的UI設(shè)計(jì)軟件,界面炫酷,操作方便,經(jīng)過幾天的摸索,終于將TouchGFX+STM32CubeMX+STM32CubeIDE創(chuàng)建項(xiàng)目工程的全過程走通。在安裝
    發(fā)表于 08-04 07:00

    性能提升1倍,成本直降50%!基于龍蜥指令加速的下云原生網(wǎng)關(guān)

    Ingress,使用過程中遇到運(yùn)維成本高、安全差、原生功能弱等痛點(diǎn),期望能夠找到一款替代產(chǎn)品;在接觸 MSE 云原生網(wǎng)關(guān)后,在上線前的測試過程中對于 HTTPS 硬件加速功能非常認(rèn)可,測試驗(yàn)證開啟后的加速
    發(fā)表于 08-31 10:46

    只需 6 步,你就可以搭建云原生操作系統(tǒng)原型

    開發(fā)軟件應(yīng)用的種模式,也就是站在巨人的肩膀上,充分利用成熟穩(wěn)定的云基礎(chǔ)設(shè)施來開發(fā)、發(fā)布、運(yùn)行和維護(hù)個應(yīng)用,以保障我們應(yīng)用的彈性、性能、容器、成本等諸多方面的訴求。 (圖/龍蜥云原生
    發(fā)表于 09-15 14:01

    面向云原生的混沌工程工具-ChaosBlade

    。ChaosBlade 工具可以通過聲明式配置執(zhí)行混沌實(shí)驗(yàn),簡單高效。本文將會重點(diǎn)介紹 ChaosBlade 以及云原生相關(guān)的實(shí)驗(yàn)場景實(shí)踐。 ChaosBlade 介紹 ChaosBlade 是阿里巴巴開源的一款遵循混沌實(shí)驗(yàn)?zāi)P?/div>
    發(fā)表于 11-14 23:06 ?656次閱讀
    面向<b class='flag-5'>云原生</b>的混沌工程<b class='flag-5'>工具</b>-ChaosBlade

    引領(lǐng)云原生2.0時代,賦能新云原生企業(yè)

    十年云計(jì)算浪潮下,DevOps、容器、微服務(wù)等技術(shù)飛速發(fā)展,云原生成為潮流。Forrester首席分析師戴鯤表示,云原生是企業(yè)數(shù)字化轉(zhuǎn)型的基礎(chǔ),企業(yè)需要建立云原生優(yōu)先的戰(zhàn)略,構(gòu)建體化
    的頭像 發(fā)表于 12-11 16:04 ?1826次閱讀

    華為云發(fā)布云原生2.0全景圖,結(jié)果和過程的雙重可信的高質(zhì)量

    華為云還發(fā)布云原生2.0全景圖,其中,在應(yīng)用敏捷層,華為云將云原生能力賦能客戶,幫助客戶應(yīng)用敏捷、業(yè)務(wù)智能,安全可信,面向未來持續(xù)演進(jìn)
    的頭像 發(fā)表于 12-22 14:35 ?2955次閱讀

    如何設(shè)計(jì)一款適用于各類電池尺寸、電壓和外形的電池測試儀

    如何設(shè)計(jì)一款適用于各類電池尺寸、電壓和外形的電池測試儀
    發(fā)表于 10-28 12:00 ?0次下載
    如何設(shè)計(jì)<b class='flag-5'>一款</b><b class='flag-5'>適用于</b>各類電池尺寸、電壓和外形的電池測試儀

    一款適用于紅藍(lán)對抗的演練工具Goblin介紹

    Goblin 是一款適用于紅藍(lán)對抗的演練工具。通過反向代理,可以在不影響用戶操作的情況下無感知的獲取用戶的信息,或者誘導(dǎo)用戶操作。
    的頭像 發(fā)表于 11-01 09:06 ?1709次閱讀

    云原生和數(shù)據(jù)庫哪個好些?

    云原生和數(shù)據(jù)庫哪個好些?云原生和數(shù)據(jù)庫各有其獨(dú)特的優(yōu)勢,適用于不同的場景。云原生強(qiáng)調(diào)高效資源利用、快速開發(fā)部署和高可伸縮性,適合需要高度靈
    的頭像 發(fā)表于 11-29 10:07 ?140次閱讀

    什么是云原生MLOps平臺

    云原生MLOps平臺,是指利用云計(jì)算的基礎(chǔ)設(shè)施和開發(fā)工具,來構(gòu)建、部署和管理機(jī)器學(xué)習(xí)模型的生命周期的平臺。以下,是對云原生MLOps平臺的介紹,由AI部落小編整理。
    的頭像 發(fā)表于 12-12 13:13 ?103次閱讀