本文將分享基于A-Ops性能熱點火焰圖進行性能診斷的2個實際案例,介紹如何使用火焰圖快速定位系統或者應用的性能問題,加深大家對A-Ops火焰圖特性的理解。
案例1
云原生場景下Java類應用性能問題診斷
1. 場景及案例介紹
某Kafka producer客戶端Java應用版本升級后性能出現下降,性能從222W TPS下降到65W TPS,吞吐量從337MB/s下降到95.9MB/s,如下圖所示(為了便于比較,在不同POD里同時啟動升級前后的兩個應用):
可見,Kafka 客戶端應用的性能出現了明顯的下降,但此時Kafka服務端較輕載,CPU 0.7%,內存16.8%,說明性能劣化是由于客戶端應用的問題導致。Kafka服務端資源情況如下:
2.性能問題診斷
通過升級前后的火焰圖比較可以看出,升級后的CPU性能主要消耗在字符串format處理函數上。對于Kafka生成端應用,一般存在大量字符串操作,而字符串處理函數format性能較低,與StringBuilder方法相比有幾倍甚至幾十倍的性能差距,可見字符串format函數是導致性能降低的主要原因。
案例2
CPU抖動類性能故障診斷案例
1. 場景及案例介紹
在生產環境中經常會遇到一些偶發性的CPU抖動問題,這會對應用的性能造成一定的影響,但由于沒有必然的規律,故障發現及問題定位比較難。
2.性能問題診斷
為了模擬上述偶發性的故障,我們通過iperf打流注入2分鐘的故障,然后從多個角度分析故障注入前后火焰圖的數據,進而對CPU抖動類性能故障進行診斷。
在1038通過 iperf3注入2分鐘的流量,命令如下:
iperf3 -c 192.168.122.115 -p 5201 -i 10 -t 120 -P 100 -N -M 100 -b 10000M
流量注入前后,系統應用指標及火焰圖如下圖所示:
從上圖可見,流量注入期間,CPU使用率從平均22%升高到33%,應用性能從232w tps下降到215w tps,火焰圖中iperf3進程對CPU的占用為8.96%。
我們可以通過火焰圖比較視圖進一步分析這個問題,下圖左邊的火焰圖是注入故障前的火焰圖,右邊為注入故障期間的火焰圖,對比可以看到故障注入期間多個iperf3這個進程。
另外,我們還可以通過火焰圖diff視圖來分析這個問題,參考下圖,火焰圖紅色部分為故障注入期間新增加的進程,進而可以定位到iperf3是造成這次CPU抖動以及應用性能劣化的根因。
通過A-Ops性能熱點火焰圖,開發者和維護者可以很方便地預測潛在問題和定位已發生問題。
安裝A-Ops性能熱點火焰圖
gala-ops是針對云基礎設施灰度故障的應用級/系統級在線診斷工具,火焰圖探針stackprobe集成在其中的gala-gopher組件內,用戶只需一鍵安裝gala-gopher后,在配置文件中開啟或關閉火焰圖探針即可使用。
審核編輯:劉清
-
JAVA
+關注
關注
19文章
2973瀏覽量
104899 -
TPS
+關注
關注
0文章
83瀏覽量
36247 -
POD
+關注
關注
0文章
18瀏覽量
6032
原文標題:案例介紹:使用A-Ops性能熱點火焰圖進行性能診斷
文章出處:【微信號:openEulercommunity,微信公眾號:openEuler】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論