閱讀224 返回首頁    go 阿裏雲 go 技術社區[雲棲]


【巡檢】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 -hfree -m,是否使用numaswap 是否頻繁交互 等信息。除此以外,還可以需要關注日誌類信息
例如

[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

  上一篇:go  麵試技巧,如何通過索引說數據庫優化能力
  下一篇:go  【喜大普奔】GN5i華東華南可以購買啦