首頁  >  文章  >  系統教程  >  詳解MySQL效能指標及計算方法

詳解MySQL效能指標及計算方法

王林
王林轉載
2024-03-10 21:07:46367瀏覽

絕大多數MySQL效能指標可以透過以下兩種方式取得:

詳解MySQL效能指標及計算方法

#mysqladmin

#使用mysqladmin extended-status指令獲得的MySQL的效能指標,預設為累計值。 如果想了解目前狀態,需要進行差值計算;加上參數--relative(-r),就可以看到各個指標的差值,配合參數--sleep(-i)就可以指定刷新的頻率。

詳解MySQL效能指標及計算方法

詳解MySQL效能指標及計算方法

##Show global status

#可以列出MySQL伺服器運行各種狀態值,累計值

詳解MySQL效能指標及計算方法

#mysqladmin extended-status指令及show global status得到的指標項目特別多。實際應用中,重點在於以下效能指標:

1. tps/qps

#tps: Transactions Per Second,每秒事務數;

qps: Queries Per Second每秒查詢數;

通常有兩種方法可以計算tps/qps:

方法1:基於  com_commit、com_rollback 計算tps,基於 questions  計算qps。

TPS = Com_commit/s Com_rollback/s

其中,

Com_commit /s= mysqladmin extended-status --relative --sleep=1|grep -w Com_commit

Com_rollback/s = mysqladmin extended-status --relative --sleep=1|grep -w Com_rollback

QPS 是指MySQL Server 每秒執行的Query總量,透過Questions (客戶的查詢數目)狀態值每秒內的變化量來近似表示,所以有:

QPS = mysqladmin extended-status --relative --sleep=1|grep -w Questions

仿照上面的方法還可以得到,mysql每秒select、insert、update、delete的次數等,如:

Com_select/s = mysqladmin extended-status --relative --sleep=1|grep -w Com_select

#Com_select/s:平均每秒select語句執行次數

Com_insert/s:平均每秒insert語句執行次數

Com_update/s:平均每秒鐘update語句執行次數

Com_delete/s:平均每秒delete語句執行次數

方法2: 基於com_%計算tps ,qps

tps= Com_insert/s Com_update/s Com_delete/s

qps=Com_select/s Com_insert/s Com_update/s Com_delete/s

2. 執行緒狀態

#threads_running:目前正處於啟動狀態的執行緒個數

threads_connected:目前連接的執行緒的個數

3. 流量狀態

#Bytes_received/s:平均每秒從所有客戶端接收的位元組數,單位KB

Bytes_sent/s:平均每秒傳送給所有客戶端的位元組數,單位KB

4. innodb檔案讀寫次數

innodb_data_reads:innodb平均每秒從檔案讀取的次數

innodb_data_writes:innodb平均每秒從檔案中寫入的次數

innodb_data_fsyncs:innodb平均每秒進行fsync()操作的次數

5. innodb讀取寫量

innodb_data_read:innodb平均每秒鐘讀取的資料量,單位為KB

innodb_data_written:innodb平均每秒鐘寫入的資料量,單位為KB

6. innodb緩衝池狀態

innodb_buffer_pool_reads: 平均每秒從實體磁碟讀取頁的次數

innodb_buffer_pool_read_requests: 平均每秒從innodb緩衝池的讀取次數(邏輯讀取請求數)

innodb_buffer_pool_write_requests: 平均每秒向innodb緩衝池的寫次數

innodb_buffer_pool_pages_dirty: 平均每秒innodb快取池中髒頁的數目

innodb_buffer_pool_pages_flushed: 平均每秒innodb快取池中刷新頁請求的數目

innodb緩衝池的讀取命中率
innodb_buffer_read_hit_ratio = ( 1 - Innodb_buffer_pool_reads/Innodb_buffer_pool_read_requests) * 100

Innodb緩衝池的使用率

Innodb_buffer_usage =  ( 1 - Innodb_buffer_pool_pages_free / Innodb_buffer_pool_pages_total) * 100

7. innodb日誌

#innodb_os_log_fsyncs: 平均每秒完成至日誌檔案的fsync()寫入數量

innodb_os_log_written: 平均每秒寫入日誌檔案的位元組數

innodb_log_writes: 平均每秒向日誌檔案的物理寫次數

innodb_log_write_requests: 平均每秒日誌寫入請求數

8. innodb行

#innodb_rows_deleted: 平均每秒從innodb表刪除的行數

innodb_rows_inserted: 平均每秒從innodb表插入的行數

innodb_rows_read: 平均每秒從innodb表讀取的行數

innodb_rows_updated: 平均每秒從innodb表更新的行數

innodb_row_lock_waits:  一行鎖定必須等待的時間數

innodb_row_lock_time: 行鎖定花費的總時間,單位毫秒

innodb_row_lock_time_avg: 行鎖定的平均時間,單位毫秒

9. MyISAM讀寫次數

#key_read_requests: MyISAM平均每秒鐘從緩衝池中的讀取次數

Key_write_requests: MyISAM平均每秒鐘從緩衝池中的寫入次數

key_reads : MyISAM平均每秒鐘從硬碟上讀取的次數

key_writes : MyISAM平均每秒鐘從硬碟上寫入的次數

10. MyISAM緩衝池

#MyISAM平均每秒key buffer利用率

Key_usage_ratio =Key_blocks_used/(Key_blocks_used Key_blocks_unused)*100

MyISAM平均每秒key buffer讀取命中率

Key_read_hit_ratio=(1-Key_reads/Key_read_requests)*100

MyISAM平均每秒key buffer寫命中率

Key_write_hit_ratio =(1-Key_writes/Key_write_requests)*100

11. 暫存資料表

#Created_tmp_disk_tables: 伺服器執行語句時在硬碟上自動建立的臨時表的數量

Created_tmp_tables: 伺服器執行語句時自動建立的記憶體中的臨時表的數量

Created_tmp_disk_tables/Created_tmp_tables比值最好不要超過10%,如果Created_tmp_tables值比較大,可能是排序句子過多或連接句子不夠優化

12. 其他
#

slow_queries: 執行時間超過long_query_time秒的查詢的個數(重要)

sort_rows: 已經排序的行數

open_files: 開啟的檔案的數目

open_tables: 目前開啟的表格的數量

select_scan: 對第一個表進行完全掃描的聯結的數量

此外,還有一些效能指標不能透過mysqladmin extended-status或show global status直接得到,但是十分重要。

13. response time: 回應時間

#Percona提供了tcprstat工具統計回應時間,此功能預設是關閉的,可以透過設定參數query_response_time_stats=1來開啟這個功能。

有兩種方法可以查看回應時間:

(1)透過指令SHOW QUERY_RESPONSE_TIME查看回應時間統計;

(2)透過INFORMATION_SCHEMA裡面的表QUERY_RESPONSE_TIME來檢視。

http://www.orczhou.com/index.php/2011/09/thanks-percona-response-time-distribution/comment-page-1/(參考文章)

14. Slave delay: 備庫延遲

#可以在slave節點上執行show slave status\G指令,Seconds_Behind_Master項目的值即為slave目前的延遲量,單位秒數。

詳解MySQL效能指標及計算方法

#

以上是詳解MySQL效能指標及計算方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:linuxprobe.com。如有侵權,請聯絡admin@php.cn刪除