自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

探討性能測(cè)試的負(fù)載目標(biāo)

開發(fā) 測(cè)試
本文介紹的是性能測(cè)試的負(fù)載目標(biāo),希望對(duì)你有幫助,一起來(lái)看。

性能測(cè)試主要評(píng)價(jià)系統(tǒng)或組件的性能是否和具體的性能需求一致,例如:對(duì)訪問速度的性能需求或?qū)?nèi)存使用情況的需求。特定性能測(cè)試的關(guān)注點(diǎn)在于組件或系統(tǒng)在規(guī)定的時(shí)間內(nèi)和特定的條件下響應(yīng)用戶或系統(tǒng)輸入的能力。

一、前提

近期我跟蹤了2個(gè)外協(xié)人員參與的性能測(cè)試項(xiàng)目,溝通中發(fā)現(xiàn)大家在制定測(cè)試策略時(shí)對(duì)如何確定負(fù)載目標(biāo)、計(jì)算并發(fā)用戶數(shù)量等方面有很多不同方法,本文希望能對(duì)各種方法進(jìn)行探討,并根據(jù)已有經(jīng)驗(yàn)對(duì)策略制定方面給出一些自己的建議。本文被測(cè)應(yīng)用以銀行系統(tǒng)為主,壓力發(fā)起工具以LoadRunner為例。

二、術(shù)語(yǔ)

單位時(shí)間:本文中以1秒為單位時(shí)間。

在線用戶數(shù)量:訪問被測(cè)應(yīng)用的用戶數(shù)量,但單位時(shí)間內(nèi)用戶不會(huì)同時(shí)對(duì)被測(cè)服務(wù)器發(fā)送請(qǐng)求,產(chǎn)生壓力。

并發(fā)用戶數(shù)量:部分書中分狹義和廣義兩種,狹義指單位時(shí)間內(nèi)同時(shí)執(zhí)行一種操作的用戶數(shù)量,廣義指單位時(shí)間內(nèi)同時(shí)執(zhí)行多種不同操作的用戶數(shù)量,廣義的并發(fā)用戶操作更接近實(shí)際業(yè)務(wù)環(huán)境。但本文中的并發(fā)用戶數(shù)量?jī)H指狹義而言,因?yàn)閺V義是多種狹義的組合。

TPS:Transaction per Second,每秒事務(wù)數(shù)量,單位是事務(wù)/秒。

TRT:Transaction Response Time,事務(wù)響應(yīng)時(shí)間,指TPS穩(wěn)定時(shí)的平均事務(wù)響應(yīng)時(shí)間,單位是秒。

三、負(fù)載目標(biāo)

1. 負(fù)載視角

制定測(cè)試策略是性能測(cè)試的重點(diǎn),包括測(cè)試范圍、場(chǎng)景提取、負(fù)載目標(biāo)、發(fā)起方式、通過標(biāo)準(zhǔn)等。而負(fù)載目標(biāo)關(guān)系整個(gè)測(cè)試的場(chǎng)景設(shè)計(jì)、并發(fā)配比、結(jié)果評(píng)判,因此確定負(fù)載目標(biāo)也決定了測(cè)試的總體方向。通過了解業(yè)務(wù)需求,負(fù)載目標(biāo)都會(huì)轉(zhuǎn)化為一系列具體的數(shù)值,一般可從兩方面來(lái)劃分:

前端:業(yè)務(wù)人員更關(guān)注前端并發(fā)用戶數(shù)量或在線用戶數(shù)量,以人數(shù)衡量;

后端:技術(shù)人員更關(guān)注后端應(yīng)用服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器的負(fù)載能力,以TPS衡量;

前端并發(fā)用戶數(shù)量的計(jì)算在業(yè)界中有很多公式和原則,如2/8原則、10%在線用戶數(shù)量估算、(在線用戶數(shù)量*session時(shí)間)/監(jiān)控時(shí)間等,但各公式和原則計(jì)算出的并發(fā)用戶數(shù)量并不精確,如有10萬(wàn)在線用戶的系統(tǒng)不能說(shuō)僅測(cè)試10萬(wàn)*10%=1萬(wàn)并發(fā)用戶即可。

后端TPS反應(yīng)被測(cè)應(yīng)用的實(shí)際負(fù)載能力,對(duì)已有具體業(yè)務(wù)量的應(yīng)用可以計(jì)算精確,如銀行系統(tǒng)中某省行對(duì)公交易量日均10萬(wàn)筆,則可精確計(jì)算出TPS均值=10萬(wàn)/(6*3600)=4.63筆/秒(對(duì)公業(yè)務(wù)按6小時(shí)計(jì)算),若被測(cè)應(yīng)用達(dá)不到TPS要求則完成不了當(dāng)日業(yè)務(wù)。

同一個(gè)被測(cè)應(yīng)用以不同視角估算負(fù)載目標(biāo),得到的數(shù)值可能會(huì)有很大差異,因此如何正確選擇負(fù)載目標(biāo),將會(huì)直接影響之后的測(cè)試方法和場(chǎng)景設(shè)計(jì)。

2. 負(fù)載指標(biāo)

拋開視角的選擇,單從最終測(cè)試指標(biāo)來(lái)說(shuō),對(duì)于一個(gè)軟硬件環(huán)境固定的應(yīng)用程序,只有一個(gè)負(fù)載指標(biāo)是固定的,那就是***事務(wù)處理能力 – 通常以TPS衡量。隨著負(fù)載的增加,被測(cè)應(yīng)用將會(huì)逐漸達(dá)到***事務(wù)處理能力,若應(yīng)用足夠健壯,則負(fù)載繼續(xù)增加,應(yīng)用的事務(wù)處理能力也不會(huì)驟然下降。因此性能測(cè)試的目標(biāo)就是確定被測(cè)應(yīng)用的***事務(wù)處理能力。以事務(wù)處理能力反推,將逐漸捋清TPS、TRT、并發(fā)用戶數(shù)量、在線用戶數(shù)量等負(fù)載目標(biāo)的關(guān)系和估算。

1)TPS

Transaction的粒度會(huì)直接影響TPS的計(jì)算,因此Transaction定義時(shí)要保證粒度適當(dāng):

C/S架構(gòu)聯(lián)機(jī)類應(yīng)用中一筆交易往往會(huì)流經(jīng)多層前置應(yīng)用,需要確定壓力發(fā)起工具所在位置,建議跨過前端直壓被測(cè)應(yīng)用,此時(shí)一個(gè)Transaction代表一支后臺(tái)交易。

B/S架構(gòu)經(jīng)管類應(yīng)用中一個(gè)頁(yè)面操作可能會(huì)和后臺(tái)有多次交互,建議以頁(yè)面上的操作為Transaction劃分基準(zhǔn),但要保證Transaction內(nèi)的交互操作在前端是不可再拆分的。

LoadRunner發(fā)起壓力時(shí)Action內(nèi)的語(yǔ)句是反復(fù)迭代的,而LR計(jì)算TPS僅看1秒內(nèi)執(zhí)行了幾次Transaction,如果Action內(nèi)有多個(gè)Transaction則各事務(wù)的TPS都一樣,反應(yīng)不出各事務(wù)的真實(shí)處理能力,因此建議Action內(nèi)只定義一個(gè)或盡量精簡(jiǎn)的Transaction。

由此TPS才可以準(zhǔn)確表示被測(cè)應(yīng)用的事務(wù)處理能力。

通過獲取生產(chǎn)日志、參考相似系統(tǒng)等方式能夠得到具體交易(事務(wù))數(shù)量的被測(cè)應(yīng)用程序,以TPS為負(fù)載目標(biāo)是直接也最準(zhǔn)確的。但要注意,若以TPS為目標(biāo),則前端配置的并發(fā)數(shù)量就不再代表并發(fā)人數(shù),而是并發(fā)提交事務(wù)的數(shù)量。TPS和TRT的計(jì)算關(guān)系將在下面詳述。

2)TRT

TRT指TPS穩(wěn)定時(shí)(不一定是***時(shí))的平均事務(wù)響應(yīng)時(shí)間,不關(guān)注個(gè)別事務(wù),它和TPS關(guān)系緊密,隨TPS的變化而變化。當(dāng)負(fù)載增加時(shí)TRT會(huì)逐漸增大,直至事務(wù)阻塞,交易超時(shí)。

TPS × TRT = 并發(fā)提交事務(wù)的數(shù)量。如果以TPS=20為目標(biāo),且此時(shí)TRT=2秒,則并發(fā)提交事務(wù)的數(shù)量=20×2=40筆。如果1個(gè)用戶單位時(shí)間內(nèi)提交1筆事務(wù),則可等于有40個(gè)并發(fā)用戶數(shù)量。

設(shè)定好目標(biāo)TPS后要同時(shí)兼顧TRT的表現(xiàn),若TRT明顯超出業(yè)務(wù)要求,即使達(dá)到負(fù)載目標(biāo)也是無(wú)效的。TRT無(wú)固定的好壞標(biāo)準(zhǔn),一般來(lái)說(shuō)對(duì)OLTP的聯(lián)機(jī)應(yīng)用,從前端提交到返回不應(yīng)高于3秒,后臺(tái)應(yīng)用程序和數(shù)據(jù)庫(kù)的處理應(yīng)在1秒左右。對(duì)OLAP的在線分析系統(tǒng)或一般網(wǎng)站可遵循3/5/8原則,或更長(zhǎng)。

3)并發(fā)用戶數(shù)量

通常理解并發(fā)用戶數(shù)量就是LoadRunner里設(shè)置的VUser數(shù)量,通過梯度增加VUser,對(duì)比TPS變化即可找到被測(cè)應(yīng)用的***并發(fā)用戶。但我卻認(rèn)為并發(fā)用戶數(shù)量不等于LoadRunner中設(shè)置的VUser數(shù)量。受交易響應(yīng)時(shí)間、thinktime、pacing和集合點(diǎn)等因素影響,VUser數(shù)量不能直接體現(xiàn)被測(cè)應(yīng)用負(fù)載能力。假設(shè)同樣10個(gè)VUser并發(fā)一次,如果A程序的響應(yīng)時(shí)間是1秒,則A程序的TPS=10/1=10。而B程序的響應(yīng)時(shí)間是5秒,則B程序的TPS=10/5=2。同樣在混合場(chǎng)景中用VUser比例體現(xiàn)不同應(yīng)用的負(fù)載比例也是錯(cuò)誤的,混合場(chǎng)景下由于各交易相互影響,單交易負(fù)載時(shí)響應(yīng)快的很可能現(xiàn)在出現(xiàn)阻塞,前端VUser的比例根本無(wú)法準(zhǔn)確控制后端應(yīng)用的壓力。

因此我更愿意將“并發(fā)用戶數(shù)量”和“并發(fā)提交事務(wù)數(shù)量”掛鉤,體現(xiàn)被測(cè)應(yīng)用實(shí)際負(fù)載:?jiǎn)挝粫r(shí)間內(nèi)n個(gè)用戶并發(fā)向被測(cè)應(yīng)用提交n個(gè)事務(wù)請(qǐng)求(n是相同的)。VUser的數(shù)量和發(fā)起設(shè)置只是實(shí)現(xiàn)并發(fā)用戶數(shù)量的一種手段。

4)在線用戶數(shù)量

在線用戶數(shù)量與并發(fā)用戶數(shù)量、TPS、TRT間沒有固定的換算公式,我不提倡10%這樣的粗糙比例,對(duì)聯(lián)機(jī)類應(yīng)用在線用戶就是每天簽到的柜員數(shù)量,對(duì)經(jīng)管類應(yīng)用就是月末、季末時(shí)所有登錄系統(tǒng)的用戶數(shù)量。在線用戶數(shù)量可以從需求人員或生產(chǎn)管理員處獲得大概數(shù)值,但不能通過性能測(cè)試倒推出在線數(shù)量。

四、負(fù)載目標(biāo)選擇

1. 有明確交易量的應(yīng)用

通過上面對(duì)各種典型負(fù)載指標(biāo)的分析可以看出,以TPS衡量的事務(wù)處理能力是最準(zhǔn)確的負(fù)載目標(biāo)。通過生產(chǎn)日志或相似系統(tǒng)的交易量可以算出TPS均值、峰值。根據(jù)2/8原則和業(yè)務(wù)擴(kuò)展可估算更高的峰值。銀行的聯(lián)機(jī)類應(yīng)用屬于典型的有明確交易量的應(yīng)用系統(tǒng)。

LoadRunner中可以通過設(shè)置Run-Time Settings的Pacing為At fixed intervals, every 1 sec,來(lái)控制每次迭代執(zhí)行時(shí)間為1秒。如果迭代腳本里只定義一個(gè)Transaction,且TRT小于1秒,則VUser數(shù)量=并發(fā)用戶數(shù)量=TPS,可以通過調(diào)節(jié)VUser數(shù)量方便控制負(fù)載目標(biāo)。注意,如果迭代中包含多個(gè)Transaction,或TRT隨著TPS目標(biāo)的增加而變大,則需以TPS目標(biāo)為基礎(chǔ),實(shí)時(shí)調(diào)整VUser數(shù)量和這里every N sec里的間隔時(shí)間。

2. 無(wú)明確交易量的應(yīng)用

無(wú)明確交易量的被測(cè)應(yīng)用建議以確定***事務(wù)處理能力為目標(biāo)。設(shè)置Pacing為As soon as the previous iteration ends,刪除thinktime,部署發(fā)壓工具和被測(cè)應(yīng)用在同一網(wǎng)段,無(wú)網(wǎng)絡(luò)瓶頸,讓VUser能對(duì)被測(cè)應(yīng)用產(chǎn)生***負(fù)載。弱化VUser數(shù)量聽上去的意義,遞增直到達(dá)到被測(cè)應(yīng)用的***事務(wù)處理能力或其他性能指標(biāo)閥值(如成功率或TRT)。新業(yè)務(wù)和經(jīng)管類Web應(yīng)用屬于無(wú)明確交易量的應(yīng)用系統(tǒng)。

3. VUser的意義

盡管建議在確定負(fù)載目標(biāo)時(shí)弱化VUser的意義,但測(cè)試中還要注意一種情況,如果被測(cè)應(yīng)用有具體的操作用戶數(shù)量,如只有簽到或登錄的用戶才能提交交易,則VUser的數(shù)量不能高于實(shí)際注冊(cè)用戶數(shù)量。就按照***用戶數(shù)量加壓,以需求要求的TRT為目標(biāo)調(diào)優(yōu)被測(cè)應(yīng)用,盡量提高TPS。

希望本文能給你帶來(lái)幫助。

【編輯推薦】

  1. 高效的單元測(cè)試Rails該怎樣進(jìn)行
  2. 淺談單元測(cè)試方法和步驟
  3. 關(guān)于手機(jī)測(cè)試用例設(shè)計(jì)的幾件事
  4. 介紹幾種測(cè)試工作量的估算方法
  5. C++多線程調(diào)試和測(cè)試的注意事項(xiàng)
責(zé)任編輯:于鐵 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2020-05-18 07:00:00

性能測(cè)試壓力測(cè)試負(fù)載測(cè)試

2011-06-08 16:59:04

性能測(cè)試載測(cè)試壓力測(cè)試

2022-05-17 08:53:26

TPS性能測(cè)試

2015-07-28 14:18:21

Ceph性能測(cè)試優(yōu)化

2010-05-07 13:09:06

2023-07-07 15:34:27

負(fù)載測(cè)試性能測(cè)試

2010-04-26 10:55:41

全局負(fù)載均衡

2023-07-20 14:59:37

負(fù)載測(cè)試測(cè)試

2019-08-30 09:32:32

監(jiān)控負(fù)載測(cè)試工具

2010-05-06 09:34:36

負(fù)載均衡集群

2021-06-30 09:00:00

測(cè)試Web軟件

2009-02-12 10:10:00

2013-12-25 10:32:41

MySQL性能測(cè)試

2013-05-08 09:31:32

MangoDB

2023-09-18 16:14:35

性能測(cè)試開發(fā)

2017-08-10 14:04:25

前端JavaScript函數(shù)性能

2010-08-06 10:34:27

ODB2系統(tǒng)性能優(yōu)化

2010-04-28 15:52:15

數(shù)據(jù)流負(fù)載均衡

2020-11-05 16:50:41

CPU性能標(biāo)準(zhǔn)

2017-06-26 10:22:22

Linux平均負(fù)載性能監(jiān)控
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)