1.1.性能的概念
性能是指事物、物品的某些特性的評價值
軟件性能測試:通過工具,找出或獲得系統(tǒng)在不同工況下的性能指標(biāo)值(RT/tps/吞吐量等)
1.1.1 用戶視角的軟件性能
從用戶角度來說唤反,軟件性能就是軟件對用戶操作的響應(yīng)時間
1.1.2 管理員視角的軟件性能
從管理員的角度看,軟件系統(tǒng)的性能的性能首先表現(xiàn)在系統(tǒng)的響應(yīng)時間上鸭津,此外彤侍,還會關(guān)心的性能問題:
(1)系統(tǒng)的資源利用率:服務(wù)器的資源使用狀況是否合理,應(yīng)用服務(wù)器和數(shù)據(jù)庫的資源使用狀況是否合理
(2)系統(tǒng)的可拓展性:系統(tǒng)是否能夠?qū)崿F(xiàn)拓展逆趋、系統(tǒng)性能可能的瓶頸在哪里盏阶,更換哪些設(shè)備能夠提高系統(tǒng)性能等
(3)系統(tǒng)容量:系統(tǒng)最多能支持多少用戶的訪問,系統(tǒng)最大的業(yè)務(wù)處理兩是多少
(4)系統(tǒng)的穩(wěn)定性:是否支持7*24小時的業(yè)務(wù)訪問
1.1.3 開發(fā)視角的軟件性能
開發(fā)人員會關(guān)心主要的用戶感受-響應(yīng)時間闻书,也會關(guān)心系統(tǒng)的拓展性等管理員關(guān)心的問題名斟,其最關(guān)注的是使性能表現(xiàn)不佳的因素和大量用戶訪問引發(fā)的軟件故障:
(1)系統(tǒng)架構(gòu):架構(gòu)設(shè)計是否合理
(2)數(shù)據(jù)庫設(shè)計:數(shù)據(jù)庫設(shè)計是否存在問題
(3)代碼:代碼是否存在性能方面的問題脑慧,是否有不合理的內(nèi)存使用方式
(4)設(shè)計與代碼:系統(tǒng)中是否存在不合理的線程同步方式,是否存在不合理的資源競爭
1.1.4 Web的前端性能
Web應(yīng)用的前端響應(yīng)時間是指瀏覽器的頁面加載時間砰盐,一般包括對HTML的解析闷袒、對頁面上圖片及CSS等文件的獲取和加載、客戶端腳本的執(zhí)行時間以及對頁面展示進(jìn)行的所花費的時間岩梳。
前端性能與并發(fā)用戶的大小并無直接的關(guān)系囊骤,通常對前端性能的關(guān)注主要在瀏覽器展現(xiàn)頁面的方式、瀏覽器各種機制的合理應(yīng)用及腳本的合理性上冀值。如何提高瀏覽器下載和執(zhí)行資源的并發(fā)性淘捡,如何讓瀏覽器盡快開始渲染頁面,如何讓瀏覽器盡可能充分利用緩存等問題是前段性能關(guān)注的主要問題
1.2 性能術(shù)語與指標(biāo)詳解
1.2.1 響應(yīng)時間
響應(yīng)時間是對請求做出響應(yīng)的所需要的時間池摧,一般劃分為呈現(xiàn)時間和服務(wù)端響應(yīng)時間焦除。呈現(xiàn)時間取決于數(shù)據(jù)在客戶端收到后呈現(xiàn)給用戶的時間,而服務(wù)端響應(yīng)時間指應(yīng)用系統(tǒng)從請求發(fā)出開始到客戶端接受到數(shù)據(jù)所消耗的時間作彤。
服務(wù)端響應(yīng)時間可被分為網(wǎng)絡(luò)傳輸時間和應(yīng)用延遲時間膘魄,應(yīng)用延遲時間包括數(shù)據(jù)庫延遲時間和應(yīng)用服務(wù)器延遲時間。
1.2.2 并發(fā)數(shù)
系統(tǒng)用戶數(shù):該系統(tǒng)的注冊用戶數(shù)竭讳〈雌希可以是活躍的,也可以是僵尸的
在線用戶數(shù):即登陸系統(tǒng)的的用戶绢慢。在線用戶不一定對系統(tǒng)產(chǎn)生壓力
并發(fā)用戶數(shù):是對服務(wù)器產(chǎn)生壓力的用戶
廣義上的并發(fā)用戶數(shù):指在同一個時間段內(nèi)訪問系統(tǒng)的用戶數(shù)量灿渴,用于從業(yè)務(wù)的角度模擬真實的用戶訪問,體現(xiàn)的是業(yè)務(wù)并發(fā)用戶數(shù)
狹義上的并發(fā)用戶數(shù):指在同時向客戶端發(fā)出請求的用戶數(shù)量胰舆,是從服務(wù)器承受的壓力出發(fā)骚露,體現(xiàn)服務(wù)端承受的最大并發(fā)訪問數(shù)
1.2.3 吞吐量
吞吐量直接體現(xiàn)服務(wù)器的性能承受能力,是指單位時間內(nèi)系統(tǒng)處理的客戶請求的數(shù)量缚窿。吞吐率是指用戶在給定的一秒內(nèi)從服務(wù)器獲得的數(shù)據(jù)量棘幸,簡而言之就是服務(wù)器返回的數(shù)據(jù)量
1.2.4 每秒通過事務(wù)數(shù)
TPS是指每秒通過事務(wù)數(shù),是直接反映系統(tǒng)性能的指標(biāo)倦零。事務(wù)表示客戶端發(fā)起請求到收到服務(wù)端最終響應(yīng)的整個過程误续,這是一個TPS。TPS 的過程包括:客戶端請求服務(wù)端扫茅、服務(wù)端內(nèi)部處理蹋嵌、服務(wù)端返回客戶端。
1.2.5 思考時間
思考時間指的是用戶進(jìn)行操作時葫隙,每個請求之間的間隔時間
1.2.6 每秒點擊數(shù)
每秒點擊數(shù)代表用戶每秒向服務(wù)器提交的HTTP請求數(shù)栽烂。點擊一次不代表是一個請求,每秒點擊數(shù)從側(cè)面可以反映客戶端的狀況
1.2.7?每秒查詢率
QPS是指每秒查詢率,是一臺服務(wù)器每秒能夠響應(yīng)的查詢次數(shù)愕鼓,是對一個特定的查詢服務(wù)器在規(guī)定時間內(nèi)所處理流量多少的衡量標(biāo)準(zhǔn)钙态。Qps 基本類似于 Tps慧起,但是不同的是菇晃,對于一個頁面的一次訪問,形成一個 Tps蚓挤;但一次頁面請求磺送,可能產(chǎn)生多次對服務(wù)器的請求,服務(wù)器對這些請求灿意,就可計入“Qps”之中估灿。
例如,訪問一個 Index 頁面會請求服務(wù)器 3 次缤剧,包括一次 html馅袁,一次 css,一次 js荒辕,那么訪問這一個頁面就會產(chǎn)生一個“T”汗销,產(chǎn)生三個“Q”。
1.2.8 資源利用率
CPU:主要是進(jìn)行判斷和處理抵窒,能反映出系統(tǒng)的繁忙程度弛针,一般分為系統(tǒng)CPU和用戶CPU,其中系統(tǒng)CPU是處理系統(tǒng)本身所占用的資源李皇,用戶CPU是處理程序鎖占用的資源削茁,對象不同
Load Average:指一段時間內(nèi)CPU正在處理和等待CPU處理的任務(wù),也就是CPU使用隊列的長度的統(tǒng)計信息掉房。
Memory:類似人腦的記憶區(qū)域茧跋,將各種信息收集起來存放。
隊列:可以理解成地鐵進(jìn)站的排隊現(xiàn)象卓囚,隊列長厌衔,說明處理能力可能達(dá)到了極限或者遇到了阻塞
IO:與磁盤的交互,重點關(guān)注交換頻率和磁盤隊列長度
網(wǎng)絡(luò):重點關(guān)注網(wǎng)絡(luò)流量捍岳,看是否存在網(wǎng)絡(luò)帶寬的瓶頸