轉載自: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、select、update、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(每秒寫了多少次)