如果有人問,這個系統的效能到底好不好?有什麼指標,能夠說明系統的效能?且看老楊的這篇文章《如何判斷乙個應用系統效能好不好?》。
在建設專案系統投入生產應用前,往往會對系統做個效能壓測,一是為了驗證系統的在設定的不同併發數、使用者數和對應業務場景下的負載能力,是否符合系統最初的設定目標,二是做到心中有數,知曉現階段系統上述各場景下的壓測表現,為後續系統的擴充套件,有乙個較為真實的重要參考推斷依據。
分別看一下各自的指標含義:
1. 併發數指系統可以同時承載的正常使用系統功能的使用者訪問數量,反應系統整體負載能力。
2. 響應時間(rt)reponse time
這裡普及乙個概念:
軟體效能的高低實際上取決於使用者對該響應時間的接受程度。如遊戲毫秒級響應、編譯程式的分鐘級響應、和影象渲染小時級、天級響應時間不在乙個數量級,不能作為軟體效能好壞的絕對判斷。
3. 吞吐量指系統在單位時間內處理請求的數量。乙個事務是指乙個客戶機向伺服器傳送請求,然後伺服器做出反應的過程。客戶機在傳送請求時開始計時,收到伺服器響應後結束計時,以此來計算使用的時間和完成的事務個數。
吞吐量體現系統處理請求的能力,這是目前最常用的效能測試指標。
吞吐量的指標受到響應時間、伺服器軟硬體配置、網路狀態等多方面因素影響。
1. 吞吐量越大,響應時間越長。吞吐量常用的兩個量化指標qps(每秒查詢數)、tps(每秒事務數),另外還有hps(每秒http請求數)。2. 伺服器硬體配置越高,吞吐量越大。
3. 網路越差,吞吐量越小。
tps和qps的區別:
1. tps即每秒處理事務數,包括:
a) 使用者請求伺服器。
b) 伺服器自己的內部處理。
c) 伺服器返回給使用者。
單位時間內/每秒能夠完成n個這三個過程,tps就是n。
2. qps類似tps,但不同的是,對於乙個頁面的一次訪問,形成乙個tps。但一次頁面請求,可能產生多次的對伺服器請求,伺服器對這些請求qps,會計入到一次tps中。
吞吐量:一段時間內應用系統處理使用者的請求數(以下介紹指單位時間內,也可以理解為吞吐率),這個定義考察點一般是系統本身因素。當然也可以用單位時間內流經被測系統的資料流量,一般單位為b/s,即每秒鐘流經的位元組數,這個定義的考察點既有系統本身因素也有網路,外設等因素,也可以理解為除客戶端以外的測試環境及被測系統。
併發使用者數:指同一時間點對業務功能同時操作的使用者數,可以分為兩種:一種是嚴格意義上的併發,即所有的使用者在同一時刻做同一件事或操作,這時業務功能一般指同一型別的業務。另外一種併發是廣義範圍的併發,這種併發與前一種併發的區別是,儘管多個使用者對系統發出了請求或者進行了操作,但是這些請求可以是相同的,也可以是不同的,這時業務功能可能不是同一型別的業務。
一般來說,吞吐量隨系統的併發使用者數的增加呈現增加趨勢。併發使用者數是客戶端單位時間內對伺服器端施加的壓力,具體能不能接受並處理要看被測系統的吞吐量,而吞吐量是被測系統單位時間內處理的請求數或者說單位時間內處理的位元組數。乙個著重於客戶端的操作,乙個著重於應用系統的處理能力。
兩者的計算公式註明下:
平均併發使用者數的計算:c=nl / t
其中c是平均的併發使用者數,n是平均每天訪問使用者數,l是一天內使用者從登入到退出的平均時間(操作平均時間),t是考察時間長度(一天內多長時間有使用者使用系統)。
吞吐量計算:當沒有遇到效能瓶頸的時候,吞吐量與虛擬使用者數之間存在一定的聯絡,可以採用以下公式計算:f=vu * r / t其中f為吞吐量,vu表示虛擬使用者個數,r表示每個虛擬使用者發出的請求數,t表示效能測試所用的時間。
qps(tps),併發訪問數、響應時間它們三者之間的大致對應關係是:
qps(tps) = 併發數/平均響應時間
注意:1. 這裡面向的物件是指整個系統。併發數是指系統滿足業務正常使用場景下的最大併發訪問數量、響應時間是系統整體對單個事務或查詢的平均響應時間。
2. 乙個系統吞吐量通常由qps(tps)、併發數兩個因素決定,每套系統這兩個值都有乙個相對極限值,在應用場景訪問壓力下,只要某一項達到系統最高值,系統的吞吐量就上不去了,如果壓力繼續增大,系統的吞吐量反而會下降,原因是系統超負荷工作,上下文切換、記憶體等等其它消耗導致系統效能下降。
參考:近期的熱文:
《oracle cloud建立19c資料庫》
《date型別的「小陷阱」》
《sql工具集-格式化結果的sql》
《聊聊資料庫正規化》
《資料庫到底能不能部署在docker容器中?》
《如何捕獲問題sql解決過度cpu消耗的問題》
《如何檢視jvm執行的堆記憶體情況》
《打造國產技術產品的必要性》
《oracle刪除欄位的方式和風險,你都了解麼?》
《登入緩慢的詭異問題》
《從70萬字sre神作提煉出的7千字精華文章》
《從資料誤刪到全量恢復的驚險記錄》
效能 如何利用vmstat分析系統效能
vmstat是乙個系統效能分析工具,具體的引數介紹可以參看各大搜尋引擎。知道引數的意義如何準確分析系統的效能問題才是王道 通過vmstat識別cpu瓶頸 r 執行佇列 展示了正在執行和等待cpu資源的任務個數。當這個值超過了cpu數目,就會出現cpu瓶頸了。當r值超過了cpu個數3倍,例如你有兩個c...
成功的Web應用系統效能測試案例
1 引言基於web伺服器的應用系統由於提供瀏覽器介面而無須安裝,大大降低了系統部署和公升級成本,得以普遍應用。目前,很多企業的核心業務系統均是web應用,但當web應用的資料量和訪問使用者量日益增加,系統不得不面臨效能和可靠性方面的挑戰。因此,無論是web應用系統的開發商或終端使用者,都要求在上線前...
應用系統效能管理的五個步驟
目前對很多行業來說,it技術正在支援著關鍵的業務應用,如製造業的 erp 系統 電信boss系統 銀行的核心業務系統 卡業務系統以及基於電子商務的業務等。關鍵業務應用對效能有較高要求,效能下降往往對業務造成巨大損失。面對這些問題,需要有一系列工具和方法,能夠對it系統的效能進行監控和管理,並對可能出...