很久沒有寫文章了,在系統正式上線之前,DBA一般都要測試一下服務器的性能
比如你有很多的服務器,有些做web服務器,有些做緩存服務器,有些做文件服務器,有些做數據庫服務器
做數據庫服務器的那台服務器性能要相對較好,磁盤,內存,CPU等等,
那麼在選用其中某一台服務器作為數據庫服務器之前需要測試每一台服務器的性能
並且需要設置一些硬件的參數,例如設置磁盤控制器的參數,參考文章:Writeback和Writethrough區別
那麼具體怎麽測試呢?怎麽得出測試指標呢?
大家可以參考這篇文章:SQL Server Database Engine Performance Tuning Basics
正文
隨著市場份額的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