性能測試的指標(biāo)可以用四個(gè)字來概括:
* 多:并發(fā)量(能夠支持最大用戶訪問量)
* 快:延時(shí)或杠、響應(yīng)時(shí)間(頁面響應(yīng)時(shí)間有多快)
* 好:穩(wěn)定性--長時(shí)間運(yùn)行(越多越快運(yùn)行的好吩谦,可持久運(yùn)行)
* 示残洹:資源使用率(資源要史拷弧)
響應(yīng)時(shí)間對請求做出響應(yīng)所需要的時(shí)間盅惜,是用戶感知軟件性能的主要指標(biāo)徐绑。響應(yīng)時(shí)間包括:
* 客戶端呈現(xiàn)時(shí)間(端到端)
* 請求/響應(yīng)數(shù)據(jù)網(wǎng)絡(luò)傳輸時(shí)間
* 應(yīng)用服務(wù)器處理時(shí)間
* 數(shù)據(jù)庫系統(tǒng)處理時(shí)間
客戶感知的響應(yīng)時(shí)間是端到端的邪驮,從發(fā)出請求到頁面呈現(xiàn)出來的時(shí)間,是以上時(shí)間的總和傲茄。通過 ping 命令可以查詢到上面幾個(gè)響應(yīng)時(shí)間毅访。響應(yīng)時(shí)間合理范圍:對于一個(gè)web系統(tǒng),普遍接收的響應(yīng)時(shí)間標(biāo)準(zhǔn)為2/5/8秒盘榨。
* 2 秒之內(nèi)響應(yīng)客戶是非常好的
* 5 秒之內(nèi)響應(yīng)客戶是可以接受的
* 8 秒是客戶能接受響應(yīng)的上限
性能拐點(diǎn)并發(fā)用戶數(shù)用戶數(shù)的概念
* 系統(tǒng)用戶數(shù):軟件系統(tǒng)注冊是用戶總數(shù)(影響磁盤空間〔初始化性能環(huán)境〕)/內(nèi)存/CPU)
* 在線用戶數(shù):同時(shí)登陸系統(tǒng)在線的用戶數(shù)量(影響內(nèi)存)
* 并發(fā)用戶數(shù):對某一操作或者功能喻粹,同時(shí)進(jìn)行訪問的用戶數(shù)量
??平均并發(fā)用戶數(shù)的計(jì)算:C=nL/T
* C:平均并發(fā)用戶數(shù)
* n:平均每天訪問用戶數(shù)(login session的平均時(shí)間)
* L:一天內(nèi)用戶從登錄到退出的平均時(shí)間(login session的平均時(shí)間)
* T:考察時(shí)間長度(一天內(nèi)多長時(shí)間有用戶使用系統(tǒng))
??并發(fā)用戶數(shù)峰值計(jì)算:C≈C+3*根號C? ? 適用場景:有數(shù)據(jù)統(tǒng)計(jì)做支撐。? 如果系統(tǒng)不熟悉草巡,并發(fā)用戶數(shù)咋算守呜?? ? 并發(fā)用戶數(shù)量的統(tǒng)計(jì)方法目前還沒有準(zhǔn)確的公式,不用系統(tǒng)會有不同的并發(fā)特點(diǎn)山憨。? ? 例如 OA 系統(tǒng)統(tǒng)計(jì)并發(fā)用戶數(shù)量的經(jīng)驗(yàn)公式為:使用系統(tǒng)用戶數(shù)量*(5%~20%)吞吐量? 如何看吞吐量查乒?
* 從性能測試角度看:指單位時(shí)間內(nèi)系統(tǒng)處理用戶的請求數(shù)
* 從業(yè)務(wù)角度看:吞吐量可以用 請求數(shù)/秒、頁面數(shù)/秒郁竟、人數(shù)/天或處理業(yè)務(wù)數(shù)/小時(shí) 等單位來衡量
* 從網(wǎng)絡(luò)角度看:吞吐量可以用 字節(jié)/秒 來衡量
* 對交互式應(yīng)用來說玛迄,吞吐量指標(biāo)反應(yīng)的是服務(wù)器承受的壓力,它能說明系統(tǒng)的負(fù)載能力
* TPS:每秒事務(wù)數(shù)
以不同方式表達(dá)的吞吐量可以說明不同層次的問題
* 以 字節(jié)數(shù)/秒 方式:表示主要受網(wǎng)絡(luò)基礎(chǔ)設(shè)施棚亩、服務(wù)器架構(gòu)蓖议、應(yīng)用服務(wù)器制約等方面的瓶頸;(硬件)
* 以 請求數(shù)/秒 方式:表示主要是受應(yīng)用服務(wù)器和應(yīng)用代碼的制約體現(xiàn)出的瓶頸讥蟆。(軟件)
? ? ??吞吐量計(jì)算:F=VU*R/T
* F:表示吞吐量
* VU:表示虛擬用戶個(gè)數(shù)
* R:表示每個(gè)虛擬用戶發(fā)出的請求數(shù)
* T:表示虛擬測試所用的時(shí)間
當(dāng)沒有遇到性能瓶頸的時(shí)候勒虾,吞吐量與虛擬用戶數(shù)之間存在一定的聯(lián)系實(shí)例:采用 100 個(gè)并發(fā),每個(gè) VU 間隔 1 秒發(fā)出一個(gè)請求攻询,計(jì)算吞吐量吞吐量:F = 100 * 1 / 1 = 100? 吞吐量出現(xiàn)性能瓶頸的可能原因有哪些从撼?
* 硬件原因:
* 增加服務(wù)器
* CPU/磁盤內(nèi)存是否滿了
* 網(wǎng)絡(luò)原因
* 網(wǎng)絡(luò)擁塞丟包(增加帶寬)
分析下圖吞吐量達(dá)到瓶頸的原因是什么?用戶數(shù)達(dá)到 300 時(shí),吞吐量出現(xiàn)拐點(diǎn)低零,之后的曲線趨于水平婆翔,幾乎無增長,這可能是網(wǎng)絡(luò)擁塞丟包所致掏婶,需要增加帶寬啃奴,因?yàn)槿绻怯布?CPU 或 磁盤內(nèi)存空間 不足的話,拐點(diǎn)后面的曲線不會這么平雄妥,會有波動系統(tǒng)性能計(jì)數(shù)器描述服務(wù)器或操作系統(tǒng)性能的一些數(shù)據(jù)指標(biāo)最蕾。比如:CPU、內(nèi)存老厌、磁盤等資源使用率等瘟则。思考時(shí)間Think Time:從業(yè)務(wù)角度來看,這個(gè)時(shí)間指用戶進(jìn)行操作時(shí)每個(gè)請求之間的時(shí)間間隔枝秤。目的是在做性能測試時(shí)醋拧,為了模擬這樣的時(shí)間間隔,引入了思考時(shí)間這個(gè)概念來更加真實(shí)的模擬用戶的操作淀弹。因?yàn)橛脩舨僮鞯臅r(shí)候都有一個(gè)等待時(shí)間丹壕,所以做自動化需要加一個(gè)思考時(shí)間。CPU薇溃,時(shí)間片初始化環(huán)境:warm up 熱機(jī)菌赖,磁盤進(jìn)入內(nèi)存的過程,讓內(nèi)存接近真實(shí)環(huán)境沐序。