學(xué)習(xí)完整課程請(qǐng)移步 互聯(lián)網(wǎng) Java 全棧工程師
響應(yīng)時(shí)間(Response time)
響應(yīng)時(shí)間就是用戶感受軟件系統(tǒng)為其服務(wù)所耗費(fèi)的時(shí)間,對(duì)于網(wǎng)站系統(tǒng)來說侣姆,響應(yīng)時(shí)間就是從點(diǎn)擊了一個(gè)頁面計(jì)時(shí)開始罪针,到這個(gè)頁面完全在瀏覽器里展現(xiàn)計(jì)時(shí)結(jié)束的這一段時(shí)間間隔组民,看起來很簡(jiǎn)單,但其實(shí)在這段響應(yīng)時(shí)間內(nèi)捉兴,軟件系統(tǒng)在幕后經(jīng)過了一系列的處理工作,貫穿了整個(gè)系統(tǒng)節(jié)點(diǎn)录语。根據(jù)“管轄區(qū)域”不同倍啥,響應(yīng)時(shí)間可以細(xì)分為:
- 服務(wù)器端響應(yīng)時(shí)間,這個(gè)時(shí)間指的是服務(wù)器完成交易請(qǐng)求執(zhí)行的時(shí)間澎埠,不包括客戶端到服務(wù)器端的反應(yīng)(請(qǐng)求和耗費(fèi)在網(wǎng)絡(luò)上的通信時(shí)間)虽缕,這個(gè)服務(wù)器端響應(yīng)時(shí)間可以度量服務(wù)器的處理能力。
- 網(wǎng)絡(luò)響應(yīng)時(shí)間蒲稳,這是網(wǎng)絡(luò)硬件傳輸交易請(qǐng)求和交易結(jié)果所耗費(fèi)的時(shí)間氮趋。
- 客戶端響應(yīng)時(shí)間伍派,這是客戶端在構(gòu)建請(qǐng)求和展現(xiàn)交易結(jié)果時(shí)所耗費(fèi)的時(shí)間,對(duì)于普通的瘦客戶端 Web 應(yīng)用來說剩胁,這個(gè)時(shí)間很短诉植,通常可以忽略不計(jì)昵观;但是對(duì)于胖客戶端 Web 應(yīng)用來說晾腔,比如 Java applet、AJAX啊犬,由于客戶端內(nèi)嵌了大量的邏輯處理建车,耗費(fèi)的時(shí)間有可能很長(zhǎng),從而成為系統(tǒng)的瓶頸椒惨,這是要注意的一個(gè)地方缤至。
那么客戶感受的響應(yīng)時(shí)間其實(shí)是等于 客戶端響應(yīng)時(shí)間
+ 服務(wù)器端響應(yīng)時(shí)間
+ 網(wǎng)絡(luò)響應(yīng)時(shí)間
。細(xì)分的目的是為了方便定位性能瓶頸出現(xiàn)在哪個(gè)節(jié)點(diǎn)上康谆。
吞吐量(Throughput)
吞吐量是我們常見的一個(gè)軟件性能指標(biāo)领斥,對(duì)于軟件系統(tǒng)來說,“吞”進(jìn)去的是請(qǐng)求沃暗,“吐”出來的是結(jié)果月洛,而吞吐量反映的就是軟件系統(tǒng)的“飯量”,也就是系統(tǒng)的處理能力孽锥,具體說來嚼黔,就是指軟件系統(tǒng)在每單位時(shí)間內(nèi)能處理多少個(gè)事務(wù)/請(qǐng)求/單位數(shù)據(jù)等。但它的定義比較靈活惜辑,在不同的場(chǎng)景下有不同的詮釋唬涧,比如數(shù)據(jù)庫的吞吐量指的是單位時(shí)間內(nèi),不同 SQL 語句的執(zhí)行數(shù)量盛撑;而網(wǎng)絡(luò)的吞吐量指的是單位時(shí)間內(nèi)在網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)流量碎节。吞吐量的大小由負(fù)載(如用戶的數(shù)量)或行為方式來決定。舉個(gè)例子抵卫,下載文件比瀏覽網(wǎng)頁需要更高的網(wǎng)絡(luò)吞吐量狮荔。
資源使用率(Resource utilization)
常見的資源有:CPU占用率、內(nèi)存使用率介粘、磁盤I/O殖氏、網(wǎng)絡(luò)I/O。
點(diǎn)擊數(shù)(Hits per second)
點(diǎn)擊數(shù)是衡量 Web Server 處理能力的一個(gè)很有用的指標(biāo)姻采。需要明確的是:點(diǎn)擊數(shù)不是我們通常理解的用戶鼠標(biāo)點(diǎn)擊次數(shù)雅采,而是按照客戶端向 Web Server 發(fā)起了多少次 http 請(qǐng)求計(jì)算的,一次鼠標(biāo)可能觸發(fā)多個(gè) http 請(qǐng)求,這需要結(jié)合具體的 Web 系統(tǒng)實(shí)現(xiàn)來計(jì)算总滩。
并發(fā)用戶數(shù)(Concurrent users)
并發(fā)用戶數(shù)用來度量服務(wù)器并發(fā)容量和同步協(xié)調(diào)能力纲堵。在客戶端指一批用戶同時(shí)執(zhí)行一個(gè)操作。并發(fā)數(shù)反映了軟件系統(tǒng)的并發(fā)處理能力闰渔,和吞吐量不同的是席函,它大多是占用套接字、句柄等操作系統(tǒng)資源冈涧。
另外茂附,度量軟件系統(tǒng)的性能指標(biāo)還有系統(tǒng)恢復(fù)時(shí)間等,其實(shí)凡是用戶有關(guān)資源和時(shí)間的要求都可以被視作性能指標(biāo)督弓,都可以作為軟件系統(tǒng)的度量营曼,而性能測(cè)試就是為了驗(yàn)證這些性能指標(biāo)是否被滿足。