磁碟問題定位與解決

z_cloud_for_SQL發表於2023-02-06
磁碟問題定位基本流程:
  

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

  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並行提升效率。


北京格瑞趨勢科技有限公司是聚焦於資料服務的高新技術企業,成立於2008年,創始團隊及核心技術人員來自微軟和雅虎。微軟資料平臺金牌合作伙伴,衛寧健康資料平臺戰略合作伙伴。透過產品+服務雙輪驅動的業務模式,14年間累計服務4000+客戶,覆蓋網際網路、市政、交通、電信、醫療、教育、電力、製造業等各個領域。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70023658/viewspace-2934144/,如需轉載,請註明出處,否則將追究法律責任。

相關文章