這篇文章主要介紹了mysql innodb的監控(系統層,數據庫層)的相關資料,需要的朋友可以參考下
mysql innodb的監控(系統層,數據庫層)
關于MySQL 的監控,mysql提供了數據采集的命令,比如show status命令或者讀取數據庫informat_schema的GLOBAL_STATUS對象;也可以用一些現成的監控工具進行查詢,目前用的比較多的innotop、mysqlreport、mtop、mytop,還有淘寶perl語言研發的orzdba。
就監控的指標而言,有系統層面的,數據庫層面的。
1、系統層面包括系統的load、cpu、內存是否有swap、磁盤IO如何、網絡。
????????vmstat?-w?1 ????????iostat?-x?-k?1 ????????sar?-n?DEV?1
2、mysql數據庫層
?show?global?status?where?Variable_name?in('xxxx')或者show?global?status?like?'xxx%'
???? 采集的數據一般是當前已經采集到的總數量,如果要計算每秒的數量,可以這樣計算,以TPS為例
???????????????? TPS=當前的Comm_commit-前面采集的Comm_Commit/時間間隔
??? 以下是主要的監控指標:
?????????????? 1)Sql語句執行次數QPS——(Com_select、Com_insert、Com_update、Com_delete)
?????????????? 2)事務TPS—-(Com_commit、Com_rollback)
?????????????? 3)Row的狀態(每秒增加修改刪除的行數)—–(Innodb_rows_inserted、Innodb_rows_updated、Innodb_rows_deleted、Innodb_rows_read)
?????????????? 4)Page 狀態(buffer pool中的總頁數、free、dirty、每秒flushed的page數量)—-(Innodb_buffer_pool_pages_flushed
?????????????? 5)查詢緩存Hit(query cache hit率)—–(inno_buffer_pool_read_requests、Innodb_buffer_pool_reads)
?????????????? 6)Data狀態(內存buffer中數據每秒讀、寫次數,每秒讀寫大小M)—-(Innodb_data_reads、Innodb_data_writes、Innodb_data_read、Innodb_data_written)
?????????????? 7)Log(log_fsync每秒日志sync到磁盤的次數,log每秒寫的大小M)—–(Innodb_os_log_fsyncs、Innodb_os_log_written)
?????????????? 8)線程狀態(每秒創建的線程數量)——(Threads_running、Threads_connected、Threads_created、Threads_cached)
?????????????? 9)每秒從客戶端接受或者發送的數據量M—(Bytes_received、Bytes_sent)
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!