iT邦幫忙

0

SQL2000在RAID選擇上如何達到效能與成本的平衡?

請問各位先進,
最近公司準備採購新伺服器, 打算用BESR將舊機器上的SQL2000搬到新機器的Citrix Xen虛擬機器上.
目前環境為,
SQL 2000上主要的DB容量為 250GB, 每個月以 3GB速度增長, OS為Win 2003 32bit, ERP系統是JDE 8.10 ,跟 DB在同一部機器裡, 每個月月初各部門同時跑報表時, 很慢!平常一兩年偶爾會發生掉資料的情況.
新機器是 HP 380 G7, 二顆CPU四核, 32GB RAM, 虛擬化Citrix Xen Server 5.6, 146GB硬碟 * 2 作 RAID 1放Host OS
SAN 用 HP P2000 G3, 光纖 8G*2+iSCSI 1GB*2

我的問題是, P2000 的硬碟應該怎麼安排, CP值最高.
A. 8顆3.5吋300GB SAS 15k轉 作 RAID 5, 容量為 2.1TB
B. 8顆3.5吋300GB SAS 15k轉 作 RAID 10, 容量為 1.2TB
C. 10顆2.5吋300GB SAS 10k轉 作 RAID 10, 容量為 1.5TB
D. 12顆2.5吋146GB SAS 15k轉 作 RAID 5, 容量為 1.6TB
E. 12顆2.5吋146GB SAS 15k轉 作 RAID 10, 容量為 876GB
F. 其他組合
$無限的情況下, 當然是選B , 我只是想知道在各位先進的經驗裡, 如何選擇CP值最高.
貴公司的ERP DB都用幾顆硬碟? RAID 5 or 10
另外在同一部P2000裡還要再裝 4顆 SATA 硬碟作 raid 5, 把DB LOG 及次要DB放在這裡, 這樣對效能有幫助嗎?(因為都是同一個Controller)

看更多先前的討論...收起先前的討論...
slime iT邦大師 1 級 ‧ 2012-02-07 01:04:17 檢舉
建議先評估幾項效能:

1. 平常的工作是幾點到幾點會寫入 SQL 主機?
2. 跑月報表的工作是哪一天的幾點到幾點?
3. Log 多久整理一次?
4. 有沒有定期備份或清 Log ?
5. DB, Log, 備份檔是否有分別在不同實體硬碟?
6. 是否有跑過系統分析程式, 對於各項工作(平常的工作及跑月報表的工作)的 CPU / RAM / 磁碟效能稍微統計一下?

有上面的資料, 大概先把工作分開, 再依不同工作規劃需要放硬碟的位置.
鐵殼心 iT邦高手 1 級 ‧ 2012-02-07 09:30:20 檢舉
您的SQL 2000的版本是? 有沒有設定使用超過 2GB 的實體記憶體?
請參考以下
如何設定 SQL Server 使用超過 2 GB 的實體記憶體
lionab iT邦新手 2 級 ‧ 2012-02-08 11:13:14 檢舉
Slime大大,
感謝.
1. 08:00-17:00上班時間會有寫入SQL主機, 半夜 00:00-02:00 離峰時間也會有Night Job會有寫入SQL主機
2. 月報表是每個月1日到5日之間, 整個上班時間都在跑報表, 因為跑報表要排隊Queue.
3. log 每天晚上排程清理一次
4. 每天晚上備份
5.主要DB單獨在實體硬碟, 其它次要DB及Log在其它的實體硬碟.
6.之前有跑過, 跑報表時, 每個Queue會讓CPU使用率會上升 25%, 4個Queue就 100%了, 但主要瓶頸其實是在IOPS , 才會造成CPU過高.
lionab iT邦新手 2 級 ‧ 2012-02-08 11:14:12 檢舉
感謝tecksin大大,
這個我們在之前就以經設好了, 目前記憶體是 10GB,仍顯不夠用說!
鐵殼心 iT邦高手 1 級 ‧ 2012-02-08 12:48:43 檢舉
不知道有沒有把 RAID 卡的 Cache 加到 1GB, 同時開Writh-Back ?
lionab iT邦新手 2 級 ‧ 2012-02-14 12:01:01 檢舉
Raid卡的Cache是已經加到滿了, 忘了是 512M或1GB, Writh-Back 倒是不確定有沒有開, 我再確認一下.謝謝!
charmmih iT邦研究生 5 級 ‧ 2012-02-23 02:03:02 檢舉
做 Report SQL調校, 將Heavy SQL 的磁碟存取大量降低, 應就可以解決了

邏輯磁碟讀取次數大量降低(此案例6500倍)~~
https://www.facebook.com/photo.php?fbid=2668827526807&set=a.1129621567620.2020076.1439648306&type=1&theater
lionab iT邦新手 2 級 ‧ 2012-02-23 11:39:06 檢舉
謝謝您的回覆, JDE的 SQL是自動產生出來的, 所以無從調校, 只能從加索引方面解決, 我一年前也有進去加了幾個索引.初期似乎有改善, 但經過一段時間, 依然出現效能問題.可能是我索引沒有下好,改天我再檢查一下...謝啦!
charmmih iT邦研究生 5 級 ‧ 2012-02-23 15:23:16 檢舉
記憶體不要全給SQL Server , 最好預留500MB給系統, 否則系統和DB會記憶體配置競爭, 對DB會有影響喔~~
charmmih iT邦研究生 5 級 ‧ 2012-02-23 18:43:26 檢舉
lionab提到:
JDE的 SQL是自動產生出來的, 所以無從調校

先不要管能不能改SQL,
先把SQL Profilier 開起來, 將報表 heavySQL (>10,000ms)錄起來,
發現這些造成問題的HeavySQL, 再來討論如何改善.....
否則光靠硬體擴增, 只是治標不能治本....
12
raytracy
iT邦大神 1 級 ‧ 2012-02-07 16:57:07
最佳解答

效能調整不能靠感覺, 光是一句「很慢」, 每個人的感覺都不一樣:
User 說: 要等 2 秒就是「很慢」
MIS 說: 其實, 等個 1 分鐘還不算太慢
廠商說: 你只花這樣的預算, 等上 10 分鐘都不叫慢

要改善, 必須先《量化》, 把感覺變成數據, 才有改善的依據.

當您感覺很慢的時候, 當時的 IOPS 是多少 ? 每秒的 Transaction 有多少? 系統有多少 Page Fault? Read vs. Write 的比例是多少? Disk Queue 已經累積到多少?......先把這些效能數據找出來: 平時的, 尖峰的, 周間平均的, 日間平均的...

懂系統的人, 不需要懂 SQL, 從系統面去找出數據, 就足夠把效能調整到符合 80% 以上的需求. 如果懂系統又懂 SQL, 而且可以調程式碼的話, 隨便一調整, 快上數十倍都有可能.

C/P 值的定義是甚麼?
用最少的錢, 買到最大的容量?, 還是...
用最少的錢, 買到最大的效能?, 還是...
用最小的容量, 獲得最大的效能?, 還是...
用最小的效能, 獲得最大的容量?

以上都是天平的兩邊, 沒有人能兩邊都拿, 你拿了一邊, 必定損失另外一邊. 除非你加入第三項變因來平衡, 例如: 錢.

lionab iT邦新手 2 級 ‧ 2012-02-08 11:35:53 檢舉

謝謝raytracy大大,
效能評估也有作過, 主要是 IOPS太高, 造成CPU使用率也飆高, 因此改善IOPS是目前的方向. 我們在月初,大家都在跑報表時, Queue都在排隊, 怨聲載道.
RAM在去年已經加到 10GB了, PAE與AWE都有開. 加RAM的前後差別已經很大了, 但過了幾個月後, 月初仍然會造成報表塞車.
其實改程式或加索引是治本辦法, 但因為JDE是個黑盒子, 本公司工程師因能力所限, 在效能上已盡力了.ERP廠商對於舊版本的JDE也無能為力, 希望要我們花大錢改新版.
小弟只是希望就各位先進在實務上的經驗 ,瞭解大家的公司在"一開始規劃新的資料庫系統"時, 會因哪些原因作哪些選擇.
例如: 市面上的ERP大多數時候都是 Read IOPS比較高, 因此貴公司是不是選擇 RAID 5就夠了, 用哪種系統, 用幾顆硬碟的 哪種 RAID , 增加Read IOPS .
或是貴公司是大公司, ERP DB 一律採用 20顆硬碟以上的 raid 10, 如果是小公司, 幾百GB資料量算小? 用 8顆硬碟+RAID 5 就夠了嗎?

6
davidliu9116
iT邦研究生 3 級 ‧ 2012-02-08 10:28:06

改寫程式
月初的各部門報表異動性都不高
建議做成資料表在月底的夜間自動執行
改寫報表讀取這個資料表
相信一定會飛快顯示的

lionab iT邦新手 2 級 ‧ 2012-02-08 11:19:12 檢舉

davidliu9116大大,
這個方法我們有想過, 但月初時, 有緩衝時間給大家補單, 加上會計會訂定暫停使用系統及關帳時間, 大家都想在月初結完帳後當時的即時資料跑報表.

2
ssh38390
iT邦新手 4 級 ‧ 2012-02-14 11:38:40

你要把DB移轉到虛擬環境的話 , 你guest OS 會裝幾台?
如果只裝目前的SQL , 應該還OK , 但若是有考量還要增加幾台我是覺得CPU & RAM不足

由於目前主機硬體架構都是64bit ,建議還是考量將OS & DB 都upgrade to 64 bit 版本已獲得較好效能

lionab iT邦新手 2 級 ‧ 2012-02-14 11:49:26 檢舉

ssh38390您好,
謝謝您的回覆,
目前因為不確定JDE ERP + SQL 2000架在Xen Server 上的效能影響多大, 目前打算先只裝一台guest OS , 上線後用三個月來評估, 如果扛得住, 可能再多加一兩台耗費IO資源不多的guest OS吧.以充份利用該台伺服器的效能.
因為我們用的是 JDE ERP, 沒有維護合約了, 如果換OS或SQL 版本, ERP也要升級, 因為我們客製程式不少, 升級過程可能也是災難, 更重要的其實是$$.

我要發表回答

立即登入回答