久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

MySQL數據庫監控項的示例分析

131次閱讀
沒有評論

共計 5880 個字符,預計需要花費 15 分鐘才能閱讀完成。

這篇文章將為大家詳細講解有關 MySQL 數據庫監控項的示例分析,丸趣 TV 小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

監控項目
MYSQL.QPS                          
MYSQL.TPS                          
MYSQL.READS                        
MYSQL.WRITES                      
MYSQL.RWRATIO                      
MYSQL.KEY_BUFFER_READ_HITS        
MYSQL.KEY_BUFFER_WRITE_HITS        
MYSQL.QUERY_CACHE_HITS            
MYSQL.INNODB_BUFFER_READ_HITS      
MYSQL.THREAD_CACHE_HITS            
MYSQL.SLOW_QUERIES_PER_SECOND      
MYSQL.TEMP_TABLES_TO_DISK_RATIO    
MYSQL.TMP_DISK_TABLES_PER_SECOND  
MYSQL.SELECT_FULL_JOIN            
MYSQL.SELECT_FULL_JOIN_IN_ALL_SELECT
MYSQL.CONNECTIONS                  
MYSQL.CONNECTION_TIME              
MYSQL.INNODB_ROW_LOCK_CURRENT_WAITS
MYSQL.PROCESS_OF_MYSQLD            
MYSQL.HA_STATUS                    
MYSQL.SLAVE_STATUS                
MYSQL.TCP_COUNT                    
MYSQL.TCP_AVG                      
MYSQL.TCP_MAX                      
MYSQL.SLAVE_DELAYS                

一.MYSQL.QPS
定義:QPS 實際上是指 MySQL Server 過去 10 秒平均每秒執行的 Query 總量 (包括 show .select,set names,set global 等等);
計算公式:QPS=questions(當前值)-questions(10 秒前的值)/10
是否保留:是
報警閥值:視各個業務情況 (主要是 query 的復雜度) 及服務器配置設置. 大部分設置為 10000.
報警類型:大于 10000 嚴重. 大于 12000 災難

二.MYSQL.TPS
定義:TPS 指每秒向 mysql sever 提交的修改 (包含 update.insert.delete.replace);
老的計算方式:
T1=Handler_commit+Handler_rollback  (均為當前值)
T2= Handler _commit+ Handler _rollback  (均為 10s 之前值)
TPS=T1-T2/10
新的計算方式:
T1= Com_insert+ Com_replace+Com_delete+Com_update  (均為當前值)
T2= Com_insert+ Com_replace+Com_delete+Com_update  (均為 10s 之前值)
TPS=T1-T2/10
是否保留:是
報警閥值:視各個業務情況及服務器配置設置. 大部分設置為 4000.
報警類型:大于 4000 嚴重. 大于 6000 災難

三.MYSQL.READS
定義:READS 指每秒向 msyql sever 提交的讀請求次數 (僅指 select);
計算公式:
R1=com_select+ qcache_hits  (均為當前值)
R2=com_select+ qcache_hits  (均為 10 秒前的值)
READS=R1-R2/10
是否保留:是
報警閥值:

四.MYSQL.WRITES
定義:WRITERS 指每秒向 mysql server 提交的寫請求次數:
計算公式:
W1=com_insert+com_delete+com_update  (均為當前值)
W2=com_insert+com_delete+com_update  (均為 10s 之前的值)
WRITES=W1-W2/10
是否保留:不保留
去除原因:這個監控選項和 tps 重復.

五.MYSQL.RWRATIO
定義:RWRATIO 指自 mysql server 啟動以來的讀寫比例. 注意這里不是以 10s 前后來衡量的;
計算公式:
R= com_select+ qcache_hits(均為當前值)
W= com_insert+ com_delete+ com_update+ com_replace  (均為當前值)
RWRATIO=R/W(得出值保留小數點前的值)
是否保留:不保留
去除原因:這個監控選項可以間接通過 mysql.reads 和 mysql.tps 計算出來. 無需另外設置監控項。

六.MYSQL.KEY_BUFFER_READ_HITS
定義:KEY_BUFFER_READ_HITS 指 myisam 引擎向 key buffer 讀命中率的情況. 這個 buffer 用來存儲 myisam 的索引 key;
計算公式:
KEY_BUFFER_READ_HITS=(1-( key_reads/ key_read_requests))*100%  (均為當前值)
(得出值保留小數點前的值)
是否保留:不建議保留
去除原因:現在只有 sso 和酒仙橋 cms 是 myisam 引擎. 后續項目全部采用 innodb. 且這兩個項目會在合適時機會全部轉換為 innodb。且目前這個 2 個項目數據壓力穩定. 或者暫時只監控這 2 個業務. 更換引擎后在刪除此監控項。

七.MYSQL.KEY_BUFFER_WRITE_HITS
  定義:KEY_BUFFER_WRITE_HIT 指 myisam 引擎向 key buffer 寫入命中率的情況;
計算公式:
KEY_BUFFER_WRITE_HIT =(1-(key_writes/key_write_requests))*100 (均為當前值)
(得出值保留小數點前的值).
是否保留:不建議保留
去除原因:這個監控項只能體現 myisam 的命中率.myisam 在未來項目中將會被淘汰. 另外也沒有必要專門監控 mysiam 的 write 命中情況. 關注 key buffer 的總體命中情況. 更有意義。

八.MYSQL.QUERY_CACHE_HITS
定義:QUERY_CACHE_HITS 指查詢緩存的命中率情況. 值越高代表 query cache 作用越大. 從而降低引擎壓力. 在 mysql server 層返回用戶結果;
計算公式:
QUERY_CACHE_HITS =qcache_hits/(qcache_hits+ qcache_inserts) *100% (均為的當前值)
(得出值保留小數點前的值).
是否保留:不建議保留
去除原因:線上關鍵業務的修改量都比較大. 而且操作 query cache 是一個 global lock. 導致 經常發生 sql 停留在 Waiting for query cache lock 和失效 query cache 的狀態。另外. 一個業務如果超過 95% 的 sql 是 select. 才建議打開 query cache。

九.MYSQL.INNODB_BUFFER_READ_HITS
定義:INNODB_BUFFER_READ_HITS. 極為重要的一個狀態值. 反應 innodb 引擎所需數據在內存中的命中的情況。
計算公式:
INNODB_BUFFER_READ_HITS=(1-(innodb_buffer_pool_reads/innodb_buffer_pool_read_requests))*100%  (均為當前值)(得出值保留小數點前的值).
是否保留:保留
報警閥值:小于 95%
報警類型:小于 95% 警告

十.MYSQL.THREAD_CACHE_HITS
定義:THREAD_CACHE_HITS=(1-( threads_created/ connections))*100%  (均為當前值)
(得出值保留小數點前的值).
是否保留:保留
報警閥值:小于 90%
報警類型:小于 90% 警告

十一.MYSQL.SLOW_QUERIES_PER_SECOND
定義:SLOW_QUERIES_PER_SECOND 指每過去 10 秒平均每秒產生的 slow log 的總量;
計算公式:
SLOW_QUERIES_PER_SECOND = Slow_queries(當前值)- Slow_queries(10 秒之前的值)/10
是否保留:保留
報警閥值:
報警類型:

十二.MYSQL.TEMP_TABLES_TO_DISK_RATIO
定義:TEMP_TABLES_TO_DISK_RATIO 指在硬盤上創建臨時表的幾率, 越小越好. 代表臨時表都創建在內存中。
計算公式:
TEMP_TABLES_TO_DISK_RATIO=(created_tmp_disk_tables/ created_tmp_tables)*100%
(均為當前值)(得出值保留小數點前的值).
是否保留:不建議保留
去除原因:了解 sql 性能是否存在問題. 不應該僅關注這個比率. 一條性能很差的 sql 產生磁盤臨時表對性能的影響可能比 100 條產生內存臨時表的 sql 大很多。應該積極關注慢查詢中那些執行時間非常長 sql。

十三.MYSQL.TMP_DISK_TABLES_PER_SECOND
定義:TMP_DISK_TABLES_PER_SECOND 指過去 10 秒內每秒創建磁盤臨時表的數量;
計算公式:
TMP_DISK_TABLES_PER_SECOND=created_tmp_disk_tables(當前值)-created_tmp_disk_tables(10 秒之前的值)/10
是否保留:建議保留
報警閥值:
報警類型: 

十四.MYSQL.SELECT_FULL_JOIN
  定義:SELECT_FULL_JOIN 指每秒執行 full join 的總量. 這個參數一般發生在 join 過程中沒有使用索引的情況;
計算公式:
SELECT_FULL_JOIN= Select_full_join(當前值)- Select_full_join(10 秒之前的值)/10
是否保留:不建議保留
去除原因:并不是沒有利用索引的 join 性能就很差. 對于不合理的 sql. 如果帶來性能影響. 可以打開慢查詢根據進行調優.full join 可能只是其中一個原因。一些小表的 full join 對性能沖擊很小。

十五.MYSQL.SELECT_FULL_JOIN_IN_ALL_SELECT
定義:SELECT_FULL_JOIN_IN_ALL_SELECT 指過去 10 秒鐘里面.full join 占總 select 的比例;
計算公式:
S1= select_full_join(當前值)- select_full_join(10 秒之前的值)
S2= com_select(當前值)- com_select(10 秒之前的值)
SELECT_FULL_JOIN_IN_ALL_SELECT=s1/s2*100%(得出值保留小數點前的值).
是否保留:不建議保留
去除原因:理由同上  

十六.MYSQL.CONNECTIONS  
定義:CONNECTIONS 指自 mysql server 啟動以來一共產生的連接數. 這個值不能反映當前連接數. 建議用 Threads_connected 來衡量;
新的計算方式:CONNECTIONS= Threads_connected(當前值)
是否保留:保留
報警閥值:800
報警類型:大于 800 嚴重. 大于 1500 災難  

十七.MYSQL.CONNECTION_TIME
定義: 從 mysql server 所在服務器上發送一個簡單的查詢所需要的時間。
是否保留:不建議保留
去除原因:tcp_average 比此參數更具參考價值. 因為這個 time 是朝服務器本身發送請求. 而 tcp average 關注的是應用 ip 向 db server 統計出來的時間。

十八.MYSQL.INNODB_ROW_LOCK_CURRENT_WAITS(新增)
定義:INNODB_ROW_LOCK_CURRENT_WAITS. 因為公司大部分引擎都是 innodb. 所以有必要監控 innodb 行鎖的等待情況. 狀態值反應了過去 10 秒有幾個 sql 處于等待 row lock 的狀態。
計算公式:INNODB_ROW_LOCK_CURRENT_WAITS= Innodb_row_lock_current_waits(當前值)
是否保留:保留
報警閥值:無
報警類型:無

十九.MYSQL.PROCESS_OF_MYSQLD
定義:process_of_mysqld 用來監控 mysqld 的進程數. 如果返回 0. 表示 mysqld 進程掛掉。
是否保留:保留
報警閥值:為 0 則報警
報警類型:災難

二十.MYSQL.HA_STATUS
定義:ha_status 用來監控 MHA 進程是否存在. 如果返回 0. 表示由于 MHA 的切換導致 MHA 自動退出. 或者 MHA 服務沒有啟動。
是否保留:保留
報警閥值:為 0 則報警
報警類型:嚴重

二十一.MYSQL.SLAVE_STATUS
定義:mysql.slave_status 用來監控 slave 的 io thread 和 sql thread. 如果任意一個線程的狀態為 no. 則返回 0. 否則返回 1。
是否保留:保留
報警閥值:為 0 則報警
報警類型:嚴重

二十二:MYSQL.TCP_COUNT
定義:利用 percona 的 tcprstat 從底層探測平均每秒發送到 mysql server 的請求數. 而不是在 mysql server 的內部進行統計。
是否保留:不建議保留
去除原因:這個監控的結果和 qps 的數目一致. 重復監控

二十三:MYSQL.TCP_AVG
定義:每秒內發送到 mysql server 所有請求的平均響應時間. 此值大. 表明 mysql server 異常. 對請求做出響應的時間過長。單位為微妙。
是否保留:保留
報警閥值:無
報警類型:無

二十四:MYSQL.TCP_MAX
定義:過去一秒內. 發送到 mysql server 所有請求中響應時間最長的請求所花費的時間。單位為微妙。
是否保留:保留
報警閥值:無
報警類型:無

二十一.MYSQL.SLAVE_DELAYS
定義:mysql.slave_delay 用來監控 slave 的 sql thread 同步 master 是否有延遲. 如果有. 返回延遲的秒數. 如果沒有延遲. 返回空
是否保留:保留
報警閥值:1200
報警類型:大于 1200 嚴重. 大于 3600 災難

關于“MySQL 數據庫監控項的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-27發表,共計5880字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 巴林右旗| 亳州市| 正镶白旗| 六安市| 登封市| 健康| 庄河市| 康平县| 秭归县| 临夏市| 特克斯县| 江川县| 敦煌市| 光山县| 宜阳县| 城市| 汝城县| 延吉市| 衡水市| 车致| 六安市| 曲阳县| 武定县| 安徽省| 格尔木市| 怀集县| 石渠县| 光泽县| 伊春市| 锡林郭勒盟| 太和县| 绵阳市| 墨玉县| 勃利县| 五河县| 全椒县| 稷山县| 青田县| 广宗县| 大埔县| 曲松县|