發(fā)布時間:2020-07-13
在談起并發(fā)這個概念之前,我們先來說說壓力,對系統(tǒng)而言,性能問題歸根到底,都會體現(xiàn)為實實在在的壓力。因此,我們一般說的“你這個系統(tǒng)的性能最高能到多少?”,其內在含義指的就是“系統(tǒng)所能承受的最大壓力是多少”。
系統(tǒng)的壓力是什么呢?壓力是對被測系統(tǒng)而言的,只要系統(tǒng)在處理事務,就有壓力,這種壓力不僅僅體現(xiàn)在網絡上(數據的吞吐),還體現(xiàn)在服務器上(如CPU、內存等),因此,我們不要混淆了吞吐量與壓力的關系,應該這么說,在一些web系統(tǒng)上,吞吐量可以在一定程度上反映系統(tǒng)承受的數據壓力。
另外,我們需要清楚,壓力不等于性能,壓力只是檢驗性能的一種手段,對一個性能良好的系統(tǒng),在一定的壓力下,應該可以保持正常運轉,如果超過負荷,則應該分流或化解壓力,這也是我們需要檢驗的。
性能測試中怎么設置并發(fā)數,怎么合理選擇并發(fā)數?
并發(fā)用戶:指的是現(xiàn)實系統(tǒng)中同時操作業(yè)務的用戶,在性能測試工具中一般稱為虛擬用戶(Virutal User)。并發(fā)用戶跟注冊用戶、在線用戶有很大差別,并發(fā)用戶一定會對服務器產生壓力,在線用戶數只是 ”掛” 在系統(tǒng)上對服務器不產生壓力,注冊用戶一般指的是數據庫中存在的用戶。
TPS:Transaction Per Second, 每秒事務數, 是衡量系統(tǒng)性能的一個重要指標,事務靠虛擬用戶產生,假如1個虛擬用戶在1秒內完成1筆事務,那么TPS就是1,要想達到1000TPS至少需要1000個用戶;如果某筆業(yè)務響應時間是1毫秒,那么1個用戶在1秒內能完成1000筆事務,TPS就是1000。因此1個用戶可以產生1000TPS,1000個用戶也可以產生1000TPS,主要看響應時間的快慢。
對于并發(fā)用戶數的選擇,可以選取線上系統(tǒng)在高峰時刻一定周期內使用系統(tǒng)的人數,這些人數可以認為是在線用戶數,并發(fā)用戶數取其10%就可以了。例如在1小時內使用系統(tǒng)的用戶數為10000,那么取10%作為并發(fā)用戶數基本就夠了。
對于TPS的評估,可以通過線上系統(tǒng)在高峰時刻10分鐘內完成的業(yè)務量在單位時間的處理筆數計算出TPS ,即業(yè)務筆數 /單位時間(10*60 )。
對于新上線系統(tǒng)因沒有歷史數據可供參考,故只能通過業(yè)務發(fā)展趨勢來預判各項指標。
性能測試需要一套標準化流程及測試策略,在進行壓測時一般會按照梯度施壓的方式增加用戶數,以此觀察系統(tǒng)在不同壓力下的各種反應,如果在沒有充分評估的前提下一次加壓大量用戶會導致系統(tǒng)失敗率高響應時間長,最終得到的測試結果沒有太大意義。
一般情況下,大型系統(tǒng)(業(yè)務量大、機器多)做性能測試 5000 個并發(fā)用戶就夠了,中小型系統(tǒng)做性能測試 1000 個并發(fā)用戶就足夠了。
推薦閱讀:
什么是WebSocket?有哪些支持WebSocket協(xié)議的壓力測試工具?
企業(yè)為什么需要做全鏈路壓測?全鏈路壓測能解決什么問題?
您的信息已成功提交!
我們的客服人員稍后會與您聯(lián)系