故障排查實戰案例——某電器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
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...