對一個軟件作性能測試時須要關注那些性能呢?數據庫
咱們想一想在軟件設計、部署、使用、維護中一共有哪些角色的參與,而後再考慮這些角色各自關注的性能點是什麼,又該關注什麼?服務器
用戶的角度:網絡
用戶關注的是用戶操做的相應時間。session
管理員的角度:架構
一、 響應時間併發
二、 服務器資源使用狀況是否合理運維
三、 應用服務器和數據庫資源使用是否合理數據庫設計
四、 系統可否實現擴展函數
五、 系統最多支持多少用戶訪問、系統最大業務處理量是多少性能
六、 系統性能可能存在的瓶頸在哪裏
七、 更換那些設備能夠提升性能
八、 系統可否支持7×24小時的業務訪問
開發(設計)人員角度:
一、 架構設計是否合理
二、 數據庫設計是否合理
三、 代碼是否存在性能方面的問題
四、 系統中是否有不合理的內存使用方式
五、 系統中是否存在不合理的線程同步方式
六、 系統中是否存在不合理的資源競爭
一、響應時間:對請求做出響應所須要的時間
網絡傳輸時間:N1+N2+N3+N4
應用服務器處理時間:A1+A3
數據庫服務器處理時間:A2
響應時間=N1+N2+N3+N4+A1+A3+A2
二、併發用戶數的計算公式
系統用戶數:系統額定的用戶數量,如一個OA系統,可能使用該系統的用戶總數是5000個,那麼這個數量,就是系統用戶數。
同時在線用戶數:在必定的時間範圍內,最大的同時在線用戶數量。
同時在線用戶數=每秒請求數RPS(吞吐量)+併發鏈接數+平均用戶思考時間
平均併發用戶數的計算:C=nL / T
其中C是平均的併發用戶數,n是平均天天訪問用戶數(login session),L是一天內用戶從登陸到退出的平均時間(login session的平均時間),T是考察時間長度(一天內多長時間有用戶使用系統)
併發用戶數峯值計算:C^約等於C + 3*根號C
其中C^是併發用戶峯值,C是平均併發用戶數,該公式遵循泊松分佈理論。
三、吞吐量的計算公式
指單位時間內系統處理用戶的請求數
從業務角度看,吞吐量能夠用:請求數/秒、頁面數/秒、人數/天或處理業務數/小時等單位來衡量
從網絡角度看,吞吐量能夠用:字節/秒來衡量
對於交互式應用來講,吞吐量指標反映的是服務器承受的壓力,他可以說明系統的負載能力
以不一樣方式表達的吞吐量能夠說明不一樣層次的問題,例如,以字節數/秒方式能夠表示數要受網絡基礎設施、服務器架構、應用服務器制約等方面的瓶頸;已請求數/秒的方式表示主要是受應用服務器和應用代碼的制約體現出的瓶頸。
當沒有遇到性能瓶頸的時候,吞吐量與虛擬用戶數之間存在必定的聯繫,能夠採用如下公式計算:F=VU * R /
其中F爲吞吐量,VU表示虛擬用戶個數,R表示每一個虛擬用戶發出的請求數,T表示性能測試所用的時間
四、性能計數器
是描述服務器或操做系統性能的一些數據指標,如使用內存數、進程時間,在性能測試中發揮着「監控和分析」的做用,尤爲是在分析通通可擴展性、進行新能瓶頸定位時有着很是關鍵的做用。
資源利用率:指系統各類資源的使用狀況,如cpu佔用率爲68%,內存佔用率爲55%,通常使用「資源實際使用/總的資源可用量」造成資源利用率。
五、思考時間的計算公式
Think Time,從業務角度來看,這個時間指用戶進行操做時每一個請求之間的時間間隔,而在作新能測試時,爲了模擬這樣的時間間隔,引入了思考時間這個概念,來更加真實的模擬用戶的操做。
在吞吐量這個公式中F=VU * R / T說明吞吐量F是VU數量、每一個用戶發出的請求數R和時間T的函數,而其中的R又能夠用時間T和用戶思考時間TS來計算:R = T / TS
下面給出一個計算思考時間的通常步驟:
A、首先計算出系統的併發用戶數
C=nL / T F=R×C
B、統計出系統平均的吞吐量
F=VU * R / T R×C = VU * R / T
C、統計出平均每一個用戶發出的請求數量
R=u*C*T/VU
D、根據公式計算出思考時間
TS=T/R
一個系統的吞度量(承壓能力)與request對CPU的消耗、外部接口、IO等等緊密關聯。單個reqeust 對CPU消耗越高,外部系統接口、IO影響速度越慢,系統吞吐能力越低,反之越高。
系統吞吐量幾個重要參數:QPS(TPS)、併發數、響應時間
QPS(TPS):每秒鐘request/事務 數量
併發數: 系統同時處理的request/事務數
響應時間: 通常取平均響應時間
(不少人常常會把併發數和TPS理解混淆)
再次說明:
QPS:Queries Per Second意思是「每秒查詢率」,是一臺服務器每秒可以相應的查詢次數,是對一個特定的查詢服務器在規定時間內所處理流量多少的衡量標準。
TPS是TransactionsPerSecond的縮寫,也就是事務數/秒。它是軟件測試結果的測量單位。一個事務是指一個客戶機向服務器發送請求而後服務器作出反應的過程。客戶機在發送請求時開始計時,收到服務器響應後結束計時,以此來計算使用的時間和完成的事務個數,最終利用這些信息來估計得分。客戶機使用加權協函數平均方法來計算客戶機的得分,測試軟件就是利用客戶機的這些信息使用加權協函數平均方法來計算服務器端的總體TPS得分。
理解了上面三個要素的意義以後,就能推算出它們之間的關係:
QPS(TPS)= 併發數/平均響應時間 或者 併發數 = QPS*平均響應時間
咱們在作系統設計的時候就須要考慮CPU運算、IO、外部系統響應因素形成的影響以及對系統性能的初步預估。
而一般境況下,咱們面對需求,咱們評估出來的出來QPS、併發數以外,還有另一個維度:日PV。
經過觀察系統的訪問日誌發現,在用戶量很大的狀況下,各個時間週期內的同一時間段的訪問流量幾乎同樣。好比工做日的天天早上。只要能拿到日流量圖和QPS咱們就能夠推算日流量。
一般的技術方法:
1. 找出系統的最高TPS和日PV,這兩個要素有相對比較穩定的關係(除了放假、季節性因素影響以外)
2. 經過壓力測試或者經驗預估,得出最高TPS,而後跟進1的關係,計算出系統最高的日吞吐量。