SQL Sever應用程序性能調(diào)優(yōu)之硬件配置
當前位置:點晴教程→知識管理交流
→『 技術(shù)文檔交流 』
當應用程序性能出現(xiàn)問題時,服務器硬件通常會背上黑鍋,人們想到的往往是如何優(yōu)化服務器的硬件。實際上恰恰相反,多數(shù)情況下,硬件并非導致性能問題的罪魁禍首。對于基于SQL Server的應用程序的性能和升級,服務器硬件所起的影響要遠比人們想象的小。 多數(shù)應用程序運行緩慢的原因是因為其糟糕的前期設計,而并非硬件性能不夠。硬件通常被冠以惡名的原因是,在應用程序運行緩慢之前,性能問題通常不是那么顯而易見。而且應用程序的設計不是說改就改的,人們解決性能問題最簡單直接的辦法就是提高其硬件性能。雖然這種辦法也有一定效果,不過它不能真正完全解決問題,這也是為什么人們常常將性能低下歸結(jié)為硬件問題的原因。雖然硬件有時候確實會導致性能問題,但多數(shù)情況下它卻不是主要原因。 為了防止你的服務器硬件給SQL Server應用軟件拖后腿,首先讓我們簡單看一下一些常見的硬件選擇和調(diào)優(yōu)問題。 選擇硬件 為你的SQL Server應用選取最佳硬件要參照很多因素,諸如數(shù)據(jù)庫的規(guī)模、用戶的數(shù)量,數(shù)據(jù)庫被使用的方式(OLTP或OLAP)等等。雖然沒有成功的公式來估算服務器硬件需求,最好的辦法就是在開發(fā)階段提前開始測試你的應用。盡管許多有經(jīng)驗的DBA可以對你所需要的最佳硬件給出合理的估測,只有通過實際的測試才可確信滿足你的應用需要的硬件是什么。 在考察服務器硬件時,需要牢記以下硬件選擇方面的事項: CPU:要購買可以擴展CPU數(shù)量的服務器。例如,通過測試結(jié)果你認為單CPU服務器就夠用,那么你應該購買具備至少兩個CPU安裝空間的服務器,哪怕現(xiàn)在空著另一個CPU插槽的位置。預留下將來升級擴展的空間。 內(nèi)存:它可能是對SQL Server的性能影響最大的硬件部分。理想情況下,你的整個數(shù)據(jù)庫應該可以fit into內(nèi)存。不幸的是,這一般是不可能的。最低要求是,內(nèi)存的大小應該能夠容納你的數(shù)據(jù)庫中最大表,如果經(jīng)濟上可以接受,為服務器配備其能夠支持大小的內(nèi)存,換句話說,內(nèi)存多了沒壞處。 I/O子系統(tǒng):它對SQL Server性能的影響僅次于內(nèi)存,也非常重要。最低要求是,使用硬件RAID系統(tǒng)來運行你的數(shù)據(jù)庫。大概來說,你應該購買多個小硬盤,而不是一個大硬盤。在陣列中的硬盤數(shù)量越多,就可以獲得更快的I/O。 網(wǎng)絡連接:在你的數(shù)據(jù)庫服務器上,至少應該有一個百兆網(wǎng)卡,而且它應該連接到一個交換機上。理想情況下,服務器應該有兩塊網(wǎng)卡,通過全雙工方式連接到交換機。 調(diào)優(yōu)服務器 如果沒有正確的配置和優(yōu)化,最貴的服務器硬件未必具有最好的性能。我曾經(jīng)遇到過很多硬件相關(guān)的性能問題,其多數(shù)原因是驅(qū)動未正確安裝。這些硬件性能相關(guān)的問題中很多往往難于跟蹤和解決。一般來說,應該讓一個有經(jīng)驗的技術(shù)高手來確保硬件被正確安裝和配置。然后,在該服務器被用于生產(chǎn)環(huán)境之前,在一定條件下測試你的應用程序,以發(fā)現(xiàn)潛在的性能問題。另外,你的操作系統(tǒng)也必須被正確的配置,這涉及到很多方面,在這兒無法具體介紹。 為了在一個服務器獲得最好性能,SQL Server應該獨享一臺服務器,而不應該同時還安裝其它管理工具。不要為了省一點錢而將你的IIS或MTS服務器與SQL Server安裝在同一臺服務器上。這不僅僅會影響SQL Server的性能,而且使得性能調(diào)優(yōu)和故障排查工作非常難于進行。 優(yōu)化SQL Server配置 調(diào)優(yōu)SQL Server的另一個常見誤解是,為了獲得最佳性能你必須定制優(yōu)化它的多處配置。對于一些早期版本的SQL Server來說,這種做法或許有一定道理,但是對于最近版本的SQL Server,配置通常已經(jīng)不再是一個問題,當然對于那些超大、超忙碌的服務器來說或許是另外一種情況。 多數(shù)情況下,SQL Server可以自我調(diào)優(yōu)。也就是說,SQL Server可以檢查自己運行的任務,然后自動進行內(nèi)部調(diào)整,以使指定任務獲得盡可能高的性能。 當你對SQL Server進行性能測試時,需要牢記SQL Server需要花一點時間來將自己調(diào)整到優(yōu)選化。換言之,啟動SQL Server服務后你立即獲得的性能,與在有負載情況下運行幾個小時后的SQL Server的性能是不相同的。因此在進行測試之前,要讓SQL Server有一定時間來適應你的負載。 通過企業(yè)管理器,或者sp_configure存儲過程,你可以修改36個SQL Server配置選項。如果你沒有調(diào)優(yōu)SQL Server的豐富經(jīng)驗,我不建議你修改任何SQL Server的設置。如果你是一個新手,你所做的修改往往會適得其反,會降低SQL Server的性能。因為一旦修改了SQL Server的設置后,會使其喪失其自我調(diào)優(yōu)的能力。 如果經(jīng)過深思熟慮后,你仍然認為修改一個或多個SQL Server配置可以提高其在特定環(huán)境下的性能,那么你應該穩(wěn)妥謹慎的來對其進行修改。在你修改設置前,首先應通過諸如性能監(jiān)視器之類的工具來了解當前 SQL Server的性能,以其作為基準。每次只進行一處修改。不要一次進行多個修改,因為這樣你無法明確每一個設置帶來了性能上的什么變化。 在進行了一處修改后,再次在相同負載下測量SQL Server的性能是否真正有所提高。如果沒有,那么恢復到默認設置。如果的確有提高,再繼續(xù)檢查性能在其它負載下是否也會提高。通過后期測試,你或許會發(fā)現(xiàn)你的修改在某些負載下可以提高性能,但在其它負載下卻會降低性能。這也是為什么我不推薦你修改多數(shù)設置的原因之一。 一般來說,如果你的SQL Server應用程序遭遇到了性能相關(guān)問題,通過修改SQL Server設置方法解決這些問題的可能性非常小。 該文章在 2011/3/15 9:55:05 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |