questions:已經傳送給伺服器的查詢的個數。
mysql內部有乙個名為 questions 的計數器,客戶端每傳送乙個查詢語句,其值就會加一,可利用其來衡量查詢吞吐量
由 questions 指標帶來的以客戶端為中心的視角常常比相關的 queries 計數器更容易解釋。作為儲存程式的一部分,後者也會計算已執行語句的數量,以及諸如 prepare 和 deallocate prepare 指令執行的次數,作為伺服器端預處理語句的一部分。
>
show
global
status
like
"questions";+
---------------+--------+
| variable_name |
value|+
---------------+--------+
| questions |
134721|+
---------------+--------+
com_select: select語句執行了多少次。大家都知道com_insert等com_***引數可以用來監控資料庫例項的訪問量,也就是我們常說的qps。並且基於mysql的複製原理,所有主庫執行的操作都會在從庫重放一遍保證資料一致,那麼主庫的com_insert和從庫的com_insert理論上應該是相等的。
在mysql中,計算qps與qts時,目前有兩種方式。具體的演算法如下:
方法一:基於 questions 計算qps,基於 com_commit com_rollback 計算tps
questions = show global status like 'questions'
;uptime
= show global status like 'uptime'
;qps=questions/uptime
com_commit = show global status like 'com_commit'
;com_rollback = show global status like 'com_rollback'
;uptime
= show global status like 'uptime'
;tps=
(com_commit + com_rollback)/uptime
方法二 基於 com_* 的status 變數計算tps ,qps
使用如下命令:
show global status where variable_name in(
'com_select','com_insert','com_delete','com_update');
獲取間隔1s 的 com_*的值,並作差值運算
del_diff =
(int(mystat2[
'com_delete'
]) - int(mystat1[
'com_delete'])
) / diff
ins_diff =
(int(mystat2[
'com_insert'
]) - int(mystat1[
'com_insert'])
) / diff
sel_diff =
(int(mystat2[
'com_select'
]) - int(mystat1[
'com_select'])
) / diff
upd_diff =
(int(mystat2[
'com_update'
]) - int(mystat1[
'com_update'])
) / diff
qps和tps越大越好
小型公司(10到30人)
* tps : 上百
* 讀寫,qps: 上萬
一般我們使用sysbench做壓力測試。
吞吐量 併發量
併發數 吞吐量的概念最初用來衡量網路裝置的效能,後來推廣到伺服器及業務上評估系統的整體效能。一 網路裝置的併發數 吞吐量 併發數 concurrency 也叫併發連線數,指網路裝置所能處理的最大會話數量。這裡的會話數是指請求 響應一次會話。吞吐量 throughput 使用者請求是由乙個個資料報組成...
網路吞吐量
time limit 10 sec memory limit 512 mb 路由是指通過計算機網路把資訊從源位址傳輸到目的位址的活動,也是計算機網路設計中的重點和難點。網路中實現路由 的硬體裝置稱為路由器。為了使資料報最快的到達目的地,路由器需要選擇最優的路徑 資料報。例如在常用的路由演算法ospf...
系統吞吐量
系統吞吐量 很多情況下,筆者經常聽見許多開發人員在壓力測試中經常提及吞吐量,但經過實際溝通來看,其實大部分開發人員並不能夠準確的理解和定位系統吞吐量或者評估系統吞吐量。簡單來說,吞吐量指的就是系統在乙個指定的時間範圍能,能夠處理的實際請求數量,比如系統以秒為單位,每一秒鐘就近可以處理多少使用者請求,...