【巡檢】MySQL巡檢到底巡檢什麼
** MySQL巡檢**
馬上迎來十一小長假,想想是不是有點小激動。但激動的同時也要了解一下MySQL服務器的狀態,以免在外旅遊的時候,和妹子啪啪的時候,突然來個報警,內心的奔潰的。。。。
一 。操作係統巡檢
如果有zabbix或者其他監控類型的工具,就方便了很多。首先看 CPU
內存 硬盤io的消耗程度。其中重點是硬盤使用率,要為十一小長假做好準備啊,避免十一期間業務寫入增長,磁盤占滿。每家業務不一樣,所以參考標準不一樣。
如果沒有zabbix 建議使用 sar
這個小工具,能夠收集曆史的信息。它的曆史數據在/var/log/sa
下麵,通過 -f 來指定文件。舉例
1.1 cpu資源監控
[root@mongodb01 data]# sar -u 10 3
Linux 2.6.32-642.el6.x86_64 (mongodb01) 09/22/2017 _x86_64_ (8 CPU)
10:26:44 AM CPU %user %nice %system %iowait %steal %idle
10:26:54 AM all 0.55 0.00 0.41 5.61 0.03 93.40
1.2 內存和交換空間監控
[root@mongodb01 data]# sar -r 10 3
Linux 2.6.32-642.el6.x86_64 (mongodb01) 09/22/2017 _x86_64_ (8 CPU)
10:28:36 AM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit
10:28:46 AM 223084 32658252 99.32 143468 16549080 18774068 37.81
1.3I/O和傳送速率監控
[root@mongodb01 data]# sar -b 10 3
Linux 2.6.32-642.el6.x86_64 (mongodb01) 09/22/2017 _x86_64_ (8 CPU)
10:30:25 AM tps rtps wtps bread/s bwrtn/s
10:30:35 AM 67.17 61.63 5.54 16169.99 86.20```
1.4係統交換活動信息監控
[root@mongodb01 data]# sar -w 10 3
Linux 2.6.32-642.el6.x86_64 (mongodb01) 09/22/2017 x86_64
10:31:56 AM proc/s cswch/s
10:32:06 AM 0.00 2234.44```
當然還有其他的監控項目,就不一一贅述了,還需要查看當前的磁盤和內存使用情況df -h
,free -m
,是否使用numa
和swap
是否頻繁交互 等信息。除此以外,還可以需要關注日誌類信息
例如
[root@mongodb01 data]# ll /var/log/messages
[root@mongodb01 data]# ll /var/log/dmesg
MySQL error log
MySQL 慢查詢日誌 等信息
二。MySQL本身巡檢
2.1重點參數
"innodb_buffer_pool_size"
"sync_binlog"
'binlog_format'
'innodb_flush_log_at_trx_commit':
'read_only':
'log_slave_updates'
'innodb_io_capacity'
'query_cache_type'
'query_cache_size'
'max_connections'
'max_connect_errors'
'server_id'
2.2MySQL的狀態
2.3MySQL 是否有鎖
如果有監控的話可以獲取監控信息,或者其他工具,如果沒有請定期收集MySQL鎖信息
INFORMATION_SCHEMA.INNODB_LOCKS;
INFORMATION_SCHEMA.INNODB_LOCK_WAITS;
參考一下《老司機帶你體驗SYS庫多種新玩法》這篇文章
2.4MySQ 自增id的使用情況
'SELECT table_schema,table_name,engine,Auto_increment FROM information_schema.tables whereINFORMATION_SCHEMA. TABLE_SCHEMA not in ("information_schema" ,"performance_schema","mysql")'
參考一下《老司機帶你體驗SYS庫多種新玩法》這篇文章
2.5 存儲引擎是否為innodb
INFORMATION_SCHEMA.TABLES engine=innodb
三 高可用巡檢
3.1.MHA && keepalived
觀察日誌看是否有頻繁主從切換,如果有分析一下是什麼原因進行頻繁切換
3.2中間件的巡檢
mycat && pproxysql 這些中間價的巡檢,首先參考係統巡檢,在過看一下中間價本身的日誌類,和狀態類信息,網絡延遲或丟包的檢查,也是必須要做工作
總結
關於巡檢來說,每個環境是不一樣的,所以xunj的側重點也是不一樣的,但基本的巡檢是避免不了的,如果有其他的巡檢姿勢也歡迎一起討論。順便 前幾天花1天的功夫寫了一個MySQL的巡檢,隻能巡檢MySQL的狀態和參數配置,(因為客戶的環境不能直連linux但可以直連MySQL)
https://github.com/enmotplinux/On-Site-Inspection
我的郵箱是tplinux@163.com 歡迎交流和拍磚
最後更新:2017-09-22 11:33:06