Mysql資料庫監控
一、當前執行緒連線數
show global status like 'threads_%';
Threads_cached:當前此時此刻執行緒快取中有多少空閒執行緒;
Threads_connected:代表當前已建立連線的數量,因為一個連線需要一個執行緒,也可以看成當前被使用的執行緒數;
Threads_created:代表從最近一次服務啟動,已經建立執行緒的數量;
Threads_running:代表當前啟用(非睡眠)的執行緒數。
二、連線數和最大連線數
show global status like '%connections';
Connections
Max_used_connections:伺服器啟動後已經同時使用的連線的最大數量(這個是連線的最大峰值,主要和引數max_connections對比來決定是否調整引數)
執行緒快取命中率=1-Threads_created/Connections。
三、連線失敗的執行緒
show global status like '%abort%';
Aborted_clients:當ablort clients增大的時候意味著有客戶端成功建立連線,但是很快就斷開連線或者被終止了,這種情況一般發生在網路不穩定的環境中。
a)客戶端沒有主動關閉mysql連線mysql_close()
b)wait_timeout設定很短被mysql幹掉了
c)客戶端由於某些原因被幹掉了,異常終止
Aborted_connects:當有大量的連結連線不上mysql的時候,這個數值就會激增。
a)沒有授權或者密碼不對,一般錯誤日誌中會有如下報錯(Access denied for ‘user’@‘host’)
b)連線數滿了,一般報錯包含(too many connections)
c)超過連結時間限制,主要由這個引數控制connect_timeout(mysql預設是10s,基本除非網路環境極端不好,一般不會超時。)
四、鎖相關的狀態量
show global status like '%table_lock%';
五、慢查詢次數相關的狀態量
show global status like '%slow_queries%';
QPS(每秒Query數,針對於innodb儲存引擎)
TPS(每秒事務數,針對於innodb儲存引擎)