磁碟問題定位與解決

来源:http://www.cnblogs.com/zhuancloud/archive/2017/02/09/6380920.html
-Advertisement-
Play Games

磁碟問題定位基本流程: 磁碟的壓力分析,主要使用下麵幾個性能計數器 (針對單獨的物理盤,每個物理磁碟都會有一組): Avg. Disk Read Queue Length 讀隊列(越小越好,理想值 2 以下,隊列越高說明一個操作的響應時間越長) Avg. Disk Write Queue Lengt ...


磁碟問題定位基本流程:    

磁碟的壓力分析,主要使用下麵幾個性能計數器 (針對單獨的物理盤,每個物理磁碟都會有一組):

  1. Avg. Disk Read Queue Length   讀隊列(越小越好,理想值 2 以下,隊列越高說明一個操作的響應時間越長)
  2. Avg. Disk Write Queue Length  寫隊列(越小越好,理想值 2 以下,隊列越高說明一個操作的響應時間越長)
  3. Avg. Disk sec/Read  
  4. Avg. Disk sec/Write
  5. Disk Read Bytes/sec
  6. Disk Write Bytes/sec
  註:常規判斷系統磁碟壓力,通過讀寫隊列即可判斷,後面4個主要用於磁碟是否自身性能存在問題,本文不介紹。
   

步驟1.排除其他因素影響

    磁碟IO一般是整個資料庫的瓶頸,磁碟寫入速度的快慢直接影響著資料庫的性能,一般推薦資料庫伺服器不要與其他應用共用伺服器,同時也要儘量避免在資料庫伺服器上做大的文件處理工作。  

步驟2.磁碟問題定位

磁碟隊列計數器持續很高(Avg. Disk Read Queue Length、Avg. Disk Write Queue Length)

 

 

磁碟響應時間很長(磁碟隊列很高,請求需要排隊完成,所以表現為響應時間長)

 

 

磁碟隊列波動

 

 

 

 


 

 

步驟3.磁碟問題分析與解決(通用步驟)

 首先有哪些情況會對磁碟造成壓力?

    1. 記憶體不足導致需要頻繁和磁碟交互  (一般為主因)
    2. 經常有大量冷數據需要從磁碟讀取,或經常有大批量臟頁一次寫入(checkpoint觸發)
    3. 磁碟讀寫速度,不能滿足業務需要
    解決磁碟問題首先請診斷記憶體是否存在瓶頸,參照上一篇 -----記憶體問題定位與解決 如果記憶體不存在問題,請分析語句壓力,是否有不優化的語句(要查詢大量數據)需要從磁碟讀取。 並查看系統的文件磁碟規劃:

看一下這個系統的磁碟及資料庫文件分佈

   

 

   可以看到這個伺服器只配置了一塊物理磁碟

  

   資料庫1

   

   

資料庫2

   

   tempDB

   

 

 2個業務頻繁的大資料庫,數據文件、日誌文件和系統tempDB都在同一個磁碟上!這樣磁碟的讀寫速度勢必不能滿足業務要求。

  磁碟規劃建議:

       規劃磁碟分配的好處:假設你有兩個資料庫,業務操作都很繁忙,且讀/寫量都很大對磁碟的壓力都很大,那麼你自然會想到把他們分散到不同的磁碟上,這樣每個庫針對自己的磁碟讀/寫,不會互相影響且壓力相當於原來的1/2,從而可以提升磁碟操作的響應時間。

   資料庫磁碟該怎麼劃分? 不同系統不同環境可能都不相同,下麵給出一些簡單建議:

    1. 按照文件類型劃分:數據文件、日誌文件、tempDB文件、備份文件,分別放在一個物理磁碟
    2. 按照資料庫劃分:不同的業務資料庫(壓力大的)分別放在一個物理磁碟,tempDB和備份文件各一個物理磁碟。

   上面的兩種分法是基本的劃分方式,但是根據系統壓力系統配置,均有不同情況。

   當你的資料庫壓力較小,或磁碟資源緊張可以做適當的合併。當你的資料庫特別大,並且有多個文件組,也可以選擇把文件組更進一步細分。

   類似於做了分區表,不同分區放在不同磁碟上,當需要多個分區數據時,可以利用IO並行提升效率。


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

-Advertisement-
Play Games
更多相關文章
  • 一個小故事 某天,小王正在和HR妹妹閑聊,正HAPPY時,,突然收到系統告警消息,資料庫磁碟被剩餘空間500M,OMG,不行,磁碟快滿了,要是業務要停了,,那就小王只能刪庫到跑路了,,, 先檢查下,有沒有可以刪除的不用的文件,結果都是重要的或者拿不准的。先收縮下資料庫吧,點擊運行。等收縮完成就可以繼 ...
  • 1、 " DUAL 表 " 2、 " ROWID 類型 " 2.1、 "利用 ROWID 查詢數據" 2.2、 "利用 ROWID 更新數據" 3、 " NULL 值 " 3.1、 "NULL 與空字元串" 3.2、 "NULL 與函數" 3.3、 "NULL 與索引" 3.4、 "NULL 與 S ...
  • 遇到1000萬數據表 最近遇到一個問題,就是單表數據過1000萬的存儲及查詢問題。舉個例子:1000萬的數據存在一個表中,欄位4 5個樣子,日常 開發中難免要做過濾、排序、分頁。如果把這幾個放在一起即要過濾又要排序,還要分頁那麼數據量大一些就會發現特別慢。 10多年前剛入行時就聽許多的人討論分頁,說 ...
  • 為了保證資料庫中的業務數據不被非授權的用戶非法竊取,需要對資料庫的訪問者進行各種限制,而資料庫安全性控制措施主要有這三種,第一種用戶身份鑒別,手段可以是口令,磁卡,指紋等技術,只有擁有合法身份的人才可以進入資料庫。第二種存取許可權控制,不同角色,對資料庫的存取許可權是不同的,必須為每一個角色設置其訪問的... ...
  • 1.準備安裝源 下載地址: "https://www.postgresql.org/ftp/source/" 下載並解壓。 2.軟體編譯安裝 配置、檢查安裝環境 成功後,方可進入下一步。遇到問題參考 "[configure遇到的問題]" 編譯安裝 3.配置資料庫 內核參數配置 用戶配置 初始化資料庫 ...
  • USE [master] GO /****** Object: StoredProcedure [dbo].[p_comparestructure] Script Date: 02/09/2017 15:39:59 ******/ SET ANSI_NULLS ON GO SET QUOTED_ID... ...
  • 轉載地址:http://lobert.iteye.com/blog/1955841 前些天拿到一個表,將近有4000w數據,沒有任何索引,主鍵。(建這表的絕對是個人才) 這是一個日誌表,記錄了游戲中物品的產出與消耗,原先有一個後臺對這個表進行統計。。。。。(這要用超級電腦才能統計得出來吧),只能幫 ...
  • 在一個測試伺服器刪除發佈(Publication)時遇到下麵錯誤,具體如下所示 標題: Microsoft SQL Server Management Studio ------------------------------ Could not delete publication 'RPL_GE... ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...