性能測試-併發和QPS

性能測試-併發和QPS

響應時間:

cpu計算耗時 + cpu等待耗時 + 網絡io耗時 + 磁盤io耗時

併發:

服務端併發和客戶端併發不是同一個概念。客戶端併發僅僅是爲了模擬多用戶訪問,服務端併發是同時處理的請求數。從收到客戶端的請求處處理完成發出響應,都是屬於併發執行的請求。html

客戶端併發數不等於服務端併發數。雖然服務端同一時刻執行的線程數等於cpu個數,可是高性能的服務通常是都會使用了異步io;遇到io操做就扔給了操做系統執行,cpu接着幹其餘的事。因此應用程序同時能夠處理多於cpu數目不少的請求。但也不是無限多的。影響併發的系統資源有socket數,帶寬緊張程度,內存緊張程度,cpu繁忙程度,磁盤繁忙程度。這些資源共同影響併發數。git

這些資源中有些很是充足好比socket數(普通的服務都是設置了600000, 經過ulimit -n查看),有些就比較匱乏,好比磁盤(具體效率能夠去google)。當磁盤遇到瓶頸的時候,socket資源充當了緩衝區。雖然同時可以接受不少請求,可是真正能作出響應的比較少,形成響應時間增長,這種併發沒有意義。github

因此,能保證最低響應時間的併發纔是有效併發。
咱們在壓力測試過程當中,不斷的增長併發數,若是平均響應時間增長,說明併發能力已經到頭了,再加大併發整體性能將要下降。shell

上面已經談及到,併發數可經過屢次實驗來得到。apache

下面在來介紹一個種估算併發數據的方法:網絡

C=n*L/T

C:併發

n:壓測時間段內全部的請求數

L:平均響應時間

T:壓測總時長

這裏注意:L(平均響應時間)≠ T(總時長)/ n(總請求)

摘自:
從壓測工具談併發、壓力、吞吐量
Method for Estimating the Number of Concurrent Users併發

QPS:每秒請求數,qps是衡量吞吐量指標

咱們在壓測工具製做中,一直存在一個爭議——吞吐量的計算。

在性能測試中,吞吐量的計算有兩種常見的公式:

公式1: 吞吐量=併發數/平均響應時間

公式2: 吞吐量=請求總數/總時長

公式一、2你們應該都接觸過,雖然看上去不同,其實理論上都是ok的。

首先咱們能夠從C = nL / T 推導:

併發 = 請求總數*平均響應時間 / 總時長

=》併發 / 平均響應時間 = 請求總數 / 總時長

=》公式1 = 公式2

摘自:
從壓測工具談併發、壓力、吞吐量異步

性能測試工具

附上一些性能測試工具,排名不分前後,你們喜歡哪一個用哪一個。socket

hey
siege
vegeta
wrk
abwordpress

相關文章
相關標籤/搜索