- 系統與服務監控技術實踐
- 王淑江主編
- 4306字
- 2019-03-01 22:21:33
1.2 系統性能監控
本書中的系統性能監控,監控目標計算機使用的操作系統為Windows Server 2008,監控中的方法同樣適用于其他版本的Windows服務器操作系統。在操作系統監控中,主要監控三方面的性能,分別為:CPU、內存和磁盤,書中其他部分將詳細闡述監控實現的方法。
1.2.1 監控CPU性能
CPU全稱Centre Process Unit(中央處理器),CPU是系統性能的最重要指標,也是計算機的基礎組件,主要完成數據運算功能,可以將CPU形象比喻為“大腦”。CPU的性能從根本上決定著服務器的性能。如果CPU出現瓶頸將影響計算機的性能。在Windows Server操作系統中,提供了針對CPU的性能計數器,通過計數器即可了解CPU的利用率。
1. CPU性能計數器
Windows Server2008操作系統中提供的“Processor”對象,詳細提供CPU的使用時間、空閑時間、傳輸性能等參數。
“Processor”性能計數器
“Processor”性能計數器是能夠監控處理器活動方面的計數器。處理器是計算機進行算數和邏輯計算、在附屬件起始操作及運行處理線程的部分。一臺計算機可以有多臺處理器。處理器對象將每臺處理器作為對象的實例,如圖1-1所示。

圖1-1 CPU性能計數器之一
正在監控的“Processor”性能指標如圖1-2所示。從該指標中,可以分析出當前計算機CPU的使用狀態。

圖1-2 CPU性能計數器之二
2. 資源監視器-CPU監測
資源監視器提供CPU監測功能,通過圖表和文本信息可以詳細了解正在使用的CPU基本狀態,能夠顯示正在運行的應用程序CPU的利用率、線程數以及CPU的平均利用率,如圖1-3所示。

圖1-3 CPU監測之一
3. CPU性能計數器分析
CPU利用率值如果持續超過95%,表明CPU存在瓶頸,可以考慮增加一個處理器或更換一個更快的處理器。如果服務器專用于SQL Server數據庫,可接受的最大上限是80%~85%,通常情況下CPU的利用率合理使用范圍在60%~70%。
Windows資源監控中,如果計數器“System\Processor Queue Length”大于2,而處理器利用率計數器“Processor Time”一直很低,則存在著處理器阻塞情況。
CPU資源成為系統性能瓶頸的預兆:
● 系統響應時間很慢
● CPU空閑時間為零
● 過高的用戶占用CPU時間
● 過高的系統占用CPU時間
● 長時間有很長的運行進程隊列
1.2.2 監控內存性能
內存是系統性能的最重要指標之一,也是計算機的基礎組件,主要完成數據轉儲功能,可以將內存形象比喻為“倉庫保管員”。內存容量的大小在一定程度上決定著服務器的性能。如果內存分配完畢將使用虛擬內存調用文件,內存瓶頸將影響計算機的性能。在Windows Server操作系統中,提供了針對內存的性能計數器,通過計數器即可了解內存的使用狀態。
1. 內存
服務器中內存概念比較特殊,包括3部分的內容,分別為:物理內存、CPU緩存以及虛擬內存。下面簡介這三部分的完成的功能。在對服務器內存監控時要監控三部分的性能。
(1)物理內存
服務器之所以需要高性能的內存,是由其自身的特點所決定的。作為為網絡中其他計算機提供服務的計算機,在同一時間,服務器要響應幾十臺甚至幾百臺、上千臺計算機發出的請求。因此服務器需要更多、更快的CPU來處理這些請求。如果沒有足夠大的內存,即使服務器的CPU速度再快,其性能也無法充分施展。原因很簡單,CPU處理的數據必須從內存中調取,并將計算結果寫入內存。
如果服務器沒有足夠的內存,就會把硬盤作為虛擬內存來使用。硬盤的響應速度比內存慢了幾十倍至幾百倍以上,因此,大量使用虛擬內存將會嚴重影響服務器的性能。服務器內存數量不足,將表現為響應速度較慢、硬盤指示燈長亮等,嚴重時將停止響應,即陷入“死機”狀態。解決這些問題的有效方法只有一個——增加內存的容量。內存也不可以隨便添加,不匹配的內存會導致服務器的穩定性下降。添加服務器內存,最好使用由服務器生產廠商驗證過的產品,或者直接從服務器生產廠商處購買。
(2)CPU緩存
CPU緩存(Cache Memory)是位于CPU與內存之間的臨時存儲器,它的容量比內存小但交換速度快。在緩存中的數據是內存中的一小部分,但這一小部分是短時間內CPU即將訪問的,當CPU調用大量數據時,就可避開內存直接從緩存中調用,從而加快讀取速度。
當CPU要讀取一個數據時,首先從緩存中查找,如果找到就立即讀取并送給CPU處理;如果沒有找到,就用相對慢的速度從內存中讀取并送給CPU處理,同時把這個數據所在的數據塊調入緩存中,可以使得以后對整塊數據的讀取都從緩存中進行,不必再調用內存。
CPU在緩存中找到有用的數據稱為命中。當緩存中沒有CPU所需的數據時(這時稱為未命中),CPU才訪問內存。從理論上講,在擁有二級緩存的CPU中,讀取一級緩存的命中率為80%。也就是說,CPU一級緩存中找到的有用數據占數據總量的80%,剩下的20%從二級緩存中讀取。由于不能準確預測將要執行的數據,讀取二級緩存的命中率也在80%左右(從二級緩存讀到有用的數據占總數據的16%)。服務器CPU中還帶有三級緩存,是為讀取二級緩存后未命中的數據設計的—種緩存。在擁有三級緩存的CPU中,只有約5%的數據需要從內存中調用,從而大大節省了CPU直接讀取內存的時間,也使CPU讀取數據時基本無需等待,進一步提高了CPU的效率。
由于不同CPU的一級緩存容量往往相差不大,因此,二級和三級緩存容量就成為決定CPU性能的關鍵。二級和三級緩存容量越大,CPU的性能就越高,價格也就越貴。
(3)虛擬內存
虛擬內存是當作內存來彌補計算機物理內存空間缺乏的硬盤空間。Windows操作系統用虛擬內存管理器動態管理運行時的交換文件。操作系統默認提供比實際物理內存還多的內存容量以供使用,Windows操作系統使用硬盤部分空間作為虛擬內存。當CPU需要時,首先會讀取內存中的資料。當內存容量不夠用時,Windows就會將需要暫時儲存的數據寫入硬盤。因此,計算機的內存大小等于實際物理內存容量加上“分頁文件”的大小。如果需要的話,“分頁文件”會動用硬盤上所有可以使用的空間。
2. 內存性能計數器
Windows Server2008操作系統中提供的“Memory”、“Paging File”對象,詳細提供內存的讀、寫、傳輸速率等參數。
(1)“Memory”性能計數器
“Memory”性能計數器是監控內存活動方面的計數器,由描述計算機上的物理和虛擬內存行為的計數器組成。物理內存指計算機上的隨機存取存儲器的數量。虛擬內存由物理內存和磁盤上的空間組成。許多內存計數器監視頁面調度(指磁盤與物理內存之的代碼和數據頁的移動)。過多的頁面調度(內存不足的一種表現)可引起拖延,會影響整個系統處理效率,如圖1-4所示。

圖1-4 “Memory”性能計數器之一
正在監控的“Memory”性能指標如圖1-5所示。從該指標中,可以分析出當前計算機內存的使用狀態。

圖1-5 “Memory”性能計數器之二
(2)“Paging File”性能計數器
“Paging File”性能計數器是監控在計算機上分頁文件的計數器。分頁文件指為備份計算機上已用物理內存而保留的磁盤空間。管理員通過該計數器可以確認虛擬內存文件的大小,如圖1-6所示。

圖1-6 “Paging File”性能計數器之一
正在監控的“Paging File”性能指標如圖1-7所示。從該指標中,可以分析出當前計算機虛擬內存文件的大小。

圖1-7 “Paging File”性能計數器之二
3. 資源監視器-內存監測
資源監視器提供內存監測功能,通過圖表和文本信息可以詳細了解正在使用的內存基本狀態,能夠顯示正在運行的應用程序內存使用狀態,如圖1-8所示。

圖1-8 內存監測之一
4. 內存性能計數器分析
Windows性能計數器監控中,如果 “Process\Private Bytes” 計數器和“Process\Working Set”計數器的值在長時間內持續升高,同時“Memory\Available bytes”計數器的值持續降低,則可能存在內存泄漏。
內存資源成為系統性能瓶頸的預兆:
● 很高的換頁率
● 進程進入不活動狀態
● 交換區所有磁盤的活動次數可高
● 很高的全局系統CPU利用率
● 內存不足,出現提示信息
1.2.3 監控磁盤性能
磁盤是系統性能的重要指標之一,也是計算機的基礎組件,主要完成數據存儲功能,可以將磁盤形象的比喻為“倉庫”。如果磁盤出現瓶頸將影響計算機甚至網絡的性能。隨著技術的發展,單一的磁盤已經不能滿足系統需求,以Raid為基礎的應用成為主要應用模式。在Windows Server操作系統中,提供了部分針對磁盤的性能計數器,通過計數器即可了解磁盤的使用狀態。磁盤性能不僅對操作系統有直接的影響,對運行操作系統上的網絡服務也有直接的影響。
1. Raid存儲模式
Raid,英文全稱Redundant Array of Independent Disks,中文意思是“獨立磁盤冗余陣列”,有時也簡稱磁盤陣列(Disk Array)。
(1)Raid簡介
Raid是一種把多塊獨立的硬盤(物理硬盤)按不同的方式組合起來形成一個硬盤組(邏輯硬盤),從而提供比單個硬盤更高的存儲性能和提供數據備份技術。組成磁盤陣列的不同方式成為Raid級別(Raid Levels)。數據備份的功能是在用戶數據一旦發生損壞后,利用備份信息可以使損壞數據得以恢復,從而保障了用戶數據的安全性。在用戶看起來,組成的磁盤組就像是一個硬盤,用戶可以對它進行分區,格式化,等等。總之,對磁盤陣列的操作與單個硬盤一模一樣。不同的是,磁盤陣列的存儲速度要比單個硬盤高很多,而且可以提供自動數據備份。
Raid可以充分發揮出多塊硬盤的優勢,可以轉換硬盤速度,增大容量,提供容錯功能,確保數據安全性,在任何一塊硬盤出現問題的情況下都可以繼續工作,不會受到損壞硬盤的影響。使用Raid可以帶來以下優點:
● 通過把多個物理磁盤組織在一起作為一個邏輯卷提供磁盤跨越功能。
● 通過把數據分成多個數據塊并行寫入/讀出多個磁盤以提高訪問磁盤的速度。
● 通過鏡像或校驗操作提供容錯能力。
(2)常用Raid模式
Raid技術分為幾種不同的級別,分別可以提供不同的速度,安全性和性價比。根據實際情況選擇適當的RAID級別可以滿足用戶對存儲系統可用性、性能和容量的要求。常用的RAID級別有以下幾種: Raid 0、Raid 1、Raid 1+0和Raid 5等。目前經常使用的是Raid 5和Raid 1+0。下面將簡述Raid不同級別的數據存儲模式以及數據容錯功能。
(3)Raid 0
Raid 0是通過將2個或更多磁盤上的可用空間區域合并到一個邏輯卷而創建的,可以在多個磁盤上分布數據。Raid 0不能被擴展或鏡像,并且不提供容錯。如果包含RAID 0的其中一個磁盤出現故障,則整個邏輯磁盤無法工作。最好使用相同大小、型號和制造商的磁盤。利用Raid 0,可以將數據分塊并按一定的順序在陣列中的所有磁盤上,以分布式存儲數據。Raid 0可以同時對所有磁盤進行寫數據操作,從而可以相同的速率向所有磁盤寫數據,提高數據的寫入速度,如圖1-9所示。

圖1-9 Raid 0
盡管不具備容錯能力,但Raid 0在所有數據存儲模式中的性能最好,同時它通過在多個磁盤上分配I/O請求從而提高了I/O性能。例如,Raid 0在以下情況下提高了性能:
● 從(向)大的數據庫中讀(寫)數據。
● 以極高的傳輸速率從外部源收集數據。
Raid 0模式,至少需要2塊硬盤,可以使用N塊同樣的硬盤用硬件的形式通過智能磁盤控制器或用操作系統中的磁盤驅動程序以軟件的方式串聯在一起,形成一個獨立的邏輯驅動器,容量是單獨硬盤的N倍,在執行數據寫操作時被依次寫入到各磁盤中,當一塊磁盤的空間用盡時,數據就會被自動寫入到下一塊磁盤中,它的好處是可以增加磁盤的容量,速度與其中任何一塊磁盤的速度相同。Raid 0不具備數據備份、容錯的功能,如果選中磁盤的有一塊出現故障的情況下,所有數據將全部丟失。
假設現在有2塊硬盤,建立了Raid 0數據存儲模式,數據以64K為單位進行讀寫,可以同時對2塊硬盤進行讀寫,所以Raid 0對數據的寫入、讀出速度非常快。一個文件假設有4個文件塊,第一個塊文件寫入第一個磁盤,第二個塊文件寫入第二個磁盤,第三個塊文件寫入第一個磁盤,第四個塊文件寫入第二個磁盤,以此類推。數據處理模式如圖1-10所示。

圖1-10 Raid 0數據處理模式
(4)Raid 1
Raid 1,即磁盤鏡像,把一個磁盤的數據鏡像到另一個磁盤上,在不影響性能情況下最大限度的保證系統的可靠性和可修復性上,具有很高的數據冗余能力,多用在保存關鍵性的重要數據的場合。如果一個物理磁盤出現故障,雖然該磁盤上的數據將無法使用,但系統能夠繼續使用尚未損壞而仍繼續正常運轉的磁盤進行數據的讀寫操作,從而通過另一磁盤上保留完全冗余的副本,保護磁盤上的數據免受介質故障的影響。
Raid 1的磁盤空間利用率只有50%(每組數據有兩個成員),所以Raid 1磁盤使用成本的花費相對較高。不過,對于服務器系統而言,穩定是壓倒一切的,一旦系統癱瘓,所有數據都將隨之而消失,所以,這些代價是非常值得的,如圖1-11所示。

圖1-11 Raid 1
使用Raid 1,最好使用大小、型號和制造廠家都相同的磁盤,以避免可能產生的兼容性錯誤。Raid 1可以增強讀性能,因為容錯驅動程序同時從兩個成員中同時讀取數據,所以讀取數據的速度會有所增加。當然,由于容錯驅動程序必須同時向兩個成員寫數據,所以,寫性能會略有降低。Raid 1,至少需要2塊硬盤。2塊硬盤建立的鏡像容量必須相同。Raid 1的容量等于所選用的磁盤存儲空間的總和除以所使用的磁盤數目。在實際工作環境中,Raid 1模式可能用的是最多的。
服務器上現在有2塊硬盤,建立了Raid 1。Raid 1的數據是以64K為單位讀寫的,一個文件假設有4個文件塊,第一個塊文件寫入第一個磁盤,同時第一個塊文件寫入第二個磁盤,第二個塊文件寫入第一個磁盤,同時第二個塊文件寫入第二個磁盤,以此類推。可以看出,Raid 1具備了數據備份的功能,就是說如果有一塊磁盤損壞的情況下,備份的磁盤還可以繼續工作保證數據的安全。數據處理模式如圖1-12所示。

圖1-12 Raid 1數據處理模式
提·示
Raid 1是把同一個數據塊分別寫入到2塊不同的磁盤中,在執行數據寫入的時候,速度會有一定程度的降低,但是在讀出的時候,是以并發的方式讀取得,也就是說,讀出的速度要遠遠快于寫入的速度。
Raid 1具備以下特點:
● Raid 1的每一個磁盤都具有一個對應的鏡像盤,任何時候數據都同步鏡像,系統可以從一組鏡像盤中的任何一個磁盤讀取數據。
● 磁盤所能使用的空間只有磁盤容量總和的一半,成本高。
● 系統中任何一對鏡像盤中至少有一塊磁盤可以使用,甚至可以在一半數量的硬盤出現問題時系統都可以正常運行。
● 出現硬盤故障的Raid系統不再可靠,應當及時的更換損壞的硬盤,否則剩余的鏡像盤也出現問題,那么整個系統就會崩潰。
● 更換新盤后原有數據會需要很長時間同步鏡像,外界對數據的訪問不會受到影響,只是這時整個系統的性能有所下降。
● Raid 1磁盤控制器的負載相當大,用多個磁盤控制器可以提高數據的安全性和可用性。
(5)Raid 5
在Raid 5中,操作系統通過給該卷的每個硬盤分區中添加奇偶校驗信息帶區實現容錯。如果某個硬盤出現故障,操作系統便可以用其余硬盤上的數據和奇偶校驗信息重建發生故障的硬盤上的數據,如圖1-13所示。

圖1-13 RAID 5
由于要計算奇偶校驗信息,所以,Raid 5的寫操作要比Raid 1的寫操作慢一些。但是,Raid 5卷比Raid 1提供更好的讀性能,原因很簡單,操作系統可以從多個盤上同時讀取數據。與Raid 1相比,Raid 5的性價比較高,而且Raid 5卷中的硬盤數量越多,冗余數據帶區的成本越低,因此,Raid 5被廣泛應用于數據存儲。
Raid 5,目前使用最多的一種數據備份方式,如果企業資金比較寬裕,又對速度要求很高,建議使用硬件Raid 5數據存儲方式。Raid 5卷至少需要3塊硬盤或者更多的硬盤,比前面的幾種方式硬盤數量都多。如果使用了3塊硬盤,那么Raid 5卷的容量等于所選用的其中2塊磁盤的存儲空間的和。3塊硬盤建立的Raid 5方式的容錯所需的存儲空間必須相同。Raid 5卷的數據以64K為單位讀寫的。一個文件假設有6個文件塊,第一個塊文件寫入第一個磁盤,第二個塊文件寫入第二個磁盤,第一個、第二個塊文件寫入成功以后,Raid 5根據系統提供的奇偶校驗算法對第一個文件塊和第二個文件塊進行計算,得出一個的奇偶校驗值,把這個值寫入第三塊硬盤中。也就是說現在的硬盤3上存儲的不是第三個塊文件,而是校驗信息;然后第三個塊文件寫入第一個磁盤,第四個塊文件寫入第三個磁盤,第二個磁盤上存儲的是第三個、第四個塊文件的奇偶檢驗信息;然后第五個塊文件寫入第二個磁盤,第六個塊文件寫入第三個磁盤,第一個磁盤上存儲的是第五個、第六個塊文件的奇偶檢驗信息,以此類推。從以上的存儲算法看出,Raid 5卷具備數據容錯功能,就是說如果有一塊磁盤損壞的情況下,更換磁盤以后,可以根據奇偶校驗算法反算出損壞的那塊磁盤的數據,保證數據的安全。如果這個例子中的2塊硬盤出現了問題,數據也會全部丟失。數據寫入如圖1-14所示。

圖1-14 Raid 5數據處理模式
Raid 5卷是把數據塊順序的寫入不同的磁盤中,在執行數據寫入、讀取的時候以并發的方式操作,也就是說,寫入、讀取得速度時非常快的。同時Raid 5卷具備了容錯功能。
(6)Raid1+0
Raid 1+0即由兩組Raid 1的硬盤作Raid 0的鏡像容錯。雖然Raid1+0具備有RAID 1的容錯能力和Raid 0的容量性能。但Raid 1+0的容量還是與Raid 1一樣只有50%。
Raid 1+0就是結合Raid 0、Raid 1兩種的的優點,但是需要4塊硬盤,而且可使用容量也只有2塊硬盤的大小。數據除分布在多個盤上外,每個盤都有其物理鏡像盤,提供全冗余能力,允許所有磁盤基組中的磁盤個損壞一個,但是不允許同一基組中的磁盤同時有壞的,而不影響數據可用性,并具有快速讀/寫能力。數據處理如圖1-15所示。

圖1-15 Raid1+0數據處理模式
2. 磁盤性能計數器
Windows Server2008操作系統中提供的“Physical Disk”和“Logical Disk”等對象,詳細提供磁盤的讀、寫、分頁池、傳輸速率、錯誤頁面等參數。
(1)“Physical Disk”性能計數器
“Physical Disk”性能計數器監控是計算機上的硬盤或固定磁盤驅動器的計數器。磁盤用于存儲文件、程序及分頁數據并且通過讀取檢索這些項目并通過記錄寫入對其進行更改。物理磁盤計數器的值為邏輯磁盤(由磁盤分成)值的總和,如圖1-16所示。

圖1-16 “Physical Disk”性能計數器之一
正在監控的“Physical Disk”性能指標如圖1-17所示。從該指標中,可以分析出當前物理磁盤的使用狀態。

圖1-17 “Physical Disk”性能計數器之二
(2)“Logical Disk”性能計數器
“Logical Disk”性能計數器,監控硬盤或固定磁盤驅動器邏輯分區的計數器,用邏輯磁盤的驅動器號(如: C)來識別邏輯磁盤,如圖1-18所示。

圖1-18 “Logical Disk”性能計數器之一
正在監控的“Logical Disk”性能指標如圖1-19所示。從該指標中,可以分析出當前邏輯磁盤的使用狀態。

圖1-19 “Logical Disk”性能計數器之二
3. 資源監視器-磁盤監測
資源監視器提供監測磁盤讀寫操作功能,通過圖表和文本信息可以詳細了解正在使用的磁盤基本狀態,甚至可以定位到是哪一個應用程序正在產生磁盤讀寫操作,如圖1-20所示。

圖1-20 磁盤監測之一
4. 磁盤性能計數器分析
Windows性能計數器監控中,如果“Disk Time”和“Avg.Disk Queue Length”計數器的指標值很高,而“Page Reads/sec”頁面讀取操作速率很低,則可能存在磁盤瓶徑。
磁盤資源成為影響系統性能瓶頸的預兆。
● 過高的磁盤利用率
● 太長的磁盤等待隊列
● 等待磁盤I/O的時間所占的百分率太高
● 太高的物理I/O速率
● 過低的緩存命中率
● 太長的運行進程隊列,但CPU卻空閑。