MySQL數(shù)據(jù)庫三個(gè)關(guān)鍵性能指

2021-03-13    分類: 網(wǎng)站建設(shè)

今天主要介紹MySQL數(shù)據(jù)庫,或者說所有數(shù)據(jù)庫的三個(gè)關(guān)鍵性能指標(biāo):

  • qps 每秒處理的查詢數(shù)
  • tps 每秒處理的事務(wù)數(shù)
  • IOPS 每秒磁盤進(jìn)行的I/O操作次數(shù)

mysql數(shù)據(jù)庫三個(gè)關(guān)鍵性能指標(biāo)--TPS\QPS\IOPS

一、TPS(適用innodb)

1. 概念

Transactions Per Second(每秒傳輸?shù)氖挛锾幚韨€(gè)數(shù)),即服務(wù)器每秒處理的事務(wù)數(shù)。

TPS包括一條消息入和一條消息出,加上一次用戶數(shù)據(jù)庫訪問。(業(yè)務(wù)TPS = CAPS × 每個(gè)呼叫平均TPS)

TPS是軟件測(cè)試結(jié)果的測(cè)量單位。一個(gè)事務(wù)是指一個(gè)客戶機(jī)向服務(wù)器發(fā)送請(qǐng)求然后服務(wù)器做出反應(yīng)的過程??蛻魴C(jī)在發(fā)送請(qǐng)求時(shí)開始計(jì)時(shí),收到服務(wù)器響應(yīng)后結(jié)束計(jì)時(shí),以此來計(jì)算使用的時(shí)間和完成的事務(wù)個(gè)數(shù)。

一般的,評(píng)價(jià)系統(tǒng)性能均以每秒鐘完成的技術(shù)交易的數(shù)量來衡量。系統(tǒng)整體處理能力取決于處理能力最低模塊的TPS值。

2. TPS計(jì)算

(1) 方法一


  1. Com_commit = SHOW GLOBAL STATUS LIKE 'Com_commit'; 
  2. Com_rollback = SHOW GLOBAL STATUS LIKE 'Com_rollback'; 
  3. Uptime = SHOW GLOBAL STATUS LIKE 'Uptime'; 
  4. TPS=(Com_commit + Com_rollback)/Uptime 

(2) 方法二


  1. use information_schema; 
  2. select VARIABLE_VALUE into @num_com from GLOBAL_STATUS where VARIABLE_NAME ='COM_COMMIT'; 
  3. select VARIABLE_VALUE into @num_roll from GLOBAL_STATUS where VARIABLE_NAME ='COM_ROLLBACK'; 
  4. select VARIABLE_VALUE into @uptime from GLOBAL_STATUS where VARIABLE_NAME ='UPTIME'; 
  5. select (@num_com+@num_roll)/@uptime; 

二、QPS(同時(shí)適用與InnoDB和MyISAM 引擎 )

1. 概念

每秒查詢率QPS是對(duì)一個(gè)特定的查詢服務(wù)器在規(guī)定時(shí)間內(nèi)所處理流量多少的衡量標(biāo)準(zhǔn),在因特網(wǎng)上,作為域名系統(tǒng)服務(wù)器的機(jī)器的性能經(jīng)常用每秒查詢率來衡量。

對(duì)應(yīng)fetches/sec,即每秒的響應(yīng)請(qǐng)求數(shù),也即是大吞吐能力。

2. QPS計(jì)算

(1) 方法一


  1. Questions = SHOW GLOBAL STATUS LIKE 'Questions'; 
  2. Uptime = SHOW GLOBAL STATUS LIKE 'Uptime'; 
  3. QPS=Questions/Uptime 

(2) 方法二


  1. use information_schema; 
  2. select VARIABLE_VALUE into @num_queries from GLOBAL_STATUS where VARIABLE_NAME ='QUESTIONS'; 
  3. select VARIABLE_VALUE into @uptime from GLOBAL_STATUS where VARIABLE_NAME ='UPTIME'; 
  4. select @num_queries/@uptime; 

三、IOPS

1. 概念

IOPS (Input/Output Per Second)即每秒的輸入輸出量(或讀寫次數(shù)),是衡量磁盤性能的主要指標(biāo)之一。IOPS是指單位時(shí)間內(nèi)系統(tǒng)能處理的I/O請(qǐng)求數(shù)量,一般以每秒處理的I/O請(qǐng)求數(shù)量為單位,I/O請(qǐng)求通常為讀或?qū)憯?shù)據(jù)操作請(qǐng)求。隨機(jī)讀寫頻繁的應(yīng)用,如OLTP(Online Transaction Processing),IOPS是關(guān)鍵衡量指標(biāo)。另一個(gè)重要指標(biāo)是數(shù)據(jù)吞吐量(Throughput),指單位時(shí)間內(nèi)可以成功傳輸?shù)臄?shù)據(jù)數(shù)量。對(duì)于大量順序讀寫的應(yīng)用,如VOD(Video On Demand),則更關(guān)注吞吐量指標(biāo)。

傳統(tǒng)磁盤本質(zhì)上一種機(jī)械裝置,如FC,SAS,SATA磁盤,轉(zhuǎn)速通常為5400/7200/10K/15K rpm不等。影響磁盤的關(guān)鍵因素是磁盤服務(wù)時(shí)間,即磁盤完成一個(gè)I/O請(qǐng)求所花費(fèi)的時(shí)間,它由尋道時(shí)間、旋轉(zhuǎn)延遲和數(shù)據(jù)傳輸時(shí)間三部分構(gòu)成。

尋道時(shí)間Tseek是指將讀寫磁頭移動(dòng)至正確的磁道上所需要的時(shí)間。尋道時(shí)間越短,I/O操作越快,目前磁盤的平均尋道時(shí)間一般在3-15ms。

旋轉(zhuǎn)延遲Trotation是指盤片旋轉(zhuǎn)將請(qǐng)求數(shù)據(jù)所在扇區(qū)移至讀寫磁頭下方所需要的時(shí)間。旋轉(zhuǎn)延遲取決于磁盤轉(zhuǎn)速,通常使用磁盤旋轉(zhuǎn)一周所需時(shí)間的1/2表示。比如,7200 rpm的磁盤平均旋轉(zhuǎn)延遲大約為60*1000/7200/2 = 4.17ms,而轉(zhuǎn)速為15000 rpm的磁盤其平均旋轉(zhuǎn)延遲約為2ms。

數(shù)據(jù)傳輸時(shí)間Ttransfer是指完成傳輸所請(qǐng)求的數(shù)據(jù)所需要的時(shí)間,它取決于數(shù)據(jù)傳輸率,其值等于數(shù)據(jù)大小除以數(shù)據(jù)傳輸率。目前IDE/ATA能達(dá)到133MB/s,SATA II可達(dá)到300MB/s的接口數(shù)據(jù)傳輸率,數(shù)據(jù)傳輸時(shí)間通常遠(yuǎn)小于前兩部分時(shí)間。

IOPS可細(xì)分為如下幾個(gè)指標(biāo):

Toatal IOPS,混合讀寫和順序隨機(jī)I/O負(fù)載情況下的磁盤IOPS,這個(gè)與實(shí)際I/O情況最為相符,大多數(shù)應(yīng)用關(guān)注此指標(biāo)。

  • Random Read IOPS,100%隨機(jī)讀負(fù)載情況下的IOPS。
  • Random Write IOPS,100%隨機(jī)寫負(fù)載情況下的IOPS。
  • Sequential Read IOPS,100%順序負(fù)載讀情況下的IOPS。
  • Sequential Write IOPS,100%順序?qū)懾?fù)載情況下的IOPS。

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)。

2. IOPS計(jì)算

理論上可以計(jì)算出磁盤的大IOPS,即IOPS = 1000 ms/ (Tseek + Troatation),忽略數(shù)據(jù)傳輸時(shí)間。假設(shè)磁盤平均物理尋道時(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存儲(chǔ)空間同時(shí)滿足4500 IOPS+RAID 5,我應(yīng)該如何計(jì)算?RAID 5或者RAID 1/0的時(shí)候分別需要多少塊硬盤?

首先需要知道I/O中讀操作(Read)與寫操作(Write)所占的百分比。然后通過下列公式,將主機(jī)的IOPS需求轉(zhuǎn)換成硬盤實(shí)際IOPS負(fù)載:

mysql數(shù)據(jù)庫三個(gè)關(guān)鍵性能指標(biāo)--TPS\QPS\IOPS

假定4500 IOPS中讀/寫比是2:1,則不同RAID類型Drive IOPS要求分別如下:


  1. RAID 1/0: (2/3)*4500 + 2*(1/3)*4500 = 6000 IOPS 
  2. RAID 5: (2/3)*4500 + 4*(1/3)*4500 = 9000 IOPS 
  3. RAID 6: (2/3)*4500 + 6*(1/3)*4500 = 12000 IOPS 

再參照下表中不同類型硬盤單塊IOPS參數(shù),得出需要多少塊硬盤:

mysql數(shù)據(jù)庫三個(gè)關(guān)鍵性能指標(biāo)--TPS\QPS\IOPS

假定選用FC 15K RPM硬盤,則:


  1. RAID 1/0: 6000/180 = 34 塊 
  2. RAID 5: 9000/180 = 50 塊 
  3. RAID 6: 12000/180 = 67 塊 

注:實(shí)際情況下還需考慮Vault Drivers (共5塊)以及Hot Spares (建議每30塊硬盤一個(gè))。

最后,如果選用600GB FC硬盤來實(shí)現(xiàn)20TB可用空間,則RAID 1/0需要78塊,RAID 5需要42塊。

文章標(biāo)題:MySQL數(shù)據(jù)庫三個(gè)關(guān)鍵性能指
本文來源:http://www.muchs.cn/news35/105135.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站收錄、小程序開發(fā)、Google、App設(shè)計(jì)、網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化