新四季網

常用性能指標沒有量化怎麼辦(常用性能指標沒有量化)

2023-09-19 07:59:38

如果要問目前最火熱的 JVM 知識是什麼? 很多同學的答案可能是 「JVM 調優」 或者 「JVM 性能優化」。但是具體需要從哪兒入手,怎麼去做呢?

其實「調優」是一個診斷和處理手段,我們最終的目標是讓系統的處理能力,也就是「性能」達到最優化,這個過程我們就像是一個醫生,診斷和治療「應用系統」這位病人。我們以作為醫生給系統看病作為對比,「性能優化」就是實現「把身體的大小毛病治好,身體達到最佳健康狀態」的目標。

通過了解 JVM 去讓我們具有分析和診斷能力,是本文的核心主題。

量化性能相關指標

"沒有量化就沒有改進",所以我們需要先了解和度量性能指標,就像在醫院檢查以後得到的檢驗報告單一樣。因為人的主觀感覺是不靠譜的,個人經驗本身也是無法複製的,而定義了量化的指標,就意味著我們有了一個客觀度量體系。

那麼系統性能的診斷要做些什麼指標呢?我們先來考慮,進行要做診斷,那麼程序或 JVM 可能出現了問題,而我們排查程序運行中出現的問題,比如排查程序 BUG 的時候,要優先保證正確性,這時候就不僅僅是 JVM 本身的問題,例如死鎖等等,程序跑在 JVM 裡,現象出現在 JVM 上,很多時候還要深入分析業務代碼和邏輯確定 Java 程序哪裡有問題。

分析系統性能問題: 比如是不是達到了我們預期性能指標,判斷資源層面有沒有問題,JVM 層面有沒有問題,系統的關鍵處理流程有沒有問題,業務流程是否需要優化;通過工具收集系統的狀態,日誌,包括打點做內部的指標收集,監控並得出關鍵性能指標數據,也包括進行壓測,得到一些相關的壓測數據和性能內部分析數據;根據分析結果和性能指標,進行資源配置調整,並持續進行監控和分析,以優化性能,直到滿足系統要求,達到系統的最佳性能狀態。

計算機系統中,性能相關的資源主要分為這幾類:

CPU:CPU 是系統最關鍵的計算資源,在單位時間內有限,也是比較容易由於業務邏輯處理不合理而出現瓶頸的地方,浪費了 CPU 資源和過渡消耗 CPU 資源都不是理想狀態,我們需要監控相關指標;內存:內存則對應程序運行時直接可使用的數據快速暫存空間,也是有限的,使用過程隨著時間的不斷的申請內存又釋放內存,好在 JVM 的 GC 幫我們處理了這些事情,但是如果 GC 配置的不合理,一樣會在一定的時間後,產生包括 OOM 宕機之類的各種問題,所以內存指標也需要關注;IO(存儲 網絡):CPU 在內存中把業務邏輯計算以後,為了長期保存,就必須通過磁碟存儲介質持久化,如果多機環境、分布式部署、對外提供網絡服務能力,那麼很多功能還需要直接使用網絡,這兩塊的 IO 都會比 CPU 和內存速度更慢,所以也是我們關注的重點。

性能優化中常見的套路

性能優化一般要存在瓶頸問題,而瓶頸問題都遵循 80/20 原則。既我們把所有的整個處理過程中比較慢的因素都列一個清單,並按照對性能的影響排序,那麼前 20% 的瓶頸問題,至少會對性能的影響佔到 80% 比重。換句話說,我們優先解決了最重要的幾個問題,那麼性能就能好一大半。

我們一般先排查基礎資源是否成為瓶頸。看資源夠不夠,只要成本允許,加配置可能是最快速的解決方案,還可能是最划算,最有效的解決方案。 與 JVM 有關的系統資源,主要是 CPU 和 內存 這兩部分。 如果發生資源告警/不足, 就需要評估系統容量,分析原因。

至於 GPU 、主板、晶片組之類的資源則不太好衡量,通用計算系統很少涉及。

一般衡量系統性能的維度有 3 個:

延遲(Latency): 一般衡量的是響應時間(Response Time),比如平均響應時間。但是有時候響應時間抖動的特別厲害,也就是說有部分用戶的響應時間特別高,這時我們一般假設我們要保障 95% 的用戶在可接受的範圍內響應,從而提供絕大多數用戶具有良好的用戶體驗,這就是延遲的95線(P95,平均 100 個用戶請求中 95 個已經響應的時間),同理還有99線,最大響應時間等(95 線和 99 線比較常用;用戶訪問量大的時候,對網絡有任何抖動都可能會導致最大響應時間變得非常大,最大響應時間這個指標不可控,一般不用)。吞吐量(Throughput): 一般對於交易類的系統我們使用每秒處理的事務數(TPS)來衡量吞吐能力,對於查詢搜索類的系統我們也可以使用每秒處理的請求數(QPS)。系統容量(Capacity): 也叫做設計容量,可以理解為硬體配置,成本約束。

這 3 個維度互相關聯,相互制約。只要系統架構允許,增加硬體配置一般都能提升性能指標。但隨著摩爾定律的失效,增加硬體配置到一定的程度並不能提供性能的線性擴展,比如說已經比較高配置的機器,CPU 核數或頻率、內存擴大一倍,一方面並不能帶來一倍的性能提升,另一方面帶來的成本不止一倍,性價比急速下降,而且到了一定程度想加都加不上去了。作為雲廠商的領頭羊 AWS 今年才開始嘗試提供 256 核的機器,而阿里雲目前最高支持 104 核。所以目前來說,整體上使用分布式的解決辦法,以及局部上對每個系統進行分析調優,是性價比最高的選擇。

性能指標還可分為兩類:

業務需求指標:如吞吐量(QPS、TPS)、響應時間(RT)、並發數、業務成功率等。資源約束指標:如 CPU、內存、I/O 等資源的消耗情況。

詳情可參考: 性能測試中伺服器關鍵性能指標淺析

每類系統關注的重點還不一樣。 批處理/流處理 系統更關注吞吐量, 延遲可以適當放寬。一般來說大部分系統的硬體資源不會太差,但也不是無限的。高可用 Web 系統,既關注高並發情況下的系統響應時間,也關注吞吐量。

例如: "配置 2 核 4GB 的節點,每秒響應 200 個請求,95% 線是 20ms,最大響應時間 40ms。" 從中可以解讀出基本的性能信息: 響應時間(RT<40ms), 吞吐量(200TPS), 系統配置信息(2C4G)。 隱含的條件可能是 "並發請求數不超過 200 "。

我們可採用的手段和方式包括:

使用 JDWP 或開發工具做本地/遠程調試系統和 JVM 的狀態監控,收集分析指標性能分析: CPU 使用情況/內存分配分析內存分析: Dump 分析/GC 日誌分析調整 JVM 啟動參數,GC 策略等等

2.3 性能調優總結

性能調優的第一步是制定指標,收集數據,第二步是找瓶頸,然後分析解決瓶頸問題。通過這些手段,找當前的性能極限值。壓測調優到不能再優化了的 TPS 和 QPS,就是極限值。知道了極限值,我們就可以按業務發展測算流量和系統壓力,以此做容量規劃,準備機器資源和預期的擴容計劃。最後在系統的日常運行過程中,持續觀察,逐步重做和調整以上步驟,長期改善改進系統性能。

我們經常說「脫離場景談性能都是耍流氓」,實際的性能分析調優過程中,我們需要根據具體的業務場景,綜合考慮成本和性能,使用最合適的辦法去處理。系統的性能優化到 3000TPS 如果已經可以在成本可以承受的範圍內滿足業務發展的需求,那麼再花幾個人月優化到 3100TPS 就沒有什麼意義,同樣地如果花一倍成本去優化到 5000TPS 也沒有意義。

Donald Knuth 曾說過「過早的優化是萬惡之源」,我們需要考慮在恰當的時機去優化系統。在業務發展的早期,量不大,性能沒那麼重要。我們做一個新系統,先考慮整體設計是不是 OK,功能實現是不是 OK,然後基本的功能都做得差不多的時候(當然整體的框架是不是滿足性能基準,可能需要在做項目的準備階段就通過 POC(概念證明)階段驗證。),最後再考慮性能的優化工作。因為如果一開始就考慮優化,就可能要想太多導致過度設計了。而且主體框架和功能完成之前,可能會有比較大的改動,一旦提前做了優化,可能這些改動導致原來的優化都失效了,又要重新優化,多做了很多無用功。

,
同类文章
葬禮的夢想

葬禮的夢想

夢見葬禮,我得到了這個夢想,五個要素的五個要素,水火只好,主要名字在外面,職業生涯良好,一切都應該對待他人治療誠意,由於小,吉利的冬天夢想,秋天的夢是不吉利的
找到手機是什麼意思?

找到手機是什麼意思?

找到手機是什麼意思?五次選舉的五個要素是兩名士兵的跡象。與他溝通很好。這是非常財富,它擅長運作,職業是仙人的標誌。單身男人有這個夢想,主要生活可以有人幫忙
我不怎麼想?

我不怎麼想?

我做了什麼意味著看到米飯烹飪?我得到了這個夢想,五線的主要土壤,但是Tu Ke水是錢的跡象,職業生涯更加真誠。他真誠地誠實。這是豐富的,這是夏瑞的巨星
夢想你的意思是什麼?

夢想你的意思是什麼?

你是什​​麼意思夢想的夢想?夢想,主要木材的五個要素,水的跡象,主營業務,主營業務,案子應該抓住魅力,不能疏忽,春天夢想的吉利夢想夏天的夢想不幸。詢問學者夢想
拯救夢想

拯救夢想

拯救夢想什麼意思?你夢想著拯救人嗎?拯救人們的夢想有一個現實,也有夢想的主觀想像力,請參閱週宮官方網站拯救人民夢想的詳細解釋。夢想著敵人被拯救出來
2022愛方向和生日是在[質量個性]中

2022愛方向和生日是在[質量個性]中

[救生員]有人說,在出生88天之前,胎兒已經知道哪天的出生,如何有優質的個性,將走在什麼樣的愛情之旅,將與生活生活有什么生活。今天
夢想切割剪裁

夢想切割剪裁

夢想切割剪裁什麼意思?你夢想切你的手是好的嗎?夢想切割手工切割手有一個真正的影響和反應,也有夢想的主觀想像力。請參閱官方網站夢想的細節,以削減手
夢想著親人死了

夢想著親人死了

夢想著親人死了什麼意思?你夢想夢想你的親人死嗎?夢想有一個現實的影響和反應,還有夢想的主觀想像力,請參閱夢想世界夢想死亡的親屬的詳細解釋
夢想搶劫

夢想搶劫

夢想搶劫什麼意思?你夢想搶劫嗎?夢想著搶劫有一個現實的影響和反應,也有夢想的主觀想像力,請參閱週恭吉夢官方網站的詳細解釋。夢想搶劫
夢想缺乏缺乏紊亂

夢想缺乏缺乏紊亂

夢想缺乏缺乏紊亂什麼意思?你夢想缺乏異常藥物嗎?夢想缺乏現實世界的影響和現實,還有夢想的主觀想像,請看官方網站的夢想組織缺乏異常藥物。我覺得有些東西缺失了