這篇文章主要介紹了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 4)Page 狀態(buffer pool中的總頁數、free、dirty、每秒flushed的page數量)----(Innodb_buffer_pool_pages_flushed
5)使用 快取Hit(query cache hit)-----(inno_buffer_pool_read_requests< /Lnodb 6 )Data狀態(內存buffer中資料每秒讀、寫次數,每秒讀寫大小M)----(Innodb_data_reads<資料讀總次數>、Innodb_data_writes<資料寫的總次數>、Innodb_data_read<至此已讀取的資料量>、Innodb_data_written<至此已寫的資料量>)
7)Log(log_fsync日誌日誌sync到磁碟的次數,使用每秒寫入磁碟的數量) -(Innodb_os_log_fsyncs<寫入日誌檔案的總數>、Innodb_os_log_written<寫入日誌檔案的位元組數>)
-(Threads_running<啟動狀態的執行緒數>、Threads_connected<目前開啟的連線數量>、Threads_created<新執行緒的數量>、Threads_cached<gtgt;)
C999.從客戶端接受或傳送的資料量M---(Bytes_received、Bytes_sent)
以上是mysql innodb的監控(系統層,資料庫層)的實例程式碼詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!