SQLSERVER 資料庫效能的基本

zping發表於2018-03-06

  在系統正式上線之前,DBA一般都要測試一下伺服器的效能

正文

隨著市場份額的SQL Server的發展隨著時間的推移,有越來越多的對SQL伺服器效能調優的需求。

有不同的團隊和個人採用各種各樣的方法提高SQLSERVER伺服器的效能,

而且我認為這些記錄SQLSERVER troubleshooting 的基本步驟和提高各種程式效能的文件對SQLSERVER社群是有意義的

 

磁碟

為了SQLSERVER能有效執行,監控和優化SQLSERVER的磁碟子系統是一個重要的方面

我們需要非常明確磁碟的效能需求

Avg. Disk Sec/Read 這個計數器是指每秒從磁碟讀取資料的平均值

下面的列表顯示這個計數器值的範圍,並指出這個計數器所處範圍的意思

少於 10 ms - 非常好
在 10 - 20 ms 之間- 還可以
在 20 - 50 ms 之間- 慢,需要關注
大於 50 ms –嚴重的 I/O 瓶頸

 

磁碟效能測試工具

(1)CrystalDiskMark

(2)HDTUNE 硬碟檢測修復工具 

(3)ATTO Disk Benchmark 

 

 

 

辨別I/O瓶頸

PhysicalDisk Object:Avg. Disk Queue:所選物理磁碟在取樣期間被排隊的磁碟讀寫請求平均值

如果你的磁碟佇列長度經常超出SQLSERVER磁碟使用峰值的2倍,那意味著可能有I/O瓶頸了

 

Avg. Disk Sec/Read:每秒從磁碟讀取資料的平均值 

Avg. Disk Sec/Write:寫入資料到磁碟的平均時間,Avg. Disk Sec/Read參考指標

Physical Disk:%Disk Time磁碟時間是所選磁碟驅動器繁忙處理讀寫請求時所花時間的百分比,一個指標就是如果這個值大於50%,那麼就存在I/O瓶頸

Avg. Disk Reads/Sec:在磁碟上的讀操作的比率。確保這個數字小於磁碟吞吐量的85%。當這個值超過85%磁碟訪問時間會以指數式增長

Avg. Disk Writes/Sec c:在磁碟上的寫操作的比率。確保這個數字小於磁碟吞吐量的85%。當這個值超過85%磁碟訪問時間會以指數式增長

 

對於更多的資訊,可以參考“如何建立效能計數器集”:http://technet.microsoft.com/en-us/library/cc722148.aspx

 

磁碟驅動器的位置

為了不同的目的,你需要使用不同的驅動器來存放下面的東西
獨立的磁碟延時需求:
資料庫大於15ms

事務日誌大於2ms

Tempdb資料庫大於2ms

 

磁碟速度的優先順序

意思是說,Tempdb放在單獨的物理磁碟,事務日誌檔案放在單獨的物理磁碟,資料檔案放在單獨的物理磁碟,作業系統放在單獨的物理磁碟,

資料庫備份檔案放在單獨的物理磁碟

 

一般我們的做法:不可能有那麼多單獨的物理磁碟,一般就是做了磁碟陣列的儲存

C盤放作業系統檔案

D盤放資料檔案和事務日誌檔案 和Tempdb資料檔案和Tempdb日誌檔案

E盤放資料庫備份檔案

 

使用Performance Monitor (Perfmon.exe)來監控系統效能

為了捕獲SQLSERVER特定的效能指標,你需要使用下面的計數器

Processor: % Processor Time  :平均應該低於75% (最好低於50%)   

System: Processor Queue Length:平均每個邏輯CPU應該低於2,例如在一個2邏輯CPU的機器上,他應該保持在4

Memory—Pages/sec:平均應該低於20(最好低於15%)

Memory—Available Bytes :可用記憶體應該保持在50MB以上

Physical Disk—% Disk Time:
Physical Disk—Avg. Disk Queue Length :每個磁碟平均應該低於2,例如:一個RAID5磁碟,這個指標應該平均低於10

Physical Disk—Avg. Disk Reads/sec :取決於CPU和磁碟的大小,應該低於相對應磁碟的吞吐量的85%

Network Interface—Bytes Total/sec :用於統計網路頻寬方


SQL Server: Buffer Manager—Page Life Expectancy:用於統計記憶體,應該保持在300秒
SQL Server: 一般統計使用者的連線數 來估計大概使用的記憶體
SQL Server: Databases— Transactions/sec :每秒的事務數
SQL Server: Databases—Data File(s) Size KB:用於統計資料庫資料檔案的大小,衡量磁碟子系統的效能
SQL Server: Databases—Percent Log :衡量磁碟子系統的效能

 

相關文章