剖析上線環境效能,Granulate打造不需改程式碼調校軟體
<div class="field field-name-field-image field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><img src="https://s4.itho.me/sites/default/files/gprofiler-main.jpg" width="960" height="420" alt="" /></div></div></div><div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"> <p>在2022年5月英特爾舉行的上半年全球用戶大會Vision期間,特別提到近期他們併購一家新創軟體公司Granulate Cloud Solutions,買下這家廠商的目的及技術應用獨特性、效益,引發眾人好奇。</p> <p>英特爾執行副總裁暨資料中心與AI事業群總經理Sandra Rivera表示,Granulate能協助雲端服務廠商與資料中心業者,運用自動化與即時、持續學習的軟體部署,大幅提升應用程式效能,而且不需要修改程式碼,就能獲得高達60%的效能改善幅度,以及總體運算花費減少20%到30%的成效。</p> <p><img alt="" src="https://s4.itho.me/sites/default/files/images/Intel%20Vision%202022-Granulate-1.jpg" style="width: 600px;" /></p> <p>而在實際使用案例上,Sandra Rivera推崇新創SaaS服務業者Nylas的導入,該公司在AWS與GCP這兩家公有雲服務的環境中,執行業務自動化軟體,使用Granulate的軟體之後,且不修改程式碼與投入額外研發人力的前提之下,在5天之內,他們用於AWS運算的支出減少了35%,並且獲得更理想的CPU使用率,以及回應速度。</p> <p><img alt="" src="https://s4.itho.me/sites/default/files/images/Intel%20Vision%202022-Granulate-2.jpg" style="width: 600px;" /></p> <p><img alt="" src="https://s4.itho.me/sites/default/files/images/2022-09-Intel%20Graulate%20Nylas.jpg" style="width: 600px;" /></p> <p>關於實踐這些效益的過程與具體效益,Granulate在7月公布的Nylas案例介紹影片,以及目前網站揭露的案例分析研究當中,提到更多資訊。例如,從初步安裝、教育訓練到啟用,Nylas大約花了20天,而實現35%的運算開銷節省之餘,並未損及終端用戶的服務品質,無額外負擔、系統也持續運作不中斷;在此同時,他們服務的存取延遲(回應時間)縮短58%、吞吐量提升35%,相同的叢集處理的請求數量也提升至原本的2倍,而且,CPU使用量居然還能降低10%。</p> <p>而在Vision 2022大會上,英特爾公開介紹Granulate是雲端服務資源最佳化策略合作的三大公司之一,而他們發展的開放原始碼軟體gProfiler,則在效能剖析(Performance Profiling)的應用上,與英特爾既有的多種工具包並列,像是vTune、EMON、Intel Telemetry Collector。</p> <p><a href="https://s4.itho.me/sites/default/files/images/2022-Intel Granulate-0.jpg"><img alt="" src="https://s4.itho.me/sites/default/files/images/2022-Intel%20Granulate-0.jpg" style="width: 600px;" /></a></p> <p><a href="https://s4.itho.me/sites/default/files/images/2022-11-Intel Granulate2.jpg"><img alt="" src="https://s4.itho.me/sites/default/files/images/2022-11-Intel%20Granulate2.jpg" style="width: 600px;" /></a></p> <p>Granulate共同創辦人暨執行長Asaf Ezra表示,Granulate gProfiler能夠剖析用戶的應用程式,呈現關鍵運作部位,而且,為了避免低度測試環境無法適當模擬實際上線而難以突顯效能瓶頸,他們發展的軟體會是執行正式上線環境當中,因此必須是低負擔(低於1%)、不會影響系統運作的,同時又是可以獨立運作的;此外,Granulate也匯集了多種樣本採集的剖析,目前聚焦在CPU的處理,未來將會擴充互斥鎖(Mutexes)、記憶體等面向,並且以火焰圖(flame graph)的形式呈現。</p> <p><a href="https://s4.itho.me/sites/default/files/images/2022-11-Intel Granulate1.jpg"><img alt="" src="https://s4.itho.me/sites/default/files/images/2022-11-Intel%20Granulate1.jpg" style="width: 600px;" /></a></p> <p><img alt="" src="https://user-images.githubusercontent.com/58514213/124375504-36b0b200-dcab-11eb-8d64-caf20687a29f.gif" style="width: 600px;" /></p> <p>而在程式語言的類型上,gProfiler也支援相當多種環境,像是C、C++、Go,目的是幫助用戶更了解應用程式的運作狀態,不只是顯示花在CPU進行運算的時間長短,而是將心力聚焦在需要注意的地方,以便改善程式碼。</p> <p><a href="https://s4.itho.me/sites/default/files/images/2022-09-Intel Granulate3.jpg"><img alt="" src="https://s4.itho.me/sites/default/files/images/2022-09-Intel%20Granulate3.jpg" style="width: 600px;" /></a></p> <p><a href="https://s4.itho.me/sites/default/files/images/gProfiler-console.jpg"><img alt="" src="https://s4.itho.me/sites/default/files/images/gProfiler-console.jpg" style="width: 298px;" /></a> <a href="https://s4.itho.me/sites/default/files/images/gProfiler-console2.jpg"><img alt="" src="https://s4.itho.me/sites/default/files/images/gProfiler-console2.jpg" style="width: 298px;" /></a></p> <p>gProfiler最主要的價值在於「識別」進行最佳化的位置,能夠透過火焰圖來匯集選定的系統服務狀態,像是Spark叢集、Kubernetes叢集,由於相關的處理工作並非預先決定的,用戶無法得知那些工作分散在哪一臺主機上執行,有哪些Pod要排程執行,以及彼此是否配合,而在針對整個叢集進行採樣之後,就能得到全貌,隨後可根據不同服務、節點來進行條件過濾。</p> <p><a href="https://s4.itho.me/sites/default/files/images/2022-Intel Granulate-5.jpg"><img alt="" src="https://s4.itho.me/sites/default/files/images/2022-Intel%20Granulate-5.jpg" style="width: 600px;" /></a></p> <p>舉例來說,開發者能藉此了解有些呼叫堆疊不合理,之後可以去專心處理這部分,或是獲得建議、並結合英特爾持續推動軟體最佳化工程的成果,而得知能改用更新的軟體元件版本提升性能。</p> <p><a href="https://s4.itho.me/sites/default/files/images/2022-09-Intel Granulate4.jpg"><img alt="" src="https://s4.itho.me/sites/default/files/images/2022-09-Intel%20Granulate4.jpg" style="width: 298px;" /></a></p> <p>另一個gProfiler呈現應用程式工作負載狀態的形式,是藉由表格來列舉,開發者可以檢視不同功能所屬執行時間內的狀態,找到真正耗費很多CPU時間處理的功能部位,而不只是看到它們呼叫某些功能,瞭解真正需要去改善的地方。</p> <p><img alt="" src="https://s4.itho.me/sites/default/files/images/2022-09-Intel%20Granulate1.jpg" style="width: 600px;" /> </p> <p> </p> <div class="media_embed" height="315px" width="560px"> <iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="" frameborder="0" height="315px" src="https://www.youtube.com/embed/Epa7YryNXzc?si=zM1iddYWe2CwqAnb" title="YouTube video player" width="560px"></iframe></div> <p> </p> <p><strong style="color: rgb(0, 128, 128);">產品資訊</strong></p> <p><strong>Granulate gProfiler</strong><br /> ●原廠:Granulate<br /> ●建議售價:廠商未提供<br /> ●支援運算架構:x86_64、Aarch64<br /> ●支援執行時期環境:Clojure、Scala、Ruby、C / C++、Java、Python、JS、PHP、Go<br /> ●包含的剖析器:Python eBPF、async-profiler、py-spy、bcc、phpspy、rbspy<br /> ●安裝方式:Docker映像、DaemonSet(直接安裝在Kubernetes叢集)、命令列安裝、在DataBricks服務的節點執行指令、安裝在叢集環境中(Amazon ECS、Amazon EMR、紅帽OpenShift)</p> <p>【註:規格與價格由廠商提供,因時有異動,正確資訊請洽廠商】</p> </div></div></div>