故障排查實戰案例——某電器ERP系統日誌暴增

来源:http://www.cnblogs.com/double-K/archive/2017/01/20/6323364.html
-Advertisement-
Play Games

前言 本篇文章寫在新春佳節前夕,也是給IT運維朋友一個警醒,在春節長假前請妥善體檢自己的系統安心過個年。 千里之堤毀於蟻穴,一條看似簡單的語句就能拖垮整個系統,您的SQL Server很久沒體檢了吧? 就像一塊藏著刀片的蛋糕!怎能安度春節? 日誌暴增的問題處理過很多,這隻是很常規的一次,但是對於不是 ...


前言

  本篇文章寫在新春佳節前夕,也是給IT運維朋友一個警醒,在春節長假前請妥善體檢自己的系統安心過個年。

  千里之堤毀於蟻穴,一條看似簡單的語句就能拖垮整個系統,您的SQL Server很久沒體檢了吧? 就像一塊藏著刀片的蛋糕!怎能安度春節?

  日誌暴增的問題處理過很多,這隻是很常規的一次,但是對於不是很熟練的運維兄弟,可能日誌暴增這樣的問題會被一帶而過,或者解釋成突發情況而不去處理,那麼隱患依然存在,在春節這樣的長假髮生可怎麼辦呢?

 

  本文使用的工具:SQL專家雲平臺專業體檢工具 :www.zhuancloud.com

場景描述

  本案例是一個很成熟的ERP廠商的產品,接到用戶緊急電話,說他們日誌突然暴增磁碟告警,50G的資料庫日誌已經達到200G。

  

 

  看到這有的看官可能會說,肯定是沒定時做日誌備份導致日誌不斷變大!或者說才200G 一點也不大呀!

  沒錯,日誌不備份缺失會有這樣的問題,但這情景是小兒科,不會拿出來寫案例的,200G 確實也不大,但要分場景,在此客戶平均10個G 的場景下 200G已經是爆炸式的問題了!

  為什麼會拿出來寫案例,就是因為想要告訴大家排查這樣問題的思路,不要讓這樣的暴增單純的說成突發情況!

問題分析

  拿到收集文件我直入主題,查看日誌的增長情況、寫入狀態、問題時間點等信息

  

 

  在日誌的分配空間我們瞭解到日誌是在11點43分左右突然暴增一直增長到13點左右達到240G

  

 

  分配空間也是同樣的情況在11點43分左右暴增,後期在1點半的下降就是日誌備份讓使用空間被釋放。

  

  

  日誌文件的寫入也符合這個時間點,在11點43分左右寫入達到40MB/秒,並且持續了1個多小時。

  

 

   通過這幾張圖,我們很清晰的就能定位到日誌暴增的時間點,下麵只要找到對應時間點的語句即可!

  我的排查思路有些不同,持續1個小時的寫入,必然伴隨著日誌文件的增長(文件增長設置固定值100MB),這裡需要提一下:這就是固定增長的好處,因為當達到240G 如果按照預設10%增長,那麼一次需要增24G 磁碟已經沒有那麼多空間,則會導致報錯,系統中斷!

  回到排查思路,這裡我直接查看對應時間點系統的等待情況:

  

 

  直接找到日誌文件增長的等待類型,查看運行的語句確實運行時間是從11點15到13點15,和日誌增長的情況吻合!!

  就這樣,只花了10分鐘就定位到問題,找到語句,由於存儲過程加密,我無法看到裡面的代碼,但是暴增的語句已經找到,需要軟體廠商自行處理啦!!

  就是這樣簡單,打完收工!所以不要放過這樣的問題排查!

後怕

  為什麼說不能放過這樣問題的排查!!!

  首先,這個系統正準備上集群,集群大家都知道單機變多台,必然涉及到數據的同步,同步是要有消耗的,對寫入的性能會有影響,細心的小伙伴可能已經看到這個語句消耗了多少資源,邏輯讀,寫,影響行數有多少了

  

 

  沒錯,64億的邏輯讀!為什麼會產生這麼大的日誌,導致暴增!因為寫入1億次,影響行數19億,並且執行的時間不是在夜間的維護期,而是在中午11點15開始,這麼大的處理在集群方案部署的時候一定要高度警惕,這麼大的同步量完全可能導致集群嚴重延遲,甚至宕機!所以這不單單是一次日誌暴增問題的排查了,也是對系統功能更加細緻的瞭解,如果這樣的問題沒有及早發現,就算集群後期測試也不一定會被測試到,進而導致集群上線後的悲催。

 

 

PS:繼邏輯讀 23億,34億,45億後這個案例有刷新了我見過的最大邏輯讀 64億!

  紀念一下

 

 

 

--------------博客地址---------------------------------------------------------------------------------------

博客地址 http://www.cnblogs.com/double-K/

 

 歡迎轉載,請註明出處,謝謝!

-----------------------------------------------------------------------------------------------------

總結

  系統運維就是保證系統平穩運行的工作,看似簡單但個中奧妙和心酸只有運維人才能體會,不要放過每一個細節,一個簡單突發情況處理可能引出一系列問題,而解決這些問題又是保證系統平穩運行基礎,請給運維人多一些關愛吧,比如春節來個大紅包,哇哈哈哈哈!!

  有的小伙伴已經開始春節休假了,祝大家新春快樂,系統平安!

 ----------------------------------------------------------------------------------------------------

註:此文章為原創,歡迎轉載,請在文章頁面明顯位置給出此文鏈接!
若您覺得這篇文章還不錯請點擊下右下角的推薦,非常感謝!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • /*可以更改列的大小,只要將滑鼠指針懸停到該列標題的右邊界,再單擊並拖動該列邊界到合適的位置。雙擊右邊界使得該列自動調整大小如果選擇幾個單元,然後將其剪切並複製到其他網格,則這幾個單元可作為單獨的單元處理(如果選擇"以文本格式顯示結果"選項,剪切的數據會全部粘帖到一個單元格中)可以從多行只選擇一列或 ...
  • Java代碼 Java代碼 關註流行國外網站 facebook:http://www.fb-on.com facebook官網:http://www.facebookzh.com facebook:http://www.cn-face-book.com youtube:http://www.yout ...
  • AlwaysOn是在SQL Server 2012中新引入的一種高可用技術,從名稱中可以看出,AlwaysOn的設計目標是保持資料庫系統永遠可用。AlwaysOn利用了Windows伺服器故障轉移集群(Windows Server Failover Clustering,簡稱WSFC)的健康檢測和自 ...
  • /*僅返回一個結果集,且該結果只有很窄的幾列想要以單個文本文件來保存返回結果返回多個結果集,但該結果比較小,且不需要使用多個滾動條就可以在同一頁面上查看多個結果集。*/ ...
  • 一、前言 今天天氣很好,大晴天,心情也好好的。就將MySQL常用的語句總結一下,記錄在隨筆里,也順便分享分享。日後,這篇隨筆我將會持續更新,作為我自己的MySQL語句大全。 二、常用SQL語句 我將由外到里進行編寫(資料庫到表再到數據) 庫層: 1、SHOW DATABASES; 2、CREATE ...
  • 這是一本書的名字,叫做【Hadoop大數據分析與挖掘實戰】,我從2017.1開始學習 軟體版本為Centos6.4 64bit,VMware,Hadoop2.6.0,JDK1.7. 但是這本書的出版時間為2016.1,待到我2017.1使用時,一部分內容已經發生了翻天覆地的變化。 於是我開始寫這麼一... ...
  • pyspark 包介紹 子包 pyspark.sql module pyspark.streaming module pyspark.ml package pyspark.mllib package 子包 pyspark.sql module pyspark.streaming module pys ...
  • Redis簡介 Redis是用C語言開發的一個開源的高性能鍵值對(key-value)資料庫。它通過提供多種鍵值數據類型來適應不同場景下的存儲需求,目前為止Redis支持的鍵值數據類型如 下: 字元串類型(String) 哈希類型(hash) 列表類型(list) 集合類型(set) 有序集合類型( ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...