2008年9月2日 星期二

SQL2005 tuning & testing

這幾天為了移轉一套sql2005所作的一些tuning,原來的server只有4GB Ram、2顆可憐的2.5" 10000轉 sas作raid1,整個系統慢到不行,這次移轉的新server(HP DL385G2)把Ram加到8GB,4顆sas作0+1...(當初採購時不知道廠商配Smart Array E200,連Raid5都沒有!! 硬碟也買太少),軟體裝standard win2003 x64+SQL2005 x64,希望效能會變好。 後來閒逛到介紹iometer的網頁,趁系統還沒上線來測看看IOPS...
想到上次去恆逸上課老師說SQL應該作磁碟重組,google找到一套IObit SmartDefrag,可以在win2003跑,還是免費軟體,等上線看看效能是否有提昇。

Server規格:
HP DL385G2 (AMD Opteron 1.8Ghz*2 / 4GB Ram)
IBM X3650 (Intel Xeon 2.0Ghz*2 / 4GB Ram / 3.5" 15000轉 sas*2)
DELL 6850 (Intel Xeon 2.6Ghz*4(4核) / 8GB Ram / 3.5" 15000轉 scsi*2)



Raid Controller:
HP Smart Array E200: 64MB cache, support raid 0/1/1+0
HP Smart Array P400: 256MB cache(大4倍!!), support raid 0/1/1+0/5/6
IBM ServerRAID 8K: 256MB cache, support raid 0/1/1+0/5/6
Dell PERC5/i: 256MB cache, support raid 0/1/1+0/5/6

測試參數:

  • Worker:4 (測dell 6850開到16)

  • Maximum Disk Size: 20000000 sectors(*512Bytes = 1GB)

  • # of Outstanding IO: 10 (值太小灌不滿效能)

  • Transfer Request Size: 8KB

  • Percent Read/Write Distribution: 33% Write, 67% Write, 100% Random

  • Run Time: 1 mins

  • Ramp Up Time:10 secs


接下來要PK大亂鬥啦:


E200,4顆硬碟作1+0,配置在2個channel


E200,2顆硬碟作1+0,配置在1個channel


P400,2顆硬碟作1+0,配置在2個channel


IBM,2顆硬碟作1+0,配置在1個channel



Dell,2顆硬碟作1+0,配置在1個channel

結論:

  • 作Raid1/1+0,raid controller的cache大小似乎影響不大,看P400跟E200數據差不多,E200不能作raid5,成本大概低很多(以後開規格要小心!!!)。(某論壇網友評語: E200是一塊半殘卡,LSI 1068E的,不帶處理器,做R0,R1凑和...)
  • Dell這張卡還滿多人用的樣子,不過測出來不怎麼樣,也許跟硬碟比較舊有關。
  • IBM還真是強啊!! HP用4顆作0+1都輸了。
  • 以上都是亂測,平台規格也不一致,只是參考用囉! 不過至少新的配置效能是有提昇的

    #iometer簡介#
    Iometer是目前業界量測儲存系統I/O效能的標準工具,可藉由負載產生器(Workers)的參數調整,透過測試元件產生不同區塊大小的輸入輸出請求與讀取/寫入的分布比例,模擬網路伺服器、檔案伺服器以及線上交易資料庫的讀寫行為。 由測試得出系統的最大I/O處理能力、傳輸速率與CPU占用率,使用者即可評估在不同應用環境下,伺服器儲存系統或是外接儲存設備的性能。
    Iometer本身是一套開放原始碼軟體,最新的版本為2006.07.27,可支援Windows、Linux、Solaris與Mac OS X等平臺。
    Iometer重要參數:Iometer內可調節的參數相當多,我們從一般效能測試中常用的一些參數,逐一簡單說明。

  • Worker:設定每個磁碟同時執行的執行緒(thread)數目。對一些高性能伺服器或企業級儲存設備,必須增加Worker數目,才能測得最大的效能。

  • # of Outstanding IO:設定每個磁碟同時發起I/O的數量,若是模擬串流檔案的播放或類似環境,可用預設值1。若要模擬同時有多個應用程式發出存取需求的環境,可依不同狀況設定。不過如果設太大的話,系統很可能會當機。

  • Transfer Request Size:每個I/O存取需求的Bytes大小,要測試系統最大I/O處理能力可設為512Bytes,要測試最大傳輸能力(MB/s)可設為128kB到512kB。

  • Percent Read/Write Distribution:讀取/寫入比例,模擬一般應用程式存取可設為50%讀+50%寫,或60%讀+40%寫;若要模擬備份寫入行為,可設為100%寫入;若要模擬還原動作,可設為100%讀取。若要讓GbE這類全雙工通道發揮最大效率,可設為50%讀+50%寫,以便啟動雙向傳輸。

  • Percent Random/Sequential Distribution:隨機/循序存取比例,若要模擬多媒體串流檔案播放,或是大量連續資料的備份/還原,可設為100%循序存取;若要模擬高交易資料庫,可設為100%隨機存取。

  • Run Time:測試執行時間,一般設為30到60秒。

  • Ramp Up Time:在測試某些擁有大量快取記憶體的系統時,為避免系統剛開始測試時一些異常或不穩定的數值,影響測試統計結果,可設定15到60秒的Ramp Up時間,等待系統進入穩定後再錄取測試數值。

沒有留言: