性能測試基礎知識

作者:Gakki

基礎概念:HPS赖阻、TPS蝶押、QPS、RPS火欧、RT棋电、并發(fā)用戶數(shù)概念?簡要介紹苇侵?

HPS(Hits Per Second):每秒點擊次數(shù)赶盔,單位是次/秒。
TPS(Transaction per Second):系統(tǒng)每秒處理事務數(shù)榆浓,簡稱TPS, 每秒事務數(shù), 是衡量系統(tǒng)性能的一個非常重要的指標于未。
QPS(Query per Second):系統(tǒng)每秒處理查詢次數(shù),單位是次/秒。對于互聯(lián)網業(yè)務中烘浦,如果某些業(yè)務有且僅有一個請求連接抖坪,那么TPS=QPS=HPS,一般情況下用TPS來衡量整個業(yè)務流程闷叉,用QPS來衡量接口查詢次數(shù)擦俐,用HPS來表示對服務器點擊請求
RPS 即每秒請求數(shù)(Request Per Second),通常用來描述施壓引擎實際發(fā)出的壓力大小握侧。PS:并發(fā)數(shù)過低時可能達不到預期的 RPS蚯瞧,并發(fā)數(shù)過高時可能壓力過大壓垮服務器
并發(fā)用戶數(shù):簡稱VU ,指的是現(xiàn)實系統(tǒng)中操作業(yè)務的用戶,在性能測試工具中品擎,一般稱為虛擬用戶數(shù)(Virutal User)埋合,注意并發(fā)用戶數(shù)跟注冊用戶數(shù)、在線用戶數(shù)有很大差別的萄传,并發(fā)用戶數(shù)一定會對服務器產生壓力的饥悴,而在線用戶數(shù)只是 ”掛” 在系統(tǒng)上,對服務器不產生壓力盲再,注冊用戶數(shù)一般指的是數(shù)據庫中存在的用戶數(shù)。
響應時間:簡稱RT,指的是業(yè)務從客戶端發(fā)起到客戶端接受的時間瓣铣。

壓測工具答朋?你主要看哪些指標?

壓測工具:jmeter
Label:每個 JMeter 的 element(例如 HTTP Request)都有一個 Name 屬性棠笑,這里顯示的就是 Name 屬性的值
# Samples:表示你這次測試中一共發(fā)出了多少個請求梦碗,如果模擬10個用戶,每個用戶迭代10次蓖救,那么這里顯示100
Average:平均響應時間——默認情況下是單個 Request 的平均響應時間洪规,當使用了 Transaction Controller 時,也可以以Transaction 為單位顯示平均響應時間
Median:中位數(shù)循捺,也就是 50% 用戶的響應時間
90% Line:90% 用戶的響應時間
Note:關于 50% 和 90% 并發(fā)用戶數(shù)的含義
Min:最小響應時間
Max:最大響應時間
Error%:本次測試中出現(xiàn)錯誤的請求的數(shù)量/請求的總數(shù)
Throughput:吞吐量——默認情況下表示每秒完成的請求數(shù)(Request per Second)斩例,當使用了 Transaction Controller 時,也可以表示類似 LoadRunner 的 Transaction per Second 數(shù)
KB/Sec:每秒從服務器端接收到的數(shù)據量从橘,相當于LoadRunner中的Throughput/Sec

性能測試中TPS上不去的幾種原因淺析念赶?

TPS(Transaction Per Second):每秒事務數(shù),指服務器在單位時間內(秒)可以處理的事務數(shù)量恰力,一般以request/second為單位叉谜。

  1. 網絡帶寬。在壓力測試中踩萎,有時候要模擬大量的用戶請求停局,如果單位時間內傳遞的數(shù)據包過大,超過了帶寬的傳輸能力,那么就會造成網絡資源競爭董栽,間接導致服務端接收到的請求數(shù)達不到服務端的處理能力上限码倦。
  2. 連接池●捎荆可用的連接數(shù)太少叹洲,造成請求等待。連接池一般分為服務器連接池(比如Tomcat)和數(shù)據庫連接池(或者理解為最大允許連接數(shù)也行)工禾。
  3. 垃圾回收機制运提。從常見的應用服務器來說,比如Tomcat闻葵,因為java的的堆棧內存是動態(tài)分配民泵,具體的回收機制是基于算法,如果新生代的Eden和Survivor區(qū)頻繁的進行Minor GC槽畔,老年代的full GC也回收較頻繁栈妆,那么對TPS也是有一定影響的,因為垃圾回收其本身就會占用一定的資源厢钧。
  4. 數(shù)據庫配置鳞尔。高并發(fā)情況下,如果請求數(shù)據需要寫入數(shù)據庫早直,且需要寫入多個表的時候寥假,如果數(shù)據庫的最大連接數(shù)不夠,或者寫入數(shù)據的SQL沒有索引沒有綁定變量霞扬,抑或沒有主從分離糕韧、讀寫分離等,就會導致數(shù)據庫事務處理過慢喻圃,影響到TPS萤彩。
  5. 通信連接機制。串行斧拍、并行雀扶、長連接、管道連接等肆汹,不同的連接情況怕吴,也間接的會對TPS造成影響。
  6. 硬件資源县踢。包括CPU(配置转绷、使用率等)、內存(占用率等)硼啤、磁盤(I/O议经、頁交換等)。
  7. 壓力機。比如jmeter煞肾,單機負載能力有限咧织,如果需要模擬的用戶請求數(shù)超過其負載極限,也會間接影響TPS(這個時候就需要進行分布式壓測來解決其單機負載的問題)籍救。
  8. 壓測腳本习绢。還是以jemter舉個例子,之前工作中同事遇到的蝙昙,進行階梯式加壓測試闪萄,最大的模擬請求數(shù)超過了設置的線程數(shù),導致線程不足奇颠。提到這個原因败去,想表達意思是:有時候測試腳本參數(shù)配置等原因,也會影響測試結果烈拒。
  9. 業(yè)務邏輯圆裕。業(yè)務解耦度較低,較為復雜荆几,整個事務處理線被拉長導致的問題吓妆。
  10. 系統(tǒng)架構。比如是否有緩存服務吨铸,緩存服務器配置耿战,緩存命中率、緩存穿透以及緩存過期等焊傅,都會影響到測試結果。

性能測試場景設置思路狈涮?

無論并發(fā)模式還是TPS模式狐胎,場景就是一個壓測模型,壓測模型中有串行的事務(如添加購物車+購物車下單+付款)也有并行的接口(在不同串聯(lián)鏈路中的壓測API)歌馍,最終組成一個復雜或者簡單的場景握巢。然后根據新業(yè)務上線的目標、或者日常峰值的等比例目標松却、或者重大業(yè)務活動的預估支撐能力去設置每個API的目標能力(TPS是一步到位的按照吞吐能力設置的暴浦,推薦TPS模式,比如前面提到的添加購物車+購物車下單+付款這種流程就是一個漏斗模型晓锻,TPS設置為逐漸變小的模型即可)歌焦,當然也可以在初期的測試中更謹慎一點,將目標量級設置得整體低一點砚哆,當最終能力達到之后建議可以調整原定目標量級到120%或者150%独撇,驗證限流準入/高可用基礎設施的抗壓能力。目標量級即當前壓測場景中這個壓測API的施壓上限。而起步量級可以從5%或者10%開始纷铣,過程中視業(yè)務指標數(shù)據和被壓測端的整體負載臨時調整卵史。

對服務器性能測試的看法?

針對服務器端的性能搜立,以TPS為主來衡量系統(tǒng)的性能以躯,并發(fā)用戶數(shù)為輔來衡量系統(tǒng)的性能,如果必須要用并發(fā)用戶數(shù)來衡量的話啄踊,需要一個前提忧设,那就是交易在多長時間內完成,因為在系統(tǒng)負載不高的情況下社痛,將思考時間(思考時間的值等于交易響應時間)加到串聯(lián)鏈路(場景)中见转,并發(fā)用戶數(shù)基本可以增加一倍,因此用并發(fā)用戶數(shù)來衡量系統(tǒng)的性能沒太大的意義蒜哀。同樣的斩箫,如果系統(tǒng)間的吞吐能力差別很大,那么同樣的并發(fā)下TPS差距也會很大撵儿。

系統(tǒng)的性能決定的要素乘客?跟并發(fā)用戶數(shù)的關系?

由TPS決定淀歇,跟并發(fā)用戶數(shù)沒有多大關系易核。
系統(tǒng)的最大TPS是一定的(在一個范圍內),但并發(fā)用戶數(shù)不一定浪默,可以調整牡直。
建議性能測試的時候,不要設置過長的思考時間纳决,以最壞的情況下對服務器施壓碰逸。

Jmeter的工作原理是什么?

jmeter可以作為web服務器與瀏覽器直接的代理網關阔加,以便捕獲瀏覽器的請求和web服務器的響應饵史,如此就可以很容易地生成性能測試腳本。有了性能測試腳本胜榔,jmeter就可以通過線程來模擬真實用戶對web服務器的訪問壓力胳喷。這與LoadRunner的工作原理基本一致。

你常用的元件夭织、各自的作用是什么吭露?

  1. 測試計劃(Test Plan)是使用 JMeter 進行測試的起點,它是其它 JMeter 測試元件的容器尊惰。
  2. 線程組(Thread Group)代表一定數(shù)量的并發(fā)用戶奴饮,它可以用來模擬并發(fā)用戶發(fā)送請求纬向。
  3. 取樣器(sampler)定義實際的請求內容,被線程組包含戴卜,我們主要用HTTP請求逾条。
  4. 監(jiān)聽器(Listener)
  5. 邏輯控制器(Logic Controller)
  6. 斷言(Assertions)
  7. 配置元件(Config Element)
  8. 前置處理器(Pre Processors)和后置處理器(Post Processors)
  9. 定時器(Timer)

前端的性能應該從哪些方面去測試?應該關注哪些指標投剥?

  1. 使用的一些工具
  2. 查看靜態(tài)資源
  3. JS师脂、CSS等資源加載速度
  4. 頁面渲染
  5. 不同瀏覽器上加載速度

什么是緩存?

緩存就是在內存中存儲的數(shù)據備份江锨,當數(shù)據沒有發(fā)生本質變化的時候吃警,我們避免數(shù)據的查詢操作直接連接數(shù)據庫,而是去 內容中讀取數(shù)據啄育,這樣就大大降低了數(shù)據庫的讀寫次數(shù)酌心,而且從內存中讀數(shù)據的速度要比從數(shù)據庫查詢要快很多。

什么是Redis挑豌?

1)Redis不僅僅支持簡單的k/v類型的數(shù)據安券,同時還提供list,set氓英,zset侯勉,hash等數(shù)據結構的存儲。
2)Redis支持master-slave(主-從)模式應用
3)Redis支持數(shù)據持久化铝阐,可以將內存中的數(shù)據保持在磁盤中址貌,重啟的時候可以再次加載進行使用。
4)Redis單個value的最大限制是1GB徘键,memcached只能保存1MB的數(shù)據练对。

什么是全鏈路壓測?

基于實際的生產業(yè)務場景吹害、系統(tǒng)環(huán)境螟凭,模擬海量的用戶請求和數(shù)據對整個業(yè)務鏈進行壓力測試,并持續(xù)調優(yōu)的過程

性能測試關注的指標是什么赠制?

  1. 用戶數(shù)
  • ①注冊用戶數(shù)
    注冊用戶數(shù)指軟件中已經注冊的用戶,這些用戶是系統(tǒng)的潛在用戶挟憔,隨時都有可能上線钟些。這個指標的意義在于讓測試工程師了解系統(tǒng)數(shù)據中的數(shù)據總量和系統(tǒng)最大可能有多少用戶同時在線。
  • ②在線用戶數(shù)
    在線用戶數(shù)是指某一時刻已經登錄系統(tǒng)的用戶數(shù)量绊谭。在線用戶數(shù)只是統(tǒng)計了登錄系統(tǒng)的用戶數(shù)量政恍,這些用戶不一定都對系統(tǒng)進行操作,對服務器產生壓力达传。
  • ③并發(fā)用戶數(shù)
    不同于在線用戶數(shù)篙耗,并發(fā)用戶數(shù)是指某一時刻向服務器發(fā)送請求的在線用戶數(shù)迫筑,他是衡量服務器并發(fā)容量和同步協(xié)調能力的重要指標,從這個含義上講宗弯,我們可能會如下兩種理解:
    同一時刻向服務器發(fā)送相同或者不同請求的用戶數(shù)脯燃,也就是說,既可以包括對某一業(yè)務的相同請求蒙保,也可以包括對多個業(yè)務的不同請求
    同一時刻向服務器發(fā)送相同請求的用戶數(shù)辕棚,僅限于某一業(yè)務的相同請求
  1. 事務的響應時間
    事務是指用戶在客戶端做一種或多種業(yè)務所做的操作集,事務的響應時間就是衡量用戶執(zhí)行這些操作集所花費的時間邓厕。在性能測試中逝嚎,一般通過計算事務的開始時間和結束時間的差值來獲取事務的響應時間。
    一個事務表示一個“從用戶發(fā)送請求->web server接受到請求详恼,進行處理-> web server向DB獲取數(shù)據->生成用戶的object(頁面)补君,返回給用戶”的過程,一般的響應時間都是針對事務而言的昧互。
  2. 每秒點擊數(shù)
    每秒點擊數(shù)是指每秒鐘像web服務器提交的HTTP請求數(shù)挽铁,它是衡量服務器處理能力的一個常用指標。需要注意的是硅堆,這里的相應時間并非鼠標的一次單擊操作屿储,因為在一次單擊操作中,客戶端可能向服務器發(fā)出多個HTTP請求渐逃,切勿混淆够掠。
  3. 吞吐率
    吞吐率通常指單位時間內從服務器返回的字節(jié)數(shù),也可以單位時間內客戶提交的請求數(shù)茄菊。吞吐率是大型web系統(tǒng)衡量自身負載能力的一個重要指標疯潭,一般來說,吞吐率越大面殖,單位時間內處理的數(shù)據就越多竖哩,系統(tǒng)的負載能力也強。吞吐率與很多因素有關脊僚,服務器的硬件配置相叁,網絡的寬帶及拓撲結構,軟件的技術架構等辽幌。
  4. 業(yè)務成功率
    指多用戶對某一業(yè)務發(fā)起操作的成功率增淹。例如,測試網絡訂票系統(tǒng)的并發(fā)處理性能乌企,在早上8:00——8:30半小時的高峰里虑润,要求能支持10萬比訂票業(yè)務,其中成功率不少于98%加酵。也就是說系統(tǒng)允許200筆訂票業(yè)務超時或者因其他原因導致未能訂票成功拳喻。
  5. TPS - 吞吐量
    TPS表示服務器每秒處理的事務數(shù)哭当,他是衡量系統(tǒng)處理能力的一個非常重要的指標,在性能測試中冗澈,通過檢測不同用戶的TPS,可以估算出系統(tǒng)處理能力的拐點钦勘。
  6. 資源利用率
    資源利用率就是指資源的使用情況
    CPU使用率70%—80%,內存使用率80%以下
    網絡帶寬利用率 100Mbps=12.5MB/s
  7. QPS - 查詢率
    QPS:每秒查詢率渗柿,因特網上經常用每秒查詢率來衡量域名系統(tǒng)服務器的機器的能个盆。
    對應請求數(shù)/sec,即每秒的響應請求數(shù)朵栖,也即是最大吞吐能力颊亮。
  8. 錯誤率:一批請求中結果出錯的請求所占比例。

如果你要進行性能測試陨溅,你是如何展開操作的终惑?

  1. 確定關鍵業(yè)務,關鍵路徑
  2. 確定輸入參數(shù)以及輸出參數(shù)门扇,指定負載測試方案
  3. 準備測試環(huán)境雹有,完成腳本錄制,或者測試腳本開發(fā)臼寄,
  4. 執(zhí)行測試霸奕,觀察或輸出參數(shù),如(數(shù)據吞吐量吉拳,響應時間质帅,資源占有率等)
  5. 對測試結果進行分析

安全性測試包括哪些方面?

用戶驗證留攒,用戶權限管理煤惩,系統(tǒng)數(shù)據的保護

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市炼邀,隨后出現(xiàn)的幾起案子魄揉,更是在濱河造成了極大的恐慌,老刑警劉巖拭宁,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件洛退,死亡現(xiàn)場離奇詭異,居然都是意外死亡杰标,警方通過查閱死者的電腦和手機兵怯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來在旱,“玉大人摇零,你說我怎么就攤上這事推掸⊥靶” “怎么了驻仅?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長登渣。 經常有香客問我噪服,道長,這世上最難降的妖魔是什么胜茧? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任粘优,我火速辦了婚禮,結果婚禮上呻顽,老公的妹妹穿的比我還像新娘雹顺。我一直安慰自己,他們只是感情好廊遍,可當我...
    茶點故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布嬉愧。 她就那樣靜靜地躺著,像睡著了一般喉前。 火紅的嫁衣襯著肌膚如雪没酣。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天,我揣著相機與錄音见咒,去河邊找鬼论颅。 笑死,一個胖子當著我的面吹牛漏设,可吹牛的內容都是我干的今妄。 我是一名探鬼主播盾鳞,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼腾仅,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了鹤耍?” 一聲冷哼從身側響起稿黄,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎族购,沒想到半個月后陵珍,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡朝墩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年伟姐,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鹿霸。...
    茶點故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡懦鼠,死狀恐怖屹堰,靈堂內的尸體忽然破棺而出扯键,到底是詐尸還是另有隱情,我是刑警寧澤馅笙,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布董习,位于F島的核電站皿淋,受9級特大地震影響窝趣,放射性物質發(fā)生泄漏蔗喂。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一畦粮、第九天 我趴在偏房一處隱蔽的房頂上張望散址。 院中可真熱鬧,春花似錦预麸、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽钩蚊。三九已至贡翘,卻和暖如春砰逻,著一層夾襖步出監(jiān)牢的瞬間鸣驱,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工蝠咆, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留踊东,地道東北人。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓闸翅,卻偏偏與公主長得像,于是被迫代替她去往敵國和親菊霜。 傳聞我的和親對象是個殘疾皇子鉴逞,可洞房花燭夜當晚...
    茶點故事閱讀 44,843評論 2 354

推薦閱讀更多精彩內容