在做db基準(zhǔn)測(cè)試的時(shí)候,qps,tps 是衡量數(shù)據(jù)庫性能的關(guān)鍵指標(biāo)。本文比較了網(wǎng)上的兩種計(jì)算方式。先來了解一下相關(guān)概念。
創(chuàng)新互聯(lián)建站主營(yíng)深澤網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,app軟件開發(fā)公司,深澤h5微信小程序開發(fā)搭建,深澤網(wǎng)站營(yíng)銷推廣歡迎深澤等地區(qū)企業(yè)咨詢
概念介紹:
在對(duì)數(shù)據(jù)庫的性能監(jiān)控上經(jīng)常會(huì)提到QPS和TPS這兩個(gè)名詞,下面就分別簡(jiǎn)單的分享一下關(guān)于MySQL數(shù)據(jù)庫中的QPS和TPS的意義和計(jì)算方法。
1 QPS: 每秒Query 量,這里的QPS 是指MySQL Server 每秒執(zhí)行的Query總量,計(jì)算方法如下:
Questions = SHOW GLOBAL STATUS LIKE 'Questions'; Uptime = SHOW GLOBAL STATUS LIKE 'Uptime'; QPS=Questions/Uptime
2 TPS: 每秒事務(wù)量,通過以下方式來得到客戶端應(yīng)用程序所請(qǐng)求的 TPS 值,計(jì)算方法如下:
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),即每秒進(jìn)行讀寫(I/O)操作的次數(shù),多用于數(shù)據(jù)庫等場(chǎng)合,衡量隨機(jī)訪問的性能。
存儲(chǔ)端的IOPS性能和主機(jī)端的IO是不同的,IOPS是指存儲(chǔ)每秒可接受多少次主機(jī)發(fā)出的訪問,主機(jī)的一次IO需要多次訪問存儲(chǔ)才可以完成。例如,主機(jī)寫入一個(gè)最小的數(shù)據(jù)塊,也要經(jīng)過“發(fā)送寫入請(qǐng)求、寫入數(shù)據(jù)、收到寫入確認(rèn)”等三個(gè)步驟,也就是3個(gè)存儲(chǔ)端訪問。
IOPS的測(cè)試benchmark工具主要有Iometer, IoZone, FIO等,可以綜合用于測(cè)試磁盤在不同情形下的IOPS。對(duì)于應(yīng)用系統(tǒng),需要首先確定數(shù)據(jù)的負(fù)載特征,然后選擇合理的IOPS指標(biāo)進(jìn)行測(cè)量和對(duì)比分析,據(jù)此選擇合適的存儲(chǔ)介質(zhì)和軟件系統(tǒng)。
Questions 是記錄了從mysqld啟動(dòng)以來所有的select,dml 次數(shù)包括show 命令的查詢的次數(shù)。這樣多少有失準(zhǔn)確性,比如很多數(shù)據(jù)庫有監(jiān)控系統(tǒng)在運(yùn)行,每5秒對(duì)數(shù)據(jù)庫進(jìn)行一次show 查詢來獲取當(dāng)前數(shù)據(jù)庫的狀態(tài),而這些查詢就被記錄到QPS,TPS統(tǒng)計(jì)中,造成一定的"數(shù)據(jù)污染".
如果數(shù)據(jù)庫中存在比較多的myisam表,則計(jì)算還是questions 比較合適。
如果數(shù)據(jù)庫中存在比較多的innodb表,則計(jì)算以com_*數(shù)據(jù)來源比較合適。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)創(chuàng)新互聯(lián)的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接