top
Loading...
專家教你優化你的SQLServer硬件性能

優化SQL Server硬件性能

對SQL Server的性能調整有很多種方式,就像建造一所房子。你必須找到一個合適的地點,擁有肥沃的土壤、構建一個結實的地基,支持2到3層的小樓,安裝電氣和插座,對墻壁刷油漆并進行裝飾,最后進行不斷的維護。

調整SQL Server的性能也具有類似的項目,其中包括:

硬件

Windows服務器

SQL Server

數據庫設計

索引設計

T-SQL 開發

網絡基礎設施

前端代碼

平臺維護

雖然在獲得高性能方面,沒有哪個單個的組件比其他的具有更大的重要性,但是要爭取的開始是必要的。如果你沒有建造一個堅固的地基,那么應用程序的其他部分也會被較早的組件中的不足所困擾。更進一步的說,雖然也有可能在部署之后重新構建硬件,或者只是簡單地移植到其他的硬件平臺上,但是對整體平臺的合適的計劃,將會支持應用程序在很長的一段時間之內都避免極其消耗時間的升級。

硬件計劃

合適的硬件計劃是獲得高性能的第一步。要根據需求來判斷使用什么硬件是非常重要的,這些需求可以通過CPU、內存、驅動器、網絡接口卡(NIC)等的容量計算得出。有時候,這些決策非常簡單;你可以使用共同的標準來簡化硬件的支持。如果標準不存在,那么抓住機遇并開始構建能夠簡化整體管理的標準。

由于標準化對于支持大量的服務器非常關鍵,因此它應該可以被后來的技術所兼容,所以你可以繼續以較低的成本獲得較高的性能。當前兩種需要短期和長期考慮的硬件技術就是64位技術和數據庫加速器。

64位體系結構

由于硬件提供商發布了64位的成本合理的服務器,Windows Server 2003 和 SQL Server 2000就可以用來平衡額外的資源來從擴大規模的角度改善整體的性能。在64位的世界里,64個CPU和 1TB的內存都可以直接定位,遠遠超過32位的世界中通常的4個CPU和3GB的內存——比兩倍的資源還要多。

當前,64位的平臺在工具和所有應用程序支持方面還有一些限制,但是這些情況都會隨著時間而改變。現在要時刻關注64位的體系結構是至關重要的,因為他們成熟完善并且獲得軟件供應商更大的支持,這一點通過在一些已經相當大的服務器上提高規模選項來支持。

基于硬件的加速器

由于SQL Server,數據庫加速器近來獲得相當大的關注。在概念層上,數據庫加速器是擁有CPU和內存的硬件設備。他們存儲整個數據庫,或者內存中的一部分表,用以處理需要回寫到SQL Server的用戶事務,這些事務最終需要存儲數據。好處就是這些設備有時候可以支持整個數據庫或者專用內存中的核心表,這樣比訪問磁盤上的數據要好。這種方式可以分別支持規模擴大和規模縮小,因為單個的數據庫加速器可以減少硬件瓶頸,而不會對現有的SQL Server帶來改變。

有一家提供這種類型解決方案的公司,名為XPrime。如果在升級可以被測試和完成之前,沒有進一步的軟件優化可以決定,并且正常運行時間不能受到危害,那么考慮一下這個選擇。

理想的硬驅動層

針對SQL Server的數據庫加速器最近獲得了極大的關注。從概念的層次上說,數據庫加速器就是一個帶有CPU和內存的硬件設備。他們存儲整個數據庫或者是內存中的一部分表來處理那些需要回寫到SQL Server的用戶事務,這些事務最終將會存儲數據。優點就是這些設備有時候可以支持整個數據庫或者專用內存中的核心表,這比從磁盤中訪問數據要優越得多。因為單個的數據庫加速器可以減少硬件瓶頸,并且不需要給現有的SQL Server帶來改變,從規模擴大或者縮小的角度具有優勢。

有一家提供這種類型解決方案的公司,名為XPrime。如果在升級可以被測試和完成之前,沒有進一步的軟件優化可以決定,并且正常運行時間不能受到危害,那么考慮一下這個選擇。

磁盤
磁盤組
驅動大小
控制器
RAID
尺寸
盤符
目的
0
2
72 GB
1 - 1
1
72
C:
Windows, SQL Server 程序組和系統數據庫 (Master, Model, MSDB) (隨機)
1
2
72 GB
1 - 1
1
72
D:
Tempdb (隨機)
2
2
72 GB
1 - 2
1
72
E:
數據庫事務日志 (串行)
3
5
72 GB
2 - 1
5
288
F:
數據庫 (隨機)
4
3
72 GB
2 - 2
5
144
G:
備份和批處理 (串行)
-
14
-
-
-
648
-
-

本地存儲或者存儲區域網絡(SAN)

對許多企業來說,如何在一個服務器上支持非常高數量的驅動器,是一個大問題。首先,他們必須考慮如何管理超過設計存儲容量的數據庫,或者是不得不將某些特殊的數據庫放在不同的服務器上。

這里有三個基本選項:第一個就是用很多個內部磁盤來支持存儲,以此來平衡服務器。第二個就是服務器內部只有幾個磁盤,然后補充本地附加的磁盤陣列。第三個就是一個服務器具有很少幾個內部磁盤,然后連接到存儲區域網絡(SAN)。

對于本地附加存儲的管理要復雜得多,因為它是分布的,與SAN不同的是,SAN是一個集中式的存儲,添加新的存儲到服務器上是一個簡單的圖形化的點擊式的過程。然而,本地存儲的性能會好一點,因為只有一個服務器來平衡這些磁盤驅動,而SAN有5到10個服務器來訪問同一個驅動器,可能會引起沖突。SAN針對這個性能問題的答案是用大量的緩存,而不是從磁盤訪問數據。

然后,這里就是一個雞蛋和籃子的比喻:一個服務器,具有專用的存儲,一個I/O問題只會影響到一個服務器,但是在SAN上同樣的一個問題就會潛在地影響許多個服務器。當SAN需要升級的時候,這也是向前的一步;所有用來平衡SAN的存儲的服務器都需要被關閉。當升級單個的本地存儲的服務器的時候,暫停服務時間只會影響到那些需要升級的服務器,而不是所有的服務器。管理和性能之間需要有個平衡點。

結論

硬件是SQL Server獲得高性能的基礎,這不是一個秘密,但是平臺仍然需要進行正確的后續設計和開發,來獲得很長一端時間所需要的性能。雖然很多硬件革新唾手可得,但是時刻記住在開發階段的松懈不是其中的一個選擇。你必須安裝正確的SQL Server硬件,并且在應用程序的生命周期中隨手保持優化到最佳的實踐方案以獲得高性能。祝你好運!

作者簡介:Jeremy Kadlec 是Edgewood Solutions公司的首席數據庫工程師。Edgewood Solutions是一家提供針對微軟的SQL Server的專業服務和產品解決方案的技術服務公司。Jeremy撰寫了大量的文章,并且在最初的SQL Server用戶群和本地的SQL PASS上頻繁發表文章。Jeremy還是SearchSQLServer.com的性能調整專家。

(t114)
作者:http://www.zhujiangroad.com
來源:http://www.zhujiangroad.com
北斗有巢氏 有巢氏北斗