程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQLServer硬件性能監控列表

SQLServer硬件性能監控列表

編輯:關於SqlServer
性能監控列表
 SQLServer硬件特征
相應的描述  Number of CPUs    CPU MHz    CPU L2 Cache Size    Physical RAM Amount    Total Amount of Available Drive Space on Server    Total Number of Physical Drives in Each Array    RAID Level of Array Used for SQL Server Databases    Hardware vs. Software RAID    Disk Fragmentation Level    Location of Operating System    Location of SQL Server Executables    Location of Swap File    Location of tempdb Database    Location of System Databases    Location of User Databases    Location of Log Files    Number of Disk Controllers in Server    Type of Disk Controllers in Server    Size of Cache in Disk Controllers in Server    Is Write Back Cache in Disk Controller On or Off?    Speed of Disk Drives    How Many Network Cards Are in Server?    What is the Speed of the Network Cards in Server?    Are the Network Cards Hard-Coded for Speed/Duplex?    Are the Network Cards Attached to a Switch?    Are All the Hardware Drivers Up-to-Date?    Is this Physical Server Dedicated to SQL Server?  
在上表裡輸入你的值.
   

監控硬件是早期的重要步驟

從以前的章節裡(使用性能監視器),你可以找出一些潛在的硬件性能瓶頸。這一節裡,我們將查看SQLServer硬件的每一個主要組件,以幫助最優化你硬件的性能。

將分以下幾個部分進行:

CPU Memory Disk Storage Network Connectivity Misc.

作為監控的一部分,你需要完成上面的列表,這樣,你就會對你的服務器無所不知了。 

CPUCPU的數量

這第一個是顯而易見的,越多的CPU性能越快。SQLServer2000的標准版支持4個CPU。企業版支持最多32個CPU,具體根據操作系統而定。更多的CPU對於全面提升SQLServer的性能是很有效的。   對任何一個基於SQLServer的應用程序需要的CPU數量進行估算是很困難的。這是因為每個應用程序的工作都是不同的,並且它們的使用也不同。有經驗的 DBA總是對應用程序需要什麼樣的CPU有個大概的了解,卻很難真正知道需要什麼樣的CPU,直到在真實條件下測試了服務器的配置。

由於選擇合適的CPU的數量是困難的,所以你可以考慮下面的原則:

盡可能的購買更多CPU數量的服務器。如果你做不到,那麼至少要購買一個能擴展CPU數量的服務器。幾乎所以的SQLServer在工作量增加時都需要更多的動力。

這是一些潛在的假設:

SQLServer將僅僅用來運行一個同時不超過5個用戶的財務應用程序,並且你預期未來兩年不會改變。如果是這樣,單CPU的服務器就足夠用了。如果預期用戶數量在不久會增加的話,那麼你需要考慮購買一個單CPU的,並且擁有可擴展一個CPU數量的服務器以備不時之需。 SQLServer 用來運行一個內部的寫程序,這個程序不僅僅包括OLTP,而且需要支持繁重的報表需求。預期用戶同時不會超過25個。如果是這樣,你需要考慮一個雙CPU 的服務器,但是它應該可以擴展到4個CPU。“繁重的報表需求”的真正含義是很難預計的。我曾經看到一些相當簡單,但是不好的寫報表,占用了服務器全部的 CPU。 SQLServer運行一個目前用戶為100到150之間的ERP包。對於象這樣的“重型”程序,詢問推薦的硬件配置。因為他們已經對他們的產品需要的CPU配置有了一個很好的建議。

我能提供一些其他的例子,但是通過這些我發現:正確預計基於SQLServer的一個特殊的應用程序的CPU的數量是很困難的。你通常應該購買一個比你認為要大的系統,因為在許多情況下,一個應用程序的使用需求經常是被低估了的。現在購買一個有多個CPU的大服務器來長期使用也不是很昂貴了,總比你在6到 12個月後由於當初的低估不得不重新替換你整個服務器要劃算得多。 

CPU速度

象CPU的數量一樣,需要的CPU的速度 也是很難估計的。一般說來,盡量購買最快的CPU。購買速度快的總是好於速度慢的。 

CPU 2級緩存

我曾經遇到一個比較普遍的問題:購買2級緩存較小的便宜的CPU好呢,還是購買2級緩存較大的昂貴的至強CPU好?事實上,在購買2級緩存較小的更快的芯片和購買較大2級緩存的芯片上做出決定是很困難的。這裡有一些規則:如果你僅有1、2個CPU,那麼盡量買最快的,其次才考慮2級緩存。如果你一定要選擇2級緩存大小的話,盡量選擇較大的。但是,如果你有4個或更多的CPU,那麼你需要較大2級緩存的CPU,即使它們的速度不太高。這是因為對於一個有4個或更多CPU的服務器來說,要想盡量讓SQLServer運行良好的話,2級緩存一定要大,否則將浪費額外的CPU。 

CPU監控列表

既然本文是關於你SQLServer目前CPU性能的一個監控,那麼你現在應該關注你目前的服務器是否存在CPU瓶頸。正如在《使用性能監視器找出硬件瓶頸》一文所討論的那樣,你可以使用性能監視器幫助你找到硬件瓶頸。   如果你CPU目前沒有瓶頸問題,那麼你可以忽略下一部分關於memory的討論。但如果你的服務器目前存在CPU瓶頸,並且是主要的性能問題,那麼你可以選擇以下的方法去解決瓶頸:減少服務器的負荷。可以通過減少用戶數量、調優查詢、調優索引、除去在服務器上運行的不必要的程序來達到目的。另外如果你的產品服務器上還運行有關於報表的程序,將其移到一個專門為報表做的服務器上。如果CPU瓶頸是由於缺少服務器內存引起的,請添加更多的內存。這是一個普遍的問題。如果你目前的服務器有更多的CPU插槽,那麼請添加更多的CPU。如果可以的話,用更快的CPU升級你的服務器。購買一個新的有更多更快CPU的服務器。

不幸的是,這些方法在處理CPU瓶頸時也不是輕而易舉的,當然除非你們公司有足夠的錢。作為一個DBA來說,你可能唯一能做的就是“減少服務器的負荷”這一項了。 

內存

在討論完CPU後,現在開始討論內存,不要認為它不象CPU那麼重要。事實上,內存可能是任何SQLServer服務器最重要的硬件部分,它比其他硬件更能影響SQLServer的性能。

當我們討論內存的時候,一般指的是物理內存,而不是虛擬內存。SQLServer不是設計來用虛擬內存的,盡管它也能用。

並非聯合使用操作系統的物理內存和虛擬內存,SQLServer總是盡可能的使用物理內存。這主要是為了提高速度。訪問內存中的數據總是比訪問磁盤上的快得多。   SQLServer不能總是把數據放在內存(SQLServer緩存)中,它也訪問磁盤,就像操作系統管理虛擬內存一樣。但SQLServer的“緩存”機制比操作系統的虛擬內存更快更詭異。   快速的知道SQLServer是否有足夠內存的方法是檢查SQLServer的緩存命中率(在《使用performance Monitor找出硬件瓶頸》一文有過討論)。如果這個計數器為99%或者更高,說明有足夠的內存。如果這個計數器在90%與99%之間並且你對性能比較樂觀的話,那麼你的SQLServer可能有足夠的內存,但是如果你不滿意服務器性能的話,則需要添加內存了。

如果這個計數器少於90%,關鍵在於性能無法被接受(如果運行的是OLAP,少於90%通常也沒問題),所以需要添加更多的內存。

SQLServer的物理內存的理想值應該超過服務器上最大數據庫的大小。這總是不可能的,因為許多數據庫是非常大的。如果你正在計算 SQLServer 的大小,並且有足夠的預算,那麼盡量去購買能容納整個數據庫大小的物理內存。假定你的數據庫是4G或者更小,那麼這通常不會成太大的問題。但是如果你的數據庫更大(或者預期會超過4G),那麼你可能容易地提供超過4G的內存。SQLServer2000企業版支持高達64G的內存,沒有太多的服務器支持這麼大的內存。   即使SQLServer的緩存不能容納整個數據庫,SQLServer仍然能快速的獲取數據。99%的緩存命中率意味著SQLServer需要的數據99% 的時間都是在緩存中的,性能非常快。例如,我管理一個30G的數據庫,但是服務器僅有4G的內存,而緩存命中率總是高於99.6%。這意味著大多數情況下用戶沒有同時訪問數據庫裡所有的數據,僅僅一小部分而已,SQLServer也能將經常訪問的數據始終放在緩存中,所以99%的請求在這種情況下能迅速完成,即使服務器的內存少於數據庫的大小。   那麼,要點是什麼呢?如果你的緩存命中率少於90%,那麼認真的考慮添加更多的內存了。  
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved