共計 1963 個字符,預計需要花費 5 分鐘才能閱讀完成。
本篇文章為大家展示了 percona 監(jiān)控 mysql 的幾張圖形是怎樣的,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
percona 監(jiān)控 mysql 的幾張圖形解釋
最近,我仔細研究了一下 percona 監(jiān)控 mysql 的幾張圖的含義。
Com_XXX 表示每個 XXX 語句執(zhí)行的次數(shù)如:
Com_select 執(zhí)行 select 操作的次數(shù),一次查詢只累計加 1
Com_update 執(zhí)行 update 操作的次數(shù)
Com_insert 執(zhí)行 insert 操作的次數(shù),對批量插入只算一次。
Com_delete 執(zhí)行 delete 操作的次數(shù)
只針對于 InnoDB 存儲引擎的操作次數(shù):
Innodb_rows_deleted 從 InnoDB 表刪除的行數(shù)。
Innodb_rows_inserted 插入到 InnoDB 表的行數(shù)。
Innodb_rows_read 從 InnoDB 表讀取的行數(shù)。
Innodb_rows_updated InnoDB 表內更新的行數(shù)。
上圖數(shù)據(jù)來源于: show global status like %innodb_row%
InnoDB semaphore
InnoDB 信號量圖顯示有關 InnoDB 信號量活動的信息:旋轉輪數(shù),旋轉
等待,操作系統(tǒng)等待。您可能會看到這些圖在高并發(fā)或爭用期間出現(xiàn)峰值。這些圖表
基本上表示獲取行鎖或互斥鎖所涉及的不同類型的活動,這是導致性能不佳的原因
在某些情況下,縮放。
上面數(shù)據(jù)來源于:
mysql show engine innodb status \G;
SEMAPHORES(信號量)
OS WAIT ARRAY INFO: reservation count 6428579
OS WAIT ARRAY INFO: signal count 6391102
Mutex spin waits 10807638, rounds 51362184, OS waits 1135246
RW-shared spins 5183147, rounds 154424701, OS waits 5133668
RW-excl spins 187041, rounds 4866289, OS waits 132629
Spin rounds per wait: 4.75 mutex, 29.79 RW-shared, 26.02 RW-excl
czxin 注釋:spin waits 和 spin rounds 的數(shù)量。相較于系統(tǒng)等待,自旋鎖是低成本的等待;不過它是一個活躍的等待,會浪費一些 cpu 資源。因此如果看到大量的自旋等待和自旋輪轉,則很顯然它浪費 了很多 cpu 資源。浪費 cpu 時間和無謂的上下文切換之間可以用 innodb_sync_spin_loops 來平衡。
reservation count 和 signal count 顯示了 innodb 使用內部同步陣列的活躍程度 – 時間片 (slot) 分配以及線程信號使用同步陣列的頻繁程度。這些統(tǒng)計信息可以用于表示 innodb 回退到系統(tǒng)等待的頻率。還有關于系統(tǒng)等待的直接相關信息,可以看到 OS Waits 的互斥信號燈 (mutexes),以及讀寫鎖。這些信息中顯示了互斥鎖和共享鎖。系統(tǒng)等待和 保留(reservation) 不完全一樣,在回退到用 sync_array 的復雜等待模式前,innodb 會嘗試 輸出(yield) 到系統(tǒng),希望下一次調度時間對象里命名線程已經(jīng)釋放了。系統(tǒng)等待相對較慢,如果每秒發(fā)生了上萬次系統(tǒng)等待,則可能會有問題。另一個觀察方法是查看系統(tǒng)狀態(tài) 中的上下文(context) 交換頻率。
鎖資源
上圖表示行鎖的等待。
innodb_lock_wait 指的是不能立即獲取行鎖而需要等待的次數(shù) / 每秒。
上圖的數(shù)據(jù)來源于 show global status like innodb_lock_wait
MySQL table locks
上圖表示的是表級鎖的等待
Table_locks_immediate 指的是能夠立即獲得表級鎖的次數(shù) / 每秒,
Table_locks_waited 指的是不能立即獲取表級鎖而需要等待的次數(shù) / 每秒。
上圖數(shù)據(jù)來源于 show global status like %table_lock%
Innodb table in use
InnoDB Tables In Use(使用中的 InnoDB 表)圖顯示了 InnoDB 有多少表在使用中以及有多少表被鎖定。如果有
在這些圖中,您可能還會看到鎖等待中的峰值以及查詢之間的其他爭用跡象。
上面的 innodb tables in use 和 innodb locked tables 兩個參數(shù)值來自于 show engine innodb status \G; 搜索 table 即可找到。注意這兩個值不是每秒的值,而是真實值。
上述內容就是 percona 監(jiān)控 mysql 的幾張圖形是怎樣的,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注丸趣 TV 行業(yè)資訊頻道。