《2019年貝殼找房數據庫故障自動診斷實踐 貝殼找房任數據庫組負責人.pdf》由會員分享,可在線閱讀,更多相關《2019年貝殼找房數據庫故障自動診斷實踐 貝殼找房任數據庫組負責人.pdf(32頁珍藏版)》請在三個皮匠報告上搜索。
1、中國軟件技術大會CHINA SOFTWARE TECHNOLOGY CONFERENCE貝殼找房數據庫故障診斷實踐主題大綱 人工困局 智能解決 生產實踐人工困局報警來了!人工處理故障困境人工處理場景下,運維人員通常選擇 7*24 小時值班,接收大量的報警,隨時準備在緊急情況下進行響應、決策、操作一系列故障止損動作,盡量挽回服務損失,降低故障影響。但上述解決方案會面臨如下問題:響應可能不夠迅速:例如夜間報警決策可能不夠精確:例如新手經驗欠缺,誤決策操作可能出現失誤:例如止損命令錯誤輸入SLA 要求SLA季度不可用時長99%21.6小時99.9%2.16小時99.95%64.8分鐘99.99%12
2、.96分鐘剛打開電腦,SLA 就沒了行業現狀NoahCloudDBAMetis智能解決主動檢查報警回調診斷觸發DNS-域名綁定CMDB-服務詳情信息收集Prometheus數據服務樹-關聯信息收集-文本Grafana-截圖機器學習聚類啟發式策略分析診斷分析信息反饋診斷報告報警歷史統計故障類型標記報警管理數據庫控制臺IM(PC+手機)診斷結果故障處理主動防御故障自愈Logan服務架構(Logan)故障診斷效率100%覆蓋線上 182 種數據庫監控報警策略168 種診斷方案36 種自動恢復工具從人工診斷 5 分鐘起減少到自動診斷平均 12.9 秒每日報警 50+次,至少可節省值班人 0.4 人日收
3、到報警不需要再登錄服務器、不需要點開各種平臺看監控指標,直接決策止損300秒12.9秒人工診斷自動診斷診斷耗時分類分類文檔名稱文檔名稱MySQL數據庫故障處理預案Long Query 報警分析及處理Seconds_Behind_Master 報警分析及處理Threads_running 報警分析及處理Redis主庫故障處理預案內存報警分析及處理網卡報警分析及處理通用SWAP 使用率報警分析及處理基于資源隔離的數據庫降級預案常見報警項示例解讀故障處理手段故障處理手段預估處理耗時預估處理耗時適用數據庫適用數據庫SQL 封禁5minMySQLSQL 查殺5minMySQL主庫高可用切換5min通用域
4、名變更5min通用擴 SWAP1hour通用數據庫資源隔離5min通用Redis 擴內存5minRedisRedis 加從庫15minRedis數據庫故障預案數據庫報警統計減少無效報警發現重復問題優化夜間報警20010數據庫專家系統13761871154411711MySQLRedisLinux監控項核心指標可靠的專家系統,擺脫經驗限制,研發也能秒懂大浪淘沙,收斂聚合,排除干擾VPN企微+移動運維報警聯動報警聯動機器人切主庫殺連接重啟服務重做數據 人將故障處理流程自動化多個止損方案作決策生產實踐故障診斷啟發式算法故障類型故障類型故障故障診斷診斷套餐套餐檢查點檢查點Redis內存報警Redis內
5、存檢查套餐Redis實例相關各項內存指標(用戶數據/客戶端緩沖/aof等),服務器內存余量等MySQL主從延遲主從延遲檢查套餐線上流量情況,從庫慢查詢情況,從庫的CPU負載/IO負載/網絡情況等MongoDB cpu報警MongoDB cpu檢查套餐線上流量情況,慢查詢情況,服務器上CPU占用進程的TOPN等服務器磁盤報警服務器磁盤檢查套餐服務器各關鍵路徑下(數據/日志)的磁盤占用情況,線上流量情況等主動檢查主動檢查主動檢查套餐根據存儲類型的不同(MySQL/Redis),檢查不同的常規檢查項故障診斷啟發式算法MySQLRedisMongoDBMySQL_slave_running.yamlM
6、ySQL-Swap_Use.yamlRedis_net_output.yamlRedis_Memory_URate.yamlMongoDB-Net_Out_.yamlMongoDB-Swap.yamlmysql_error_log.shlinux_swap.shlinux_mem.shmysql_show_slave_status.shlinux_iftop.shRedis_mem.pyMongo_net.sh報警相似度關聯歐氏距離Levenshtein 距離皮爾遜相關系數余弦相似度Jaccard 系數Tanimoto 系數報警相似度關聯(Levenshtein距離)兩個語句之間的 Leven
7、shtein 距離是將一個單詞轉換為另一個單詞所需的單字符編輯(插入、刪除或替換)的最小數量。1965 年由蘇聯數學家 Vladimir Levenshtein 發明,也被稱為編輯距離。報警時序關聯(Gantt Graph)甘特圖優點圖形化顯示每個報警事件的開始時間,結束時間,以及故障持續時間時間上有同時發生、同時結束、前后繼承、重疊交叉等情況更加直觀通過不同顏色標記區分不同事件類型或當前狀態,感觀刺激強烈故障診斷根因分析機器故障MySQL 連接拒絕Ping 監控報警從庫同步中斷高可用切換報警服務恢復報警應用異常報警域名監控報警故障診斷機器學習數據選取數據預處理特征提取建模算法選擇模型評估上線
8、部署數據訓練數據獲取數據源數據準備參數調優故障診斷原因分類一級分類 二級分類解釋說明業務類流量異常流量突增,并發過高,批量任務等原因引起的故障,例如網卡打滿,主從延遲業務類索引設計缺陷 索引缺失,冗余,索引列順序不當數據庫類參數配置不當 連接參數,性能參數,其它參數數據庫類容量不足例如磁盤打滿,內存打滿,QPS裕度不足服務器類硬件故障內存/CPU/硬盤/網卡 等方面的故障服務器類資源搶占服務器上其它進程占用了大量資源,導致數據庫性能受到影響非技術類誤報監控系統的問題或監控配置不當等原因導致的誤報故障診斷原因分類機器學習Apriori 算法顧客購物清單A面包,牛奶B面包,牛奶,炸雞,可樂C面包,
9、炸雞,啤酒,雞蛋D牛奶,尿布,啤酒,可樂E面包,牛奶,炸雞,啤酒Apriori 算法是一種無監督的機器學習算法,就是在海量的數據做關聯分析,從而找到頻繁項集和關聯規則。頻繁項集:經常出現在一塊物品的集合。關聯規則:暗示頻繁項集物品之間可能存在很強的關聯。定理:如果某個項集是頻繁項,那么它所有的子集也是頻繁項。如果一個項集是非頻繁項,那么他的所有超集也是非頻繁項。早餐午餐?晚餐?夜宵?零食?故障根因分析Apriori 算法同步延遲同步中斷主庫無法訪問故障原因硬件故障人工關機網絡中斷機器學習K 階最近鄰特征項特征項(x1xn)類別類別cpu_idleIo_utilnet_outputslow_ptconnectedreason2080%200500500原因12595%501701000原因19030%3055000原因23575%50300100原因18923%40153500原因2故障自愈123故障故障自愈自愈風險性低風險性低,適合適合自愈自愈的的,直接處理直接處理風險性較的,風險性較的,給出分析結果給出分析結果和和優化建議,優化建議,輔助處理輔助處理總結規律,總結規律,逐步逐步擴擴自愈自愈范圍范圍磁盤空間不足內存空間不足慢查詢優化流量突增主從延遲連接打滿長事務報警愿景報警前報警時看我帥氣 Hold 住全場泰山崩于前而色不改謝謝謝謝