更新時間:2019-12-06 16:13:21 來源:動力節(jié)點 瀏覽3636次
MySQL數(shù)據(jù)庫三個關(guān)鍵性能指標(biāo)--TPS\QPS\IOPS,如果你想要學(xué)習(xí)數(shù)據(jù)庫技術(shù),還請先了解這些知識點,讓你學(xué)習(xí)數(shù)據(jù)庫的路上不寂寞。
今天主要介紹MySQL數(shù)據(jù)庫,或者說所有數(shù)據(jù)庫的三個關(guān)鍵性能指標(biāo):
qps 每秒處理的查詢數(shù)
tps 每秒處理的事務(wù)數(shù)
IOPS 每秒磁盤進(jìn)行的I/O操作次數(shù)
一、TPS(適用innodb)
1. 概念
Transactions Per Second(每秒傳輸?shù)氖挛锾幚韨€數(shù)),即服務(wù)器每秒處理的事務(wù)數(shù)。
TPS包括一條消息入和一條消息出,加上一次用戶數(shù)據(jù)庫訪問。(業(yè)務(wù)TPS = CAPS × 每個唿叫平均TPS)
TPS是軟件測試結(jié)果的測量單位。一個事務(wù)是指一個客戶機向服務(wù)器發(fā)送請求然后服務(wù)器做出反應(yīng)的過程。客戶機在發(fā)送請求時開始計時,收到服務(wù)器響應(yīng)后結(jié)束計時,以此來計算使用的時間和完成的事務(wù)個數(shù)。
一般的,評價系統(tǒng)性能均以每秒鐘完成的技術(shù)交易的數(shù)量來衡量。系統(tǒng)整體處理能力取決于處理能力最低模塊的TPS值。
2. TPS計算
(1) 方法一
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
(2) 方法二
use information_schema;
select VARIABLE_VALUE into @num_com from GLOBAL_STATUS where VARIABLE_NAME ='COM_COMMIT';
select VARIABLE_VALUE into @num_roll from GLOBAL_STATUS where VARIABLE_NAME ='COM_ROLLBACK';
select VARIABLE_VALUE into @uptime from GLOBAL_STATUS where VARIABLE_NAME ='UPTIME';
select (@num_com+@num_roll)/@uptime;
二、QPS(同時適用與InnoDB和MyISAM 引擎 )
1. 概念
每秒查詢率QPS是對一個特定的查詢服務(wù)器在規(guī)定時間內(nèi)所處理流量多少的衡量標(biāo)準(zhǔn),在因特網(wǎng)上,作為域名系統(tǒng)服務(wù)器的機器的性能經(jīng)常用每秒查詢率來衡量。
對應(yīng)fetches/sec,即每秒的響應(yīng)請求數(shù),也即是最大吞吐能力。
2. QPS計算
(1) 方法一
Questions = SHOW GLOBAL STATUS LIKE 'Questions';
Uptime = SHOW GLOBAL STATUS LIKE 'Uptime';
QPS=Questions/Uptime
(2) 方法二
use information_schema;
select VARIABLE_VALUE into @num_queries from GLOBAL_STATUS where VARIABLE_NAME ='QUESTIONS';
select VARIABLE_VALUE into @uptime from GLOBAL_STATUS where VARIABLE_NAME ='UPTIME';
select @num_queries/@uptime;
三、IOPS
1. 概念
IOPS (Input/Output Per Second)即每秒的輸入輸出量(或讀寫次數(shù)),是衡量磁盤性能的主要指標(biāo)之一。IOPS是指單位時間內(nèi)系統(tǒng)能處理的I/O請求數(shù)量,一般以每秒處理的I/O請求數(shù)量為單位,I/O請求通常為讀或?qū)憯?shù)據(jù)操作請求。隨機讀寫頻繁的應(yīng)用,如OLTP(Online Transaction Processing),IOPS是關(guān)鍵衡量指標(biāo)。另一個重要指標(biāo)是數(shù)據(jù)吞吐量(Throughput),指單位時間內(nèi)可以成功傳輸?shù)臄?shù)據(jù)數(shù)量。對于大量順序讀寫的應(yīng)用,如VOD(Video On Demand),則更關(guān)注吞吐量指標(biāo)。
傳統(tǒng)磁盤本質(zhì)上一種機械裝置,如FC,SAS,SATA磁盤,轉(zhuǎn)速通常為5400/7200/10K/15K rpm不等。影響磁盤的關(guān)鍵因素是磁盤服務(wù)時間,即磁盤完成一個I/O請求所花費的時間,它由尋道時間、旋轉(zhuǎn)延遲和數(shù)據(jù)傳輸時間三部分構(gòu)成。
尋道時間Tseek是指將讀寫磁頭移動至正確的磁道上所需要的時間。尋道時間越短,I/O操作越快,目前磁盤的平均尋道時間一般在3-15ms。
旋轉(zhuǎn)延遲Trotation是指盤片旋轉(zhuǎn)將請求數(shù)據(jù)所在扇區(qū)移至讀寫磁頭下方所需要的時間。旋轉(zhuǎn)延遲取決于磁盤轉(zhuǎn)速,通常使用磁盤旋轉(zhuǎn)一周所需時間的1/2表示。比如,7200 rpm的磁盤平均旋轉(zhuǎn)延遲大約為60*1000/7200/2 = 4.17ms,而轉(zhuǎn)速為15000 rpm的磁盤其平均旋轉(zhuǎn)延遲約為2ms。
數(shù)據(jù)傳輸時間Ttransfer是指完成傳輸所請求的數(shù)據(jù)所需要的時間,它取決于數(shù)據(jù)傳輸率,其值等于數(shù)據(jù)大小除以數(shù)據(jù)傳輸率。目前IDE/ATA能達(dá)到133MB/s,SATA II可達(dá)到300MB/s的接口數(shù)據(jù)傳輸率,數(shù)據(jù)傳輸時間通常遠(yuǎn)小于前兩部分時間。
IOPS可細(xì)分為如下幾個指標(biāo):
Toatal IOPS,混合讀寫和順序隨機I/O負(fù)載情況下的磁盤IOPS,這個與實際I/O情況最為相符,大多數(shù)應(yīng)用關(guān)注此指標(biāo)。
Random Read IOPS,100%隨機讀負(fù)載情況下的IOPS。
Random Write IOPS,100%隨機寫負(fù)載情況下的IOPS。
Sequential Read IOPS,100%順序負(fù)載讀情況下的IOPS。
Sequential Write IOPS,100%順序?qū)懾?fù)載情況下的IOPS。
IOPS的測試benchmark工具主要有Iometer, IoZone, FIO等,可以綜合用于測試磁盤在不同情形下的IOPS。對于應(yīng)用系統(tǒng),需要首先確定數(shù)據(jù)的負(fù)載特征,然后選擇合理的IOPS指標(biāo)進(jìn)行測量和對比分析,據(jù)此選擇合適的存儲介質(zhì)和軟件系統(tǒng)。
2. IOPS計算
理論上可以計算出磁盤的最大IOPS,即IOPS = 1000 ms/ (Tseek + Troatation),忽略數(shù)據(jù)傳輸時間。假設(shè)磁盤平均物理尋道時間為3ms, 磁盤轉(zhuǎn)速為7200,10K,15K rpm,則磁盤IOPS理論最大值分別為,
IOPS = 1000 / (3 + 60000/7200/2) = 140
IOPS = 1000 / (3 + 60000/10000/2) = 167
IOPS = 1000 / (3 + 60000/15000/2) = 200
3. 案例
需求:20TB存儲空間同時滿足4500 IOPS+RAID 5,我應(yīng)該如何計算?RAID 5或者RAID 1/0的時候分別需要多少塊硬盤?
首先需要知道I/O中讀操作(Read)與寫操作(Write)所占的百分比。然后通過下列公式,將主機的IOPS需求轉(zhuǎn)換成硬盤實際IOPS負(fù)載:
假定4500 IOPS中讀/寫比是2:1,則不同RAID類型Drive IOPS要求分別如下:
RAID 1/0: (2/3)*4500 + 2*(1/3)*4500 = 6000 IOPS
RAID 5: (2/3)*4500 + 4*(1/3)*4500 = 9000 IOPS
RAID 6: (2/3)*4500 + 6*(1/3)*4500 = 12000 IOPS
再參照下表中不同類型硬盤單塊IOPS參數(shù),得出需要多少塊硬盤:
假定選用FC 15K RPM硬盤,則:
RAID 1/0: 6000/180 = 34 塊
RAID 5: 9000/180 = 50 塊
RAID 6: 12000/180 = 67 塊
注:實際情況下還需考慮Vault Drivers (共5塊)以及Hot Spares (建議每30塊硬盤一個)。
最后,如果選用600GB FC硬盤來實現(xiàn)20TB可用空間,則RAID 1/0需要78塊,RAID 5需要42塊。
以上就是動力節(jié)點Java培訓(xùn)機構(gòu)小編介紹的“Java編程學(xué)習(xí):MySQL數(shù)據(jù)庫的學(xué)習(xí)路線”的內(nèi)容,希望對大家有幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。
Java全套自學(xué)資料
Java自學(xué)視頻教程(免費學(xué)習(xí)):http://m.ilovecolors.com.cn/video.html
Java技術(shù)教程:http://m.ilovecolors.com.cn/tutorial/
相關(guān)文章
零基礎(chǔ)怎么自學(xué)Java,完整版Java學(xué)習(xí)路線圖
你還在糾結(jié)學(xué)Java,是自學(xué)還是去培訓(xùn)班嗎
一個標(biāo)準(zhǔn)的Java程序員如何進(jìn)階?
相關(guān)閱讀
初級 202925
初級 203221
初級 202629
初級 203743