磁碟問題定位基本流程: 磁碟的壓力分析,主要使用下麵幾個性能計數器 (針對單獨的物理盤,每個物理磁碟都會有一組): Avg. Disk Read Queue Length 讀隊列(越小越好,理想值 2 以下,隊列越高說明一個操作的響應時間越長) Avg. Disk Write Queue Lengt ...
磁碟問題定位基本流程:
磁碟的壓力分析,主要使用下麵幾個性能計數器 (針對單獨的物理盤,每個物理磁碟都會有一組):
- Avg. Disk Read Queue Length 讀隊列(越小越好,理想值 2 以下,隊列越高說明一個操作的響應時間越長)
- Avg. Disk Write Queue Length 寫隊列(越小越好,理想值 2 以下,隊列越高說明一個操作的響應時間越長)
- Avg. Disk sec/Read
- Avg. Disk sec/Write
- Disk Read Bytes/sec
- Disk Write Bytes/sec
步驟1.排除其他因素影響
磁碟IO一般是整個資料庫的瓶頸,磁碟寫入速度的快慢直接影響著資料庫的性能,一般推薦資料庫伺服器不要與其他應用共用伺服器,同時也要儘量避免在資料庫伺服器上做大的文件處理工作。步驟2.磁碟問題定位
磁碟隊列計數器持續很高(Avg. Disk Read Queue Length、Avg. Disk Write Queue Length)
磁碟響應時間很長(磁碟隊列很高,請求需要排隊完成,所以表現為響應時間長)
磁碟隊列波動
讀
寫
步驟3.磁碟問題分析與解決(通用步驟)
首先有哪些情況會對磁碟造成壓力?
- 記憶體不足導致需要頻繁和磁碟交互 (一般為主因)
- 經常有大量冷數據需要從磁碟讀取,或經常有大批量臟頁一次寫入(checkpoint觸發)
- 磁碟讀寫速度,不能滿足業務需要
看一下這個系統的磁碟及資料庫文件分佈
可以看到這個伺服器只配置了一塊物理磁碟
資料庫1
資料庫2
tempDB
2個業務頻繁的大資料庫,數據文件、日誌文件和系統tempDB都在同一個磁碟上!這樣磁碟的讀寫速度勢必不能滿足業務要求。
磁碟規劃建議:規劃磁碟分配的好處:假設你有兩個資料庫,業務操作都很繁忙,且讀/寫量都很大對磁碟的壓力都很大,那麼你自然會想到把他們分散到不同的磁碟上,這樣每個庫針對自己的磁碟讀/寫,不會互相影響且壓力相當於原來的1/2,從而可以提升磁碟操作的響應時間。
資料庫磁碟該怎麼劃分? 不同系統不同環境可能都不相同,下麵給出一些簡單建議:
- 按照文件類型劃分:數據文件、日誌文件、tempDB文件、備份文件,分別放在一個物理磁碟
- 按照資料庫劃分:不同的業務資料庫(壓力大的)分別放在一個物理磁碟,tempDB和備份文件各一個物理磁碟。
上面的兩種分法是基本的劃分方式,但是根據系統壓力系統配置,均有不同情況。
當你的資料庫壓力較小,或磁碟資源緊張可以做適當的合併。當你的資料庫特別大,並且有多個文件組,也可以選擇把文件組更進一步細分。
類似於做了分區表,不同分區放在不同磁碟上,當需要多個分區數據時,可以利用IO並行提升效率。