A4-01-01. MySQL性能指標TPS、QPS和IOPS介紹


轉載自:http://www.unixfbi.com/526.html

 

1.什么是 TPS

TPS (Transaction Per Second)每秒事務數,即數據庫每秒執行的事務數。
MySQL 本身沒有直接提供 TPS 參數值。如果我們想要獲得 TPS 的值,只有我們自己計算了。可以根據 MySQL 數據庫提供的狀態變量,來計算TPS。
需要使用的參數:
Com_commit  :表示提交次數
Com_rollback:表示回滾次數
我們定義第一次獲取的Com_commit的值與Com_rollback值的和為c_r1,時間為 t1;
     第二次獲取的Com_commit的值與Com_rollback值的和為c_r2,時間為 t2;
t1 與 t2 單位為秒。

那么 TPS = ( c_r2 - c_r1 ) / ( t2 - t1 ) 算出來的就是該 MySQL 實例在 t1 與 t2 生命周期之間的平均TPS。

 

2.什么是 QPS

QPS(Query Per Second)每秒請求次數,也就是數據庫每秒執行的 SQL 數量。包含insert、selectupdate、delete等。
MySQL 數據庫本身已經提供了這個QPS指標值,可以使用如下命令獲取:

# mysqladmin -uroot -pllill2018 -S /tmp/mysql3307.sock  status 2> /dev/null
得到的結果里面包含Queries per second:

   Uptime: 1203729 Threads: 1 Questions: 3496 Slow queries: 0 Opens: 1146 Flush tables: 4 Open tables: 9 Queries per second avg: 0.002

這樣 QPS = Questions / Uptime 即可得到的該指標的值。MySQL 提供的這個QPS指標,是該 MySQL 實例從啟動到目前,這段生命周期內的指標。
我們自己計算QPS時,獲取兩次QPS的值相減,然后除以兩次的時間間隔。
我們定義第一次獲取的Questions值為 Q1 ,時間點為 t1;
第二次獲取Questions值為 Q2,時間點為 t2;
t1 與 t2 單位為秒。

那么,QPS = ( Q2 - Q1 ) / ( t2 - t1 )

怎么獲取 MySQL 的Questions值呢?

# mysqladmin -uroot -pllill2018 -S /tmp/mysql3307.sock extended-status  2>/dev/null |grep "Questions" 
或者
# mysql -uroot -pllill2018 -S /tmp/mysql3307.sock -e "show global status like 'Questions'" 2>/dev/null

 

3.什么是 IOPS

IOPS(Input/Output Operations per Second)即每秒處理的 I/O 請求次數。是判斷磁盤 I/O 能力的指標之一。一般來講IOPS指標越高,那么單位時間內能夠響應的請求自然也就越多。理論上講,只要系統實際的請求數低於 IOPS 的能力,就相當於每一個請求都能得到即時響應,那么 I/O 就不會是瓶頸了。

注意:IOPS 與磁盤吞吐量不一樣,吞吐量是指單位時間內可以成功傳輸的數據數量。

怎么查看磁盤的 IOPS 呢?
可以使用 iostat 命令

# yum install sysstat
# iostat  -dx 1 10
IOPS = r/s(每秒讀了多少次) + w/s(每秒寫了多少次)

 


免責聲明!

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



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