在做db基準測試的時候,qps,tps 是衡量數(shù)據(jù)庫性能的關鍵指標。本文比較了網(wǎng)上的兩種計算方式。先來了解一下相關概念。
概念介紹:
- QPS:Queries Per Second 查詢量/秒,是一臺服務器每秒能夠相應的查詢次數(shù),是對一個特定的查詢服務器在規(guī)定時間內所處理查詢量多少的衡量標準。
- TPS : Transactions Per Second 是事務數(shù)/秒,是一臺數(shù)據(jù)庫服務器在單位時間內處理的事務的個數(shù)。
在對數(shù)據(jù)庫的性能監(jiān)控上經(jīng)常會提到QPS和TPS這兩個名詞,下面就分別簡單的分享一下關于MySQL數(shù)據(jù)庫中的QPS和TPS的意義和計算方法。
1 QPS: 每秒Query 量,這里的QPS 是指MySQL Server 每秒執(zhí)行的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)操作的次數(shù),多用于數(shù)據(jù)庫等場合,衡量隨機訪問的性能。
存儲端的IOPS性能和主機端的IO是不同的,IOPS是指存儲每秒可接受多少次主機發(fā)出的訪問,主機的一次IO需要多次訪問存儲才可以完成。例如,主機寫入一個最小的數(shù)據(jù)塊,也要經(jīng)過“發(fā)送寫入請求、寫入數(shù)據(jù)、收到寫入確認”等三個步驟,也就是3個存儲端訪問。
IOPS的測試benchmark工具主要有Iometer, IoZone, FIO等,可以綜合用于測試磁盤在不同情形下的IOPS。對于應用系統(tǒng),需要首先確定數(shù)據(jù)的負載特征,然后選擇合理的IOPS指標進行測量和對比分析,據(jù)此選擇合適的存儲介質和軟件系統(tǒng)。
Questions 是記錄了從mysqld啟動以來所有的select,dml 次數(shù)包括show 命令的查詢的次數(shù)。這樣多少有失準確性,比如很多數(shù)據(jù)庫有監(jiān)控系統(tǒng)在運行,每5秒對數(shù)據(jù)庫進行一次show 查詢來獲取當前數(shù)據(jù)庫的狀態(tài),而這些查詢就被記錄到QPS,TPS統(tǒng)計中,造成一定的"數(shù)據(jù)污染".
如果數(shù)據(jù)庫中存在比較多的myisam表,則計算還是questions 比較合適。
如果數(shù)據(jù)庫中存在比較多的innodb表,則計算以com_*數(shù)據(jù)來源比較合適。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內容請查看下面相關鏈接
您可能感興趣的文章:- 數(shù)據(jù)庫性能測試之sysbench工具的安裝與用法詳解
- JAVA下單接口優(yōu)化實戰(zhàn)TPS性能提高10倍
- sysbench對mysql壓力測試的詳細教程
- 性能測試QPS+TPS+事務基礎知識分析