網站並發量、吞吐量知識初探
- 2019 年 10 月 4 日
- 筆記
並發量
1.什麼是並發量? 並發量,是指同時訪問伺服器站點的連接數[引用百度]。指同一時刻向伺服器發送的請求數。
2.QPS是什麼? QPS是指每秒查詢率,一般用作單位時間內處理的並發數量。QPS通常用來表達系統的負載能力。
3.如何計算QPS? QPS=並發數/響應時間。
吞吐量
1.什麼是吞吐量? 是指對網路、設備、埠、虛電路或其他設施,單位時間內成功傳輸的數據量。
2.影響吞吐量的因素? 主要的三個因素有QPS、響應時間和並發數,同時對硬體、頻寬等也有影響。
吞出量和並發量有什麼區別
並發量是指規定時間內的請求數量。吞吐量是某個時間內的數據總量。比如,一條雙行道的公路,只能同時過2輛車,1個小時同行了100輛車。這裡的2就是並發量,這裡的100就是吞出量。
一般網站性能有關知識
1.軟體性能應該考慮哪些因素? 首先,開發軟體的目的是為了讓用戶使用,我們先站在用戶的角度分析一下,用戶需要關注哪些性能。
對於用戶來說,當點擊一個按鈕、鏈接或發出一條指令開始,到系統把結果已用戶感知的形式展現出來為止,這個過程所消耗的時間是用戶對這個軟體性能的直觀印象。也就是我們所說的響應時間,當相應時間較小時,用戶體驗是很好的,當然用戶體驗的響應時間包括個人主觀因素和客觀響應時間,在設計軟體時,我們就需要考慮到如何更好地結合這兩部分達到用戶最佳的體驗。如:用戶在大數據量查詢時,我們可以將先提取出來的數據展示給用戶,在用戶看的過程中繼續進行數據檢索,這時用戶並不知道我們後台在做什麼。
用戶關注的是用戶操作的相應時間。
其次,我們站在管理員的角度考慮需要關注的性能點。
1、 相應時間 2、 伺服器資源使用情況是否合理 3、 應用伺服器和資料庫資源使用是否合理 4、 系統能否實現擴展 5、 系統最多支援多少用戶訪問、系統最大業務處理量是多少 6、 系統性能可能存在的瓶頸在哪裡 7、 更換那些設備可以提高性能 8、 系統能否支援7×24小時的業務訪問
再次,站在開發(設計)人員角度去考慮。
1、 架構設計是否合理 2、 資料庫設計是否合理 3、 程式碼是否存在性能方面的問題 4、 系統中是否有不合理的記憶體使用方式 5、 系統中是否存在不合理的執行緒同步方式 6、 系統中是否存在不合理的資源競爭 2.軟體性能常見的計算方式? 1、響應時間:對請求作出響應所需要的時間
網路傳輸時間:N1+N2+N3+N4 應用伺服器處理時間:A1+A3 資料庫伺服器處理時間:A2 響應時間=N1+N2+N3+N4+A1+A3+A2 2、並發用戶數的計算公式
系統用戶數:系統額定的用戶數量,如一個OA系統,可能使用該系統的用戶總數是5000個,那麼這個數量,就是系統用戶數。同時在線用戶數:在一定的時間範圍內,最大的同時在線用戶數量。同時在線用戶數=每秒請求數RPS(吞吐量)+並發連接數+平均用戶思考時間 平均並發用戶數的計算:C=nL / T 其中C是平均的並發用戶數,n是平均每天訪問用戶數(login session),L是一天內用戶從登錄到退出的平均時間(login session的平均時間),T是考察時間長度(一天內多長時間有用戶使用系統) 並發用戶數峰值計算:C^約等於C + 3*根號C 其中C^是並發用戶峰值,C是平均並發用戶數,該公式遵循泊松分布理論。3、吞吐量的計算公式
指單位時間內系統處理用戶的請求數 從業務角度看,吞吐量可以用:請求數/秒、頁面數/秒、人數/天或處理業務數/小時等單位來衡量 從網路角度看,吞吐量可以用:位元組/秒來衡量 對於互動式應用來說,吞吐量指標反映的是伺服器承受的壓力,他能夠說明系統的負載能力 以不同方式表達的吞吐量可以說明不同層次的問題,例如,以位元組數/秒方式可以表示數要受網路基礎設施、伺服器架構、應用伺服器制約等方面的瓶頸;已請求數/秒的方式表示主要是受應用伺服器和應用程式碼的制約體現出的瓶頸。當沒有遇到性能瓶頸的時候,吞吐量與虛擬用戶數之間存在一定的聯繫,可以採用以下公式計算:F=VU * R / 其中F為吞吐量,VU表示虛擬用戶個數,R表示每個虛擬用戶發出的請求數,T表示性能測試所用的時間 4、性能計數器
是描述伺服器或作業系統性能的一些數據指標,如使用記憶體數、進程時間,在性能測試中發揮著「監控和分析」的作用,尤其是在分析系統可擴展性、進行性能瓶頸定位時有著非常關鍵的作用。資源利用率:指系統各種資源的使用情況,如cpu佔用率為68%,記憶體佔用率為55%,一般使用「資源實際使用/總的資源可用量」形成資源利用率。5、思考時間的計算公式
Think Time,從業務角度來看,這個時間指用戶進行操作時每個請求之間的時間間隔,而在做性能測試時,為了模擬這樣的時間間隔,引入了思考時間這個概念,來更加真實的模擬用戶的操作。在吞吐量這個公式中F=VU * R / T說明吞吐量F是VU數量、每個用戶發出的請求數R和時間T的函數,而其中的R又可以用時間T和用戶思考時間TS來計算:R = T / TS 下面給出一個計算思考時間的一般步驟:A、首先計算出系統的並發用戶數 C=nL / T F=R×C
B、統計出系統平均的吞吐量 F=VU * R / T R×C = VU * R / T
C、統計出平均每個用戶發出的請求數量 R=uCT/VU
D、根據公式計算出思考時間 TS=T/R
siege壓測用戶使用
1.軟體的安裝下載地址,演示系統是使用的Mac,則直接使用brew 包管理工具安裝即可。
brew install siege
linux安裝
git clone https://github.com/JoeDog/siege.git cd siege ./configure make make install
2.軟體的使用
siege -c 1000 -r 10 https://domain
3.軟體結果的分析
Transactions: 2336 hits Availability: 91.61 % Elapsed time: 23.95 secs Data transferred: 0.47 MB Response time: 2.45 secs Transaction rate: 97.54 trans/sec Throughput: 0.02 MB/sec Concurrency: 238.51 Successful transactions: 2336 Failed transactions: 214 Longest transaction: 4.68 Shortest transaction: 0.15