一、概念:
1蜡塌、響應時間(RT)
響應時間是指系統(tǒng)對請求作出響應的時間碉纳。直觀上看,這個指標與人對軟件性能的主觀感受是非常一致的馏艾,因為它完整地記錄了整個計算機系統(tǒng)處理請求的時間劳曹。由于一個系統(tǒng)通常會提供許多功能,而不同功能的處理邏輯也千差萬別琅摩,因而不同功能的響應時間也不盡相同铁孵,甚至同一功能在不同輸入數(shù)據(jù)的情況下響應時間也不相同。所以房资,在討論一個系統(tǒng)的響應時間時蜕劝,人們通常是指該系統(tǒng)所有功能的平均時間或者所有功能的最大響應時間。當然轰异,往往也需要對每個或每組功能討論其平均響應時間和最大響應時間岖沛。
對于單機的沒有并發(fā)操作的應用系統(tǒng)而言,人們普遍認為響應時間是一個合理且準確的性能指標搭独。需要指出的是婴削,響應時間的絕對值并不能直接反映軟件的性能的高低,軟件性能的高低實際上取決于用戶對該響應時間的接受程度牙肝。對于一個游戲軟件來說唉俗,響應時間小于100毫秒應該是不錯的嗤朴,響應時間在1秒左右可能屬于勉強可以接受,如果響應時間達到3秒就完全難以接受了互躬。而對于編譯系統(tǒng)來說播赁,完整編譯一個較大規(guī)模軟件的源代碼可能需要幾十分鐘甚至更長時間,但這些響應時間對于用戶來說都是可以接受的吼渡。
2容为、吞吐量(Throughput)
吞吐量是指系統(tǒng)在單位時間內(nèi)處理請求的數(shù)量。對于無并發(fā)的應用系統(tǒng)而言寺酪,吞吐量與響應時間成嚴格的反比關系坎背,實際上此時吞吐量就是響應時間的倒數(shù)。前面已經(jīng)說過寄雀,對于單用戶的系統(tǒng)得滤,響應時間(或者系統(tǒng)響應時間和應用延遲時間)可以很好地度量系統(tǒng)的性能,但對于并發(fā)系統(tǒng)盒犹,通常需要用吞吐量作為性能指標懂更。
對于一個多用戶的系統(tǒng),如果只有一個用戶使用時系統(tǒng)的平均響應時間是t急膀,當有你n個用戶使用時沮协,每個用戶看到的響應時間通常并不是n×t,而往往比n×t小很多(當然卓嫂,在某些特殊情況下也可能比n×t大慷暂,甚至大很多)。這是因為處理每個請求需要用到很多資源晨雳,由于每個請求的處理過程中有許多不走難以并發(fā)執(zhí)行行瑞,這導致在具體的一個時間點,所占資源往往并不多餐禁。也就是說在處理單個請求時血久,在每個時間點都可能有許多資源被閑置,當處理多個請求時帮非,如果資源配置合理洋魂,每個用戶看到的平均響應時間并不隨用戶數(shù)的增加而線性增加。實際上喜鼓,不同系統(tǒ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ù)是一個非常不準確的指標畦娄,因為用戶不同的使用模式會導致不同用戶在單位時間發(fā)出不同數(shù)量的請求。一網(wǎng)站系統(tǒng)為例弊仪,假設用戶只有注冊后才能使用熙卡,但注冊用戶并不是每時每刻都在使用該網(wǎng)站,因此具體一個時刻只有部分注冊用戶同時在線励饵,在線用戶就在瀏覽網(wǎng)站時會花很多時間閱讀網(wǎng)站上的信息驳癌,因而具體一個時刻只有部分在線用戶同時向系統(tǒng)發(fā)出請求。這樣役听,對于網(wǎng)站系統(tǒng)我們會有三個關于用戶數(shù)的統(tǒng)計數(shù)字:注冊用戶數(shù)颓鲜、在線用戶數(shù)和同時發(fā)請求用戶數(shù)。由于注冊用戶可能長時間不登陸網(wǎng)站典予,使用注冊用戶數(shù)作為性能指標會造成很大的誤差甜滨。而在線用戶數(shù)和同事發(fā)請求用戶數(shù)都可以作為性能指標。相比而言熙参,以在線用戶作為性能指標更直觀些艳吠,而以同時發(fā)請求用戶數(shù)作為性能指標更準確些。
4孽椰、QPS 每秒查詢率(Query Per Second)
每秒查詢率QPS是對一個特定的查詢服務器在規(guī)定時間內(nèi)所處理流量多少的衡量標準昭娩,在因特網(wǎng)上,作為域名系統(tǒng)服務器的機器的性能經(jīng)常用每秒查詢率來衡量黍匾。對應fetches/sec栏渺,即每秒的響應請求數(shù),也即是最大吞吐能力锐涯。 (看來是類似于TPS磕诊,只是應用于特定場景的吞吐量)
5、TPS 每秒傳輸?shù)氖挛锾幚韨€數(shù)(Transactions Per Second)
每秒傳輸?shù)氖挛锾幚韨€數(shù)纹腌,即服務器每秒處理的事務數(shù)霎终。TPS包括一條消息入和一條消息出,加上一次用戶數(shù)據(jù)庫訪問升薯。(業(yè)務TPS = CAPS × 每個呼叫平均TPS)
TPS是軟件測試結果的測量單位莱褒。一個事務是指一個客戶機向服務器發(fā)送請求然后服務器做出反應的過程∠雅客戶機在發(fā)送請求時開始計時广凸,收到服務器響應后結束計時阅茶,以此來計算使用的時間和完成的事務個數(shù)。
一般的谅海,評價系統(tǒng)性能均以每秒鐘完成的技術交易的數(shù)量來衡量脸哀。系統(tǒng)整體處理能力取決于處理能力最低模塊的TPS值。
二扭吁、計算公式:
網(wǎng)上流傳比較廣的計算公式撞蜂,可以參考一下。
QPS:
每秒查詢率(Query Per Second) ,每秒的響應請求數(shù)智末,也即是最大吞吐能力谅摄。
QPS = req/sec = 請求數(shù)/秒
QPS統(tǒng)計方式 [一般使用 http_load 進行統(tǒng)計]
QPS = 總請求數(shù) / ( 進程總數(shù) * 請求時間 )
QPS: 單個進程每秒請求服務器的成功次數(shù)
峰值QPS:
原理:每天80%的訪問集中在20%的時間里,這20%時間叫做峰值時間
公式:( 總PV數(shù) * 80% ) / ( 每天秒數(shù) * 20% ) = 峰值時間每秒請求數(shù)(QPS)
PV:
訪問量即Page View, 即頁面瀏覽量或點擊量系馆,用戶每次刷新即被計算一次
單臺服務器每天PV計算
公式1:每天總PV = QPS * 3600 * 6
公式2:每天總PV = QPS * 3600 * 8
UV:
獨立訪客即Unique Visitor,訪問您網(wǎng)站的一臺電腦客戶端為一個訪客送漠。00:00-24:00內(nèi)相同的客戶端只被計算一次
服務器數(shù)量:
機器:峰值時間每秒QPS / 單臺機器的QPS = 需要的機器
機器:ceil( 每天總PV / 單臺服務器每天總PV )
并發(fā)數(shù):
并發(fā)用戶數(shù)是指系統(tǒng)可以同時承載的正常使用系統(tǒng)功能的用戶的數(shù)量
吐吞量:
吞吐量是指系統(tǒng)在單位時間內(nèi)處理請求的數(shù)量
響應時間(RT):
響應時間是指系統(tǒng)對請求作出響應的時間
例子:
每天300w PV 的在單臺機器上,這臺機器需要多少Q(mào)PS由蘑?
答:( 3000000 * 0.8 ) / (86400 * 0.2 ) = 139 (QPS)
如果一臺機器的QPS是58闽寡,需要幾臺機器來支持?
答:139 / 58 = 3