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

性能測(cè)試中的指標(biāo)和術(shù)語(yǔ)

開(kāi)發(fā) 測(cè)試
性能測(cè)試中會(huì)涉及很多性能相關(guān)的指標(biāo)和術(shù)語(yǔ),本節(jié)重點(diǎn)剖析核心的概念。

性能測(cè)試中會(huì)涉及很多性能相關(guān)的指標(biāo)和術(shù)語(yǔ),本節(jié)重點(diǎn)剖析核心的概念。

在線用戶

表示某個(gè)時(shí)間段內(nèi)在服務(wù)器上保持登錄狀態(tài)的用戶。但在線用戶不一定是對(duì)服務(wù)器產(chǎn)生壓力的用戶,只有正在操作的活躍用戶才會(huì)對(duì)服務(wù)器產(chǎn)生壓力,在線只是一種狀態(tài)。

相對(duì)并發(fā)用戶

類(lèi)似活躍用戶,表示某個(gè)時(shí)間段內(nèi)與服務(wù)器保持交互的用戶,理論上這些用戶有同一時(shí)刻(即絕對(duì)并發(fā))進(jìn)行操作的可能(對(duì)這種可能性的度量稱(chēng)為并發(fā)度》。相對(duì)并發(fā)的說(shuō)法主要是為了區(qū)分絕對(duì)并發(fā)。

絕對(duì)并發(fā)用戶

表示同一時(shí)間點(diǎn) (嚴(yán)格地說(shuō)是足夠短的時(shí)間段內(nèi))與服務(wù)器進(jìn)行交互的用戶,一般通過(guò)測(cè)試工具提供的并發(fā)控制 (如JMeter的集合點(diǎn))實(shí)現(xiàn)。

思考時(shí)間

表示用戶每個(gè)操作后的暫停時(shí)間,或者叫作操作之間的間隔時(shí)間,此時(shí)間內(nèi)用戶是不對(duì)服務(wù)器產(chǎn)生壓力的。如果想了解系統(tǒng)在極端情況下的性能表現(xiàn),可以設(shè)置思考時(shí)間為0;而如果要預(yù)估系統(tǒng)能夠承受的最大壓力,就應(yīng)該盡可能地模擬真實(shí)思考時(shí)間。

響應(yīng)時(shí)間

通常包括網(wǎng)絡(luò)傳輸請(qǐng)求的時(shí)間、服務(wù)器處理的時(shí)間,以及網(wǎng)絡(luò)傳輸響應(yīng)的時(shí)間。而我們重點(diǎn)關(guān)心的應(yīng)該是服務(wù)器處理的時(shí)間,這部分受到代碼處理請(qǐng)求的業(yè)務(wù)邏輯的影響,從中可以真正發(fā)現(xiàn)缺陷并對(duì)業(yè)務(wù)邏輯進(jìn)行優(yōu)化,而網(wǎng)絡(luò)傳輸請(qǐng)求和響應(yīng)的時(shí)間很大程度上取決于網(wǎng)絡(luò)質(zhì)量。

響應(yīng)時(shí)間也就是JMeter術(shù)語(yǔ)中的Elapsed time,表示接收完所有響應(yīng)內(nèi)容的時(shí)間點(diǎn)減去請(qǐng)求開(kāi)始發(fā)送的時(shí)間點(diǎn)。另外,Latency time表示接收到響應(yīng)的第一個(gè)字節(jié)的時(shí)間點(diǎn)減去請(qǐng)求開(kāi)始發(fā)送的時(shí)間點(diǎn),Connection time表示建立連接所消耗的時(shí)間。

當(dāng)關(guān)注響應(yīng)時(shí)間時(shí),不應(yīng)該只關(guān)注平均響應(yīng)時(shí)間。通常我們會(huì)采用95%的響應(yīng)時(shí)間,即所有請(qǐng)求的響應(yīng)時(shí)間按照從小到大排列,位于 95% 的響應(yīng)時(shí)間。該值更有代表性,而平均響應(yīng)時(shí)間未能有效地考慮波動(dòng)性

TPS

指每秒處理的事務(wù)數(shù),是直接反映系統(tǒng)性能的指標(biāo)。該值越大,系統(tǒng)性能越好。通常如果個(gè)事務(wù)包含的請(qǐng)求就1個(gè),那么這個(gè)值就是每秒處理請(qǐng)求數(shù)。另外還有個(gè)概念叫吞吐量,它除了用于描述網(wǎng)絡(luò)帶寬能力,也指單位時(shí)間內(nèi)系統(tǒng)處理的請(qǐng)求數(shù)量,JMeter聚合報(bào)告中TPS就是用該術(shù)語(yǔ)顯示的。假如1個(gè)用戶在1s內(nèi)完成1筆事務(wù),則TPS明顯就是1; 如果某筆業(yè)務(wù)響應(yīng)時(shí)間是1ms,則1個(gè)用戶在1s內(nèi)能完成1000筆事務(wù),則TPS就是1000了;如果某筆業(yè)務(wù)響應(yīng)時(shí)間是1s,則1個(gè)用戶在1s內(nèi)只能完成1筆事務(wù),要想TPS達(dá)到1000,則至少需要1000個(gè)用戶。因此在1s內(nèi),1個(gè)用戶可以完成1000筆事務(wù),1000個(gè)用戶也可以完成1000筆事務(wù),這取決于業(yè)務(wù)響應(yīng)時(shí)間。

TPS波動(dòng)范圍

方差和標(biāo)準(zhǔn)差都是用來(lái)描述一組數(shù)據(jù)的波動(dòng)性的 (表現(xiàn)數(shù)據(jù)集中還是分散),標(biāo)準(zhǔn)差的平方就是方差。方差越大,數(shù)據(jù)的波動(dòng)越大。

眾所周知,性能測(cè)試依賴(lài)于特定的硬件、軟件、應(yīng)用服務(wù)和網(wǎng)絡(luò)資源等,所以在性能場(chǎng)景執(zhí)行期間TPS可能表現(xiàn)為穩(wěn)定,或者波動(dòng),或者遵循一定的趨勢(shì)上升或下降。由此可以根據(jù)離散系數(shù)提出一個(gè)TPS波動(dòng)范圍的概念,并定義為T(mén)PS標(biāo)準(zhǔn)差除以TPS平均值。如果這個(gè)比值超過(guò)了一定的范圍,就認(rèn)為這個(gè)性能點(diǎn)的TPS不夠穩(wěn)定,也間接證明被測(cè)系統(tǒng)的響應(yīng)波動(dòng)大,不滿足性能期望。

另外,從上述的術(shù)語(yǔ)中不難發(fā)現(xiàn),TPS、并發(fā)數(shù)與響應(yīng)時(shí)間之間是有一定的關(guān)系的。假設(shè)平均響應(yīng)時(shí)間為t (單位為毫秒),并發(fā)量為 C,每秒處理請(qǐng)求數(shù)為 g,則g =(1000/t)x c 就是這個(gè)關(guān)系。所以想要升高 g ,就只有兩條路: 降低t和升高 C。

對(duì)于降低t,只能靠?jī)?yōu)化代碼方式來(lái)實(shí)現(xiàn),這取決于軟件工程師的編碼水平或架構(gòu)設(shè)計(jì)。

對(duì)于升高C,通常 c 與服務(wù)器程序的請(qǐng)求處理模型關(guān)系比較大。如果服務(wù)器程序是“一個(gè)線程對(duì)應(yīng)一個(gè)請(qǐng)求”的模式,那么c 的最大值就受制于服務(wù)器能支撐多少個(gè)線程;如果是“一個(gè)進(jìn)程對(duì)應(yīng)一個(gè)請(qǐng)求”的模式那么c 的最大值則受制于最大進(jìn)程數(shù)。另外,在升高c 值的過(guò)程中,不得不注意的一點(diǎn)是,隨著線程/進(jìn)程數(shù)增多,上下文切換、線程/進(jìn)程調(diào)度開(kāi)銷(xiāo)會(huì)增大,這會(huì)間接地顯著增大t 的值,因而不能讓 g 的值跟著c 的值等比升高。所以一味增大 c 值通常也不會(huì)有好結(jié)果,最合適的 c 值應(yīng)該根據(jù)實(shí)測(cè)試驗(yàn)得出。

注意

有一種特殊情況: 若業(yè)務(wù)決定了該服務(wù)器提供的服務(wù)具有“數(shù)據(jù)量小、返回時(shí)間較長(zhǎng)”的特征,即這是一個(gè)不忙但很慢的業(yè)務(wù)類(lèi)型,那么可以采用NIO模式提供服務(wù),例如Nginx就默認(rèn)采用NIO模式。 在這種模式下,c 值不再與線程/進(jìn)程數(shù)相關(guān),而只是與“套接字連接數(shù)”相關(guān)。通?!疤捉幼诌B接數(shù)”可以非常大,在經(jīng)過(guò)特殊配置的Linux服務(wù)器上,可以同時(shí)支撐百萬(wàn)級(jí)別的套接字連接數(shù),在這種情況下c 值可以達(dá)到100萬(wàn)。

在如此高的 c 值之下,就算 再大,也可以支撐一個(gè)很高的 q ,同時(shí)真正的線程/進(jìn)程數(shù)可以只設(shè)置到跟CPU核數(shù)一致,以求最大化CPU利用率。當(dāng)然,這一切的前提是該業(yè)務(wù)具有“數(shù)據(jù)量小、返回時(shí)間較長(zhǎng)”的特征。

經(jīng)過(guò)上述分析,在評(píng)定服務(wù)器的性能時(shí),應(yīng)該結(jié)合TPS和并發(fā)用戶數(shù),以TPS為主、以并發(fā)用戶數(shù)為輔來(lái)衡量系統(tǒng)的性能。如果必須要用并發(fā)用戶數(shù)來(lái)衡量,則需要一個(gè)前提一一交易在多長(zhǎng)時(shí)間內(nèi)完成。因?yàn)樵谙到y(tǒng)負(fù)載不高的情況下,將思考時(shí)間(思考時(shí)間的值等于交易響應(yīng)時(shí)間)加到腳本中,并發(fā)用戶數(shù)基本可以增加一倍,所以用并發(fā)用戶數(shù)來(lái)衡量系統(tǒng)的性能沒(méi)太大的意義。

提示

  • 高并發(fā)
    并發(fā)強(qiáng)調(diào)多任務(wù)交替執(zhí)行,并發(fā)與并行是有區(qū)別的,并行是多任務(wù)同時(shí)執(zhí)行。例如,一個(gè)核的CPU處理事務(wù)就是并發(fā);多個(gè)核的CPU就會(huì)存在事務(wù)的并行處理。這里涉及的知識(shí)點(diǎn)包括多線程、事務(wù)和鎖,設(shè)計(jì)高并發(fā)通常采用無(wú)狀態(tài)、拆分、服務(wù)化、服務(wù)隔離、消息隊(duì)列、數(shù)據(jù)處理和緩存等。
  • 高可用
    用系統(tǒng)的無(wú)故障運(yùn)行時(shí)間來(lái)度量,主要作用為保證軟件故障監(jiān)控、數(shù)據(jù)備份和保護(hù)、系統(tǒng)告警、錯(cuò)誤隔離。業(yè)務(wù)層設(shè)計(jì)包括集群、降級(jí)、限流、容錯(cuò)、防重和冪等。數(shù)據(jù)庫(kù)設(shè)計(jì)包括分庫(kù)、分表和分片等。
責(zé)任編輯:華軒 來(lái)源: 今日頭條
相關(guān)推薦

2024-11-05 16:45:02

2023-09-28 21:55:12

AndroidApp

2010-09-08 11:38:27

2011-05-05 14:26:11

噴墨打印機(jī)

2011-05-05 09:25:35

噴墨打印機(jī)指標(biāo)術(shù)語(yǔ)

2021-07-27 06:14:32

服務(wù)器端移動(dòng)端性能測(cè)試

2009-07-16 09:52:00

Scrum流程

2010-06-07 19:57:36

UML和模式應(yīng)用

2011-05-04 13:53:08

jQuery

2023-03-30 19:28:51

2009-12-16 13:02:39

路由器測(cè)試

2011-10-10 14:30:22

刷機(jī)刷系統(tǒng)手機(jī)

2009-10-10 11:11:40

服務(wù)器測(cè)試

2023-01-10 11:18:29

DevOps

2019-06-19 09:00:00

GitLinux開(kāi)源

2018-01-09 18:33:24

軟件開(kāi)發(fā)測(cè)試軟件測(cè)試

2010-05-21 16:23:52

MySQL MyISA

2023-11-20 09:48:13

Linux性能指標(biāo)命令

2011-09-19 13:11:00

Vista性能測(cè)試

2023-09-13 14:45:14

性能測(cè)試開(kāi)發(fā)
點(diǎn)贊
收藏

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