吞吐量(Throughput)、QPS、并發(fā)數(shù)、響應(yīng)時間(RT)對系統(tǒng)性能的影響

2021-02-12    分類: 網(wǎng)站建設(shè)

首先對吞吐量(Throughput)、QPS、并發(fā)數(shù)、響應(yīng)時間(RT)幾個概念一直比較模糊,也不知道哪些指標可以較好的衡量系統(tǒng)的性能。今天特意查了些資料做一些記錄:首先看一些概念(來自百度百科)

1. 響應(yīng)時間(RT)

響應(yīng)時間是指系統(tǒng)對請求作出響應(yīng)的時間。直觀上看,這個指標與人對軟件性能的主觀感受是非常一致的,因為它完整地記錄了整個計算機系統(tǒng)處理請求的時間。由于一個系統(tǒng)通常會提供許多功能,而不同功能的處理邏輯也千差萬別,因而不同功能的響應(yīng)時間也不盡相同,甚至同一功能在不同輸入數(shù)據(jù)的情況下響應(yīng)時間也不相同。所以,在討論一個系統(tǒng)的響應(yīng)時間時,人們通常是指該系統(tǒng)所有功能的平均時間或者所有功能的大響應(yīng)時間。當(dāng)然,往往也需要對每個或每組功能討論其平均響應(yīng)時間和大響應(yīng)時間。

對于單機的沒有并發(fā)操作的應(yīng)用系統(tǒng)而言,人們普遍認為響應(yīng)時間是一個合理且準確的性能指標。需要指出的是,響應(yīng)時間的絕對值并不能直接反映軟件的性能的高低,軟件性能的高低實際上取決于用戶對該響應(yīng)時間的接受程度。對于一個游戲軟件來說,響應(yīng)時間小于100毫秒應(yīng)該是不錯的,響應(yīng)時間在1秒左右可能屬于勉強可以接受,如果響應(yīng)時間達到3秒就完全難以接受了。而對于編譯系統(tǒng)來說,完整編譯一個較大規(guī)模軟件的源代碼可能需要幾十分鐘甚至更長時間,但這些響應(yīng)時間對于用戶來說都是可以接受的。

2. 吞吐量(Throughput)

吞吐量是指系統(tǒng)在單位時間內(nèi)處理請求的數(shù)量。對于無并發(fā)的應(yīng)用系統(tǒng)而言,吞吐量與響應(yīng)時間成嚴格的反比關(guān)系,實際上此時吞吐量就是響應(yīng)時間的倒數(shù)。前面已經(jīng)說過,對于單用戶的系統(tǒng),響應(yīng)時間(或者系統(tǒng)響應(yīng)時間和應(yīng)用延遲時間)可以很好地度量系統(tǒng)的性能,但對于并發(fā)系統(tǒng),通常需要用吞吐量作為性能指標。

對于一個多用戶的系統(tǒng),如果只有一個用戶使用時系統(tǒng)的平均響應(yīng)時間是t,當(dāng)有你n個用戶使用時,每個用戶看到的響應(yīng)時間通常并不是n×t,而往往比n×t小很多(當(dāng)然,在某些特殊情況下也可能比n×t大,甚至大很多)。這是因為處理每個請求需要用到很多資源,由于每個請求的處理過程中有許多不走難以并發(fā)執(zhí)行,這導(dǎo)致在具體的一個時間點,所占資源往往并不多。也就是說在處理單個請求時,在每個時間點都可能有許多資源被閑置,當(dāng)處理多個請求時,如果資源配置合理,每個用戶看到的平均響應(yīng)時間并不隨用戶數(shù)的增加而線性增加。實際上,不同系統(tǒng)的平均響應(yīng)時間隨用戶數(shù)增加而增長的速度也不大相同,這也是采用吞吐量來度量并發(fā)系統(tǒng)的性能的主要原因。一般而言,吞吐量是一個比較通用的指標,兩個具有不同用戶數(shù)和用戶使用模式的系統(tǒng),如果其大吞吐量基本一致,則可以判斷兩個系統(tǒng)的處理能力基本一致。

3. 并發(fā)用戶數(shù)

并發(fā)用戶數(shù)是指系統(tǒng)可以同時承載的正常使用系統(tǒng)功能的用戶的數(shù)量。與吞吐量相比,并發(fā)用戶數(shù)是一個更直觀但也更籠統(tǒng)的性能指標。實際上,并發(fā)用戶數(shù)是一個非常不準確的指標,因為用戶不同的使用模式會導(dǎo)致不同用戶在單位時間發(fā)出不同數(shù)量的請求。一網(wǎng)站系統(tǒng)為例,假設(shè)用戶只有注冊后才能使用,但注冊用戶并不是每時每刻都在使用該網(wǎng)站,因此具體一個時刻只有部分注冊用戶同時在線,在線用戶就在瀏覽網(wǎng)站時會花很多時間閱讀網(wǎng)站上的信息,因而具體一個時刻只有部分在線用戶同時向系統(tǒng)發(fā)出請求。這樣,對于網(wǎng)站系統(tǒng)我們會有三個關(guān)于用戶數(shù)的統(tǒng)計數(shù)字:注冊用戶數(shù)、在線用戶數(shù)和同時發(fā)請求用戶數(shù)。由于注冊用戶可能長時間不登陸網(wǎng)站,使用注冊用戶數(shù)作為性能指標會造成很大的誤差。而在線用戶數(shù)和同事發(fā)請求用戶數(shù)都可以作為性能指標。相比而言,以在線用戶作為性能指標更直觀些,而以同時發(fā)請求用戶數(shù)作為性能指標更準確些。

4. QPS每秒查詢率(Query Per Second)

每秒查詢率QPS是對一個特定的查詢服務(wù)器在規(guī)定時間內(nèi)所處理流量多少的衡量標準,在因特網(wǎng)上,作為域名系統(tǒng)服務(wù)器的機器的性能經(jīng)常用每秒查詢率來衡量。對應(yīng)fetches/sec,即每秒的響應(yīng)請求數(shù),也即是大吞吐能力。

從以上概念來看吞吐量和響應(yīng)時間是衡量系統(tǒng)性能的重要指標,QPS雖然和吞吐量的計量單位不同,但應(yīng)該是成正比的,任何一個指標都可以含量服務(wù)器的并行處理能力。當(dāng)然Throughput更關(guān)心數(shù)據(jù)量,QPS更關(guān)心處理筆數(shù)。

QPS提升帶來什么?QPS提升說明單臺服務(wù)器處理能力提升,如果QPS提升1倍,服務(wù)器資源減少1半,或者說服務(wù)器不變可以支撐2倍的請求量。

如何提升QPS?

1)減少CPU的使用時間(哪些代碼會消耗CPU:循環(huán)、字符串拼接\查找\替換、編碼\解碼、序列化\反序列化、壓縮)

2)增加CPU的數(shù)量

3)減少同步鎖

(如果CPU不能被壓到85%以上,并且此時的QPS已經(jīng)達到了峰值,則說明另有瓶頸,接下去關(guān)注內(nèi)存)

RT提升帶來什么?

響應(yīng)速度提升說明單詞請求的處理速度提升,用戶感覺任務(wù)處理速度更快,系統(tǒng)反應(yīng)速度更快。當(dāng)然在處理能力不變的情況下,RT的提升必然會提升QPS。

如何提升RT?

1)減少I/O的響應(yīng)時間

2)減少I/O的調(diào)用次數(shù)

3)減少CPU使用時間(當(dāng)然在I/O占大頭的應(yīng)用里,這方面優(yōu)化效果肯定不明顯)

網(wǎng)頁名稱:吞吐量(Throughput)、QPS、并發(fā)數(shù)、響應(yīng)時間(RT)對系統(tǒng)性能的影響
網(wǎng)站地址:http://muchs.cn/news/100564.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT微信公眾號、網(wǎng)站設(shè)計服務(wù)器托管、建站公司營銷型網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化