Mysql數據庫的QPS和TPS的意義和計算方法


在做db基准測試的時候,qps,tps 是衡量數據庫性能的關鍵指標。本文比較了網上的兩種計算方式。先來了解一下相關概念。

概念介紹:

  • QPS:Queries Per Second         查詢量/秒,是一台服務器每秒能夠相應的查詢次數,是對一個特定的查詢服務器在規定時間內所處理查詢量多少的衡量標准。
  • TPS :  Transactions Per Second   是事務數/秒,是一台數據庫服務器在單位時間內處理的事務的個數。

在對數據庫的性能監控上經常會提到QPS和TPS這兩個名詞,下面就分別簡單的分享一下關於mysql數據庫中的QPS和TPS的意義和計算方法。

1 QPS: 每秒Query 量,這里的QPS 是指MySQL Server 每秒執行的Query總量,計算方法如下:

Questions = SHOW GLOBAL STATUS LIKE 'Questions';
Uptime = SHOW GLOBAL STATUS LIKE 'Uptime';
QPS=Questions/Uptime

2 TPS: 每秒事務量,通過以下方式來得到客戶端應用程序所請求的 TPS 值,計算方法如下:

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

IOPS:(Input/Output Operations Per Second),即每秒進行讀寫(I/O)操作的次數,多用於數據庫等場合,衡量隨機訪問的性能。

存儲端的IOPS性能和主機端的IO是不同的,IOPS是指存儲每秒可接受多少次主機發出的訪問,主機的一次IO需要多次訪問存儲才可以完成。例如,主機寫入一個最小的數據塊,也要經過“發送寫入請求、寫入數據、收到寫入確認”等三個步驟,也就是3個存儲端訪問。

IOPS的測試benchmark工具主要有Iometer, IoZone, FIO等,可以綜合用於測試磁盤在不同情形下的IOPS。對於應用系統,需要首先確定數據的負載特征,然后選擇合理的IOPS指標進行測量和對比分析,據此選擇合適的存儲介質和軟件系統。

Questions 是記錄了從mysqld啟動以來所有的select,dml 次數包括show 命令的查詢的次數。這樣多少有失准確性,比如很多數據庫有監控系統在運行,每5秒對數據庫進行一次show 查詢來獲取當前數據庫的狀態,而這些查詢就被記錄到QPS,TPS統計中,造成一定的"數據污染".

如果數據庫中存在比較多的myisam表,則計算還是questions 比較合適。

如果數據庫中存在比較多的innodb表,則計算以com_*數據來源比較合適。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對我們的支持。如果你想了解更多相關內容請查看下面相關鏈接


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM