天天看點

c# 伺服器性能監控,基于C#的伺服器性能監控系統的設計與實作.doc

基于C#的伺服器性能監控系統的設計與實作.doc

基于C#的伺服器性能監控系統的設計與實作

【摘 要】提出一種能夠監控伺服器CPU性能、硬碟使用以及記憶體使用情況的軟體,該軟體通過visual2010進行基于C# WINFROM設計,能夠對windows平台下的伺服器系統進行性能監控,并發出聲光告警,同時實作文本日志檔案記錄,應用于空管内網共享伺服器、FIPS伺服器及相關軟體伺服器平台。

【關鍵詞】伺服器監控;C# 空管

0.引言

随着計算機技術的發展,承擔大型業務的伺服器的健康狀況也成為技術維護人員關注的焦點。空中交通管理行業自資訊化一期實施以來,越來越多依賴于基于B/S模式的資訊化處理,包括内部網絡監控、内部辦公系統、技術保障部門的運作維護系統(中南局技術中心開發)等等。涉及範圍包括業務運作、辦公處理、技術保障等多重方面。伺服器健康的重要性不言而喻,特别是内部資料融合需求日益提高、聯合部署的系統也逐日增加的情況下,如若伺服器性能無法滿足運作需求,如硬碟故障、整機下電、壽命縮短,對于運作勢必造成大範圍影響。同時,由于裝置安裝的環境需求以及伺服器檢查的相關規定,對于日益繁忙的空管技術保障工作,伺服器的性能檢測又成為技術保障人員的另一個壓力。本文提出一種基于C#的伺服器監控系統,能夠實作對伺服器的無人智能監控,以減少技術維護人員的壓力,并對故障防範于未然。

1.總體設計

軟體設計主要包括三方面,一是CPU性能監控,二是硬碟監控,三則是記憶體使用監控。其中内容使用情況與CPU性能監控可以合并到同個設計子產品。而在具體實作上有資料讀取、資料分析處理、系統告警及記錄日志等功能。實作如圖1。

圖1 系統整體設計圖

資料讀取子產品主要負責原始資料的采集,而資料分析處理則是對于原始資料的進一步處理,包括軟體界面的資料顯示,告警功能則包含對告警門檻值的設定、聲音設定及軟體的其他告警配置。在整個過程中,日志記錄功能記錄包括告警資訊、系統操作資訊以及資料讀取分析資訊在内的系統資訊,其設計主要為後續的排故及安全事件調查提供資料依據。與此同時,由于系統部署的實際需求,記錄采用無需安裝的文本檔案形式進行記錄,減少由資料庫記錄帶來的安裝上的不便。

2.設計與實作

2.1 CPU性能與記憶體監控設計

C#提供了大量封裝的設計類,它們的出現,對縮短設計開發周期,提高開發效率有一定的意義。PerformanceCounter就是其中一種。作為 Windows NT 性能計數器元件,它提供了對計算機CPU性能監控的一種方法,主要可監控的功能項包括“Cache”(緩存)、“Memory”(記憶體)、“Objects”(對象)、“PhysicalDisk”(實體磁盤)、“Process”(程序)、“Processor”(處理器)、“Server”(伺服器)、“System”(系統)和“Tead”(線程)等類别。是以系統通過它可以簡單實作對CPU的性能監控。

private static void PerformanceCounterFun(string CategoryName, string InstanceName, string CounterName)

{

PerformanceCounter pc=new PerformanceCounter(CategoryName, CounterName,InstanceName);while(true)

{

Thread.Sleep(1000);//等待1s

float cpuLoad=pc.NextValue();

Console.WriteLine("CPU load="+cpuLoad+"%.");

}

}

系統函數通過線程等待進行每隔1s的監控資料采集。另外,在軟體設計中定義變量CPU_value,它将接收cpuLoad的資料值,并與系統告警子產品内部設定的CPU_threshold進行每隔5s的定時比較,如果不符合要求則提出聲音告警。相關處理在Timer定時器中實作。

2.2 硬碟使用監控設計

由于空管安全資料要求以及資料記錄的不間斷性,根據裝置維護經驗統計,硬碟使用空間到極限、硬碟壞塊出現等硬碟故障成為空管伺服器監控的最為常見、最為嚴重的關鍵點。為了提高系統設計的子產品化性能以及友善後續維護,系統設計通過C#編寫自己的硬碟監控類,而不直接采用PerformanceCounter類。在實際應用中隻需要對硬碟監控類進行執行個體化即可實作硬碟監控程式編寫。類的主要功能是提供硬碟名稱、硬碟總容量、硬碟使用剩餘容量、硬碟已用容量、硬碟格式設定以及擷取磁盤詳細性格式等基本功能。具體實作如下:

首先對于系統的通用性,通過C#清單進行硬碟實