freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于web的機(jī)群監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)-閱讀頁

2025-07-12 20:07本頁面
  

【正文】 proc偽文件系統(tǒng)采集方法實(shí)現(xiàn)不但簡(jiǎn)單,并且對(duì)機(jī)群的影響較小。 通過/proc虛擬文件系統(tǒng)采集數(shù)據(jù) 監(jiān)測(cè)信息采集原理介紹過去,類似ps和uptime這樣的UNIX程序必須通過直接訪問內(nèi)核的數(shù)據(jù)結(jié)構(gòu)來檢索系統(tǒng)信息。程序必須設(shè)置setuid位成為超級(jí)用戶后才可以訪問內(nèi)核的數(shù)據(jù)結(jié)構(gòu);這意味著如果程序編寫不當(dāng)很容易帶來安全隱患。某些比較現(xiàn)代的操作系統(tǒng)實(shí)現(xiàn)了一個(gè)/proc文件系統(tǒng),可以通過讀取它所包含的特殊文件來訪問系統(tǒng)的狀態(tài)信息。/proc文件系統(tǒng)是一個(gè)偽文件系統(tǒng),它只存在內(nèi)存中,而不占用外存空間。用戶和應(yīng)用程序可以通過/proc文件系統(tǒng)得到系統(tǒng)和每個(gè)進(jìn)程的信息,并可以改變內(nèi)核的某些參數(shù)。系統(tǒng)中任何時(shí)刻正在運(yùn)行的每個(gè)用戶級(jí)進(jìn)程在/proc 下都有一個(gè)目錄;目錄的名稱就是進(jìn)稱號(hào)的十進(jìn)制表示,如某個(gè)進(jìn)程的進(jìn)程號(hào)為2345,則在/proc目錄下面就會(huì)有一個(gè)名為2345的目錄,在這個(gè)目錄里面存放著該進(jìn)程的相關(guān)信息。/proc文件系統(tǒng)下的一些條目可以寫入信息,這就提供了在運(yùn)行期間改變內(nèi)核參數(shù)的手段。Linux通過它的/proc文件系統(tǒng)提供了比其他許多系統(tǒng)更多的信息。即便在活動(dòng)進(jìn)程方面,Linux 的/proc文件系統(tǒng)也提供了比其他大多數(shù)操作系統(tǒng)更多的信息。/usr/src/linux/fs/proc下能夠找到實(shí)現(xiàn)/proc文件系統(tǒng)和它的一些項(xiàng)的代碼。 監(jiān)測(cè)信息的獲取以CPU利用率和內(nèi)存利用率的獲取為例,闡述如何通過/proc偽文件系統(tǒng)獲取相應(yīng)的監(jiān)測(cè)信息。例如:$cat/proc/cpuinfoprocessor :0vendor_id :GenuineIntelcpu family :6model :15model name :Intel174。例如:$cat/proc/statcpu 71190 4909 60473 579400 10257 2484 0 0cpu0 41030 2951 39452 267983 6764 1357 0 0……文件的第一行表示所有CPU的負(fù)載合計(jì),接下來幾行為單個(gè)CPU的負(fù)載信息。依次表示:等待輸入/輸出(iowait)、中斷(irq)、軟中斷(softirq)分別各自從系統(tǒng)啟動(dòng)后消耗的時(shí)間,這些時(shí)間都以1/100秒作為單位,設(shè)一個(gè)1/100秒為一個(gè) jiffy。例如,第二次讀取Stat文件的內(nèi)容為:$cat/proc/statcpu 71190 4909 60473 579400 10257 2485 0 0cpu0 41030 2951 39452 267983 6764 1357 0 0……以計(jì)算“cpu0”的利用率為例,user1=41030,nice1=2951,system1=39452,idle1=267983,iowait1=6764,irq1=1357,softirq1=O。idlerate=(idle2idle1)*100/(total2一total1)=。(2)內(nèi)存信息可從文件/proc/meminfo獲取,此文件的格式為:由多行構(gòu)成,每行包括一個(gè)域名稱,一個(gè)值和一個(gè)單位。 部分代碼實(shí)現(xiàn)本文的信息檢測(cè)部分在Linux環(huán)境下采用C語言實(shí)現(xiàn),所實(shí)現(xiàn)的主要工作主要是對(duì)/proc文件的解析,代碼實(shí)現(xiàn)比較簡(jiǎn)單,大量的工作是對(duì)/proc文件的解析上。 char buf[20]。 FILE *fp。 //打開文件,第一次讀/proc/cpuinfo文件 if(fp==NULL) { printf(cpuinfo can not open\n)。 } fread(buffer,4096+1,1,fp)。 while(i7){ fgets(buf,15,fp)。 fgets(buf,20,fp)。 i++。 // printf(%s\n, buffer)。 return 0。 float user。 float system。 char cpu[21]。 FILE *fp。//讀取/proc/stat文件 while (fgets(text, 200, fp))//利用while循環(huán)和fgets函數(shù)讀取/proc/stat文件的所有行 { if (strstr(text, cpu)) { sscanf(text, %s %f %f %f %f, cpu, amp。nice, amp。idle)。 total = (user + nice + system + idle)。 nice = (nice/total)*100。 idle = (idle/total)*100。 // printf(%s\n,cpu)。 printf(%s\n,cpu)。 printf(%s\n,cpu)。 printf(%s\n,cpu)。 printf(%s\n,cpu)。}int main(int argc,char **argv){ //char cpu_detail[200]。}采集其他監(jiān)測(cè)信息同樣是對(duì)相應(yīng)/proc文件的解析,此處就不一一贅述。C/S模式中,客戶機(jī)與服務(wù)器的通信通常都是通過Socket套接字來實(shí)現(xiàn)的,它位于傳輸層,相對(duì)于B/S結(jié)構(gòu)通過應(yīng)用層的Http協(xié)議進(jìn)行通信,顯然效率要高的多。而B/S結(jié)構(gòu)的軟件通常是通過瀏覽器解釋執(zhí)行的,速度要慢的多。u C/S結(jié)構(gòu)具有較強(qiáng)的事務(wù)處理能力,能實(shí)現(xiàn)復(fù)雜的處理流程。服務(wù)器端的狀態(tài)改變,能夠及時(shí)的在客戶端反映出來。C/S模式具有強(qiáng)壯的數(shù)據(jù)操縱和事務(wù)處理能力,以及數(shù)據(jù)的安全性和完整性約束。C/S結(jié)構(gòu)對(duì)客戶端軟硬件要求較高,尤其是軟件的不斷升級(jí),對(duì)硬件要求不斷提高,增加了整個(gè)系統(tǒng)的成本,客戶端越來越臃腫。l 由于是針對(duì)性開發(fā),因此缺少通用性的特點(diǎn),業(yè)務(wù)變更或改變不夠靈活,需要重新設(shè)計(jì)和開發(fā),增加了維護(hù)和管理的難度,進(jìn)一步的業(yè)務(wù)拓展困難較多。在不同操作系統(tǒng)平臺(tái)上開發(fā)的程序,通常不能直接移植到不同的操作系統(tǒng)平臺(tái)上使用。如果應(yīng)用程序要升級(jí),必須到現(xiàn)場(chǎng)為客戶機(jī)一一升級(jí),每個(gè)客戶機(jī)上的應(yīng)用程序都需維護(hù),因此就不能夠?qū)崿F(xiàn)快速部署安裝和配置。Internet擁有強(qiáng)大的適用范圍和可訪問性,而且結(jié)構(gòu)靈活,結(jié)構(gòu)是在內(nèi)容確定之后再發(fā)展出來的,是動(dòng)態(tài)的,是內(nèi)容的派生物,內(nèi)容不由結(jié)構(gòu)定義,也不受結(jié)構(gòu)的限制。很顯然,Internet和C/S模式具有很強(qiáng)的互補(bǔ)性。而Internet的優(yōu)勢(shì)在于它強(qiáng)大的可擴(kuò)充性、廣泛的可訪問性以及巨大的容量。所以Internet所派生出的技術(shù)正逐漸為傳統(tǒng)的C/S模式開發(fā)者們所采用,這就是基于WWW的C/S 模式,亦稱為Browser/Server模式。隨著B/S模式的發(fā)展,瘦客戶的硬件內(nèi)涵正在改變,但瘦客戶的概念并未變—在需要時(shí)獲取代碼和數(shù)據(jù),用完后丟棄。瘦客戶對(duì)要求少量數(shù)據(jù)訪問的靜態(tài)報(bào)告是最合適的,隨著B/S模式的應(yīng)用,在一些領(lǐng)域瘦客戶結(jié)構(gòu)開始逐漸代替?zhèn)鹘y(tǒng)的胖客戶結(jié)構(gòu)。數(shù)據(jù)存儲(chǔ)在中央點(diǎn),用戶不能將合作數(shù)據(jù)保存到存儲(chǔ)介質(zhì),這完全不同于PC或便攜機(jī)。這使跨Internet的信息、共享成為可能,用戶可以用一致的界面形式和統(tǒng)一的、透明的訪問方式對(duì)網(wǎng)絡(luò)上的信息進(jìn)行檢索和瀏覽,并且只需要較少的軟件支持。WWW服務(wù)由WWW客戶機(jī)(瀏覽器)和WWW服務(wù)器完成。服務(wù)時(shí)瀏覽器與服務(wù)器建立會(huì)話連接,瀏覽器發(fā)出請(qǐng)求,服務(wù)器作出相應(yīng)的響應(yīng),回送應(yīng)答數(shù)據(jù)。首先,由于B/S基于Web技術(shù),客戶端只需安裝瀏覽器,而瀏覽器僅限于從服務(wù)器端下載表示邏輯,當(dāng)業(yè)務(wù)邏輯有所變化是,在客戶端會(huì)動(dòng)態(tài)反映,這徹底解決了C/S模式的可維護(hù)性問題。B/S模式采用統(tǒng)一的Internet技術(shù)和標(biāo)準(zhǔn),如,TCP/IP、HTTP、SMTP和HTML等,使得通信與網(wǎng)絡(luò)拓?fù)浜途W(wǎng)絡(luò)操作系統(tǒng)無關(guān),通過一個(gè)瀏覽器可以訪問多個(gè)應(yīng)用服務(wù)器,形成點(diǎn)到多點(diǎn),多點(diǎn)到多點(diǎn)的結(jié)構(gòu)模型,實(shí)現(xiàn)真正意義上的跨平臺(tái),這是C/S模式所無法比擬的。開發(fā)人員集中在服務(wù)器端開發(fā),使用統(tǒng)一的標(biāo)準(zhǔn)開發(fā)語言,如JAVA,Ruby等,一定程度上避免了技術(shù)的不統(tǒng)一性,降低了維護(hù)和開發(fā)費(fèi)用。這大大提高了開發(fā)人員的工作效率。 開發(fā)工具和平臺(tái) 1.Web服務(wù)器選擇 我們選擇了Ruby中的WEBrick庫所提供的簡(jiǎn)單的HTTP服務(wù)器服務(wù)來提供服務(wù)。2.開發(fā)工具選擇由于利用Ruby的開發(fā)簡(jiǎn)單、快捷,我們因此利用Vim在Linux進(jìn)行相關(guān)的Ruby腳本語言的編寫和HTML/CSS代碼的編寫。 相關(guān)代碼具體實(shí)現(xiàn)l 節(jié)點(diǎn)機(jī)服務(wù)器端!/usr/bin/rubyRuby標(biāo)準(zhǔn)庫中封裝了socketrequire 39。require 39。if ARGV[0]==nil or ARGV[1]==nil abort 39。end定義機(jī)群的服務(wù)器端端口為9876me = (ARGV[1], 9876)把命令行第一個(gè)參數(shù)當(dāng)做本節(jié)點(diǎn)機(jī)的名字告知服務(wù)器端 ARGV[0]want_closed = false用戶可以按下Ctrl+C終止該程序退出機(jī)群監(jiān)測(cè)trap(INT) { want_closed = true}loop do begin阻塞的時(shí)候無法響應(yīng)Ctrl+C,所以設(shè)置每五秒一個(gè)超時(shí)以響應(yīng)用戶的退出操作 timeout(5) do cmd = `{(__FILE__)}/{cmd}`.gsub(/\n/, 39。) end rescue Timeout::Error if want_closed alert_closed = (ARGV[1], 9876) close_me {ARGV[0]} abort You closed client {ARGV[0]} end endendl Web服務(wù)器端 使用Ruby標(biāo)準(zhǔn)庫Webrick做Web服務(wù)器require 39。include WEBrick建立一個(gè)線程用于接收節(jié)點(diǎn)機(jī)的連接和處理節(jié)點(diǎn)機(jī)的退出操作CMDS= [39。, 39。, 39。, 39。, 39。, 39。, 39。, 39。, 39。, 39。, 39。]class Root HTTPServlet::AbstractServlet def do_POST (req, res)處理用戶提交的表單,針對(duì)每個(gè)選中的節(jié)點(diǎn)機(jī)提交選中的命令,獲得節(jié)點(diǎn)機(jī)返回的結(jié)果 results = [] do |cmd| results `{}/{cmd}` if [cmd] end do_GET(req, res) end def do_GET (req, res) results ||= [] =200 res[39。]=39。 charset=utf839。/39。39。/39。/css39。/39。如圖可見端口為8080,在系統(tǒng)中的進(jìn)程序號(hào)為pid=2159 節(jié)點(diǎn)機(jī)服務(wù)器端的啟動(dòng)和運(yùn)行圖52 節(jié)點(diǎn)機(jī)服務(wù)器端的啟動(dòng)Figure 52 The start of the Node Server在終端中打開服務(wù)器端連接程序,輸入節(jié)點(diǎn)機(jī)名稱 所要連接的Web服務(wù)器的IP地址后,節(jié)點(diǎn)機(jī)成功與Web服務(wù)器連接。 瀏覽器客戶端對(duì)Web服務(wù)器的訪問打開瀏覽器,輸入://localhost:8080/,打開Web服務(wù)器訪問頁面圖53 系統(tǒng)監(jiān)視器頁面Figure 53 The Page of the System Monitor如圖53可見在沒有節(jié)點(diǎn)機(jī)服務(wù)器端連接Web服務(wù)器的時(shí)候,頁面上只有節(jié)點(diǎn)機(jī)監(jiān)測(cè)狀態(tài)的各個(gè)選項(xiàng),在沒有節(jié)點(diǎn)機(jī)連接的情況下無法對(duì)節(jié)點(diǎn)機(jī)進(jìn)行監(jiān)測(cè)。有C1和C2兩個(gè)節(jié)點(diǎn),勾選節(jié)點(diǎn)C1和節(jié)點(diǎn)C2時(shí),如圖54,兩個(gè)節(jié)點(diǎn)的監(jiān)測(cè)信息分別顯示在頁面中。完成了節(jié)點(diǎn)機(jī)系統(tǒng)信息的采集。對(duì)C/S模式的機(jī)群監(jiān)測(cè)系統(tǒng)優(yōu)缺點(diǎn)進(jìn)行了分析。這種結(jié)構(gòu)能夠?qū)崿F(xiàn)機(jī)群監(jiān)測(cè)的大部分功能,并且由于體系結(jié)構(gòu)的先進(jìn)性, C/S結(jié)構(gòu)的機(jī)群監(jiān)測(cè)系統(tǒng)中所存在的不足。 有待改進(jìn)的地方。2.實(shí)現(xiàn)功能還不夠完善,比如進(jìn)程信息,進(jìn)程對(duì)CPU資源的使用率等動(dòng)態(tài)信息的采集和監(jiān)測(cè)以及對(duì)監(jiān)測(cè)機(jī)端的報(bào)警/預(yù)警功能。對(duì)于一套完善的系統(tǒng),不僅僅需要它在沒有錯(cuò)誤的時(shí)候正常運(yùn)行,更要求它能夠處理各種異常情況。通過人工的方法在節(jié)點(diǎn)機(jī)上重新啟動(dòng)Agent顯然并不是一個(gè)好的方法。這樣當(dāng)其中某一個(gè)Agent出現(xiàn)意外的時(shí)候,可以由其他的Agent將其重新啟動(dòng)。在我們的研究開發(fā)過程中,發(fā)現(xiàn)了一套B/S模式的機(jī)群監(jiān)測(cè)系統(tǒng):Ganglia,distributed monitoring and execution system(分布式的監(jiān)控和執(zhí)行系統(tǒng))。我們的想法和Ganlia幾乎是完全一致的。我們現(xiàn)在就可以通過Ⅱ機(jī)群系統(tǒng),我們甚至可以深入這個(gè)機(jī)群的每一個(gè)節(jié)點(diǎn)。不過B/S結(jié)構(gòu)也并非是完美的,節(jié)點(diǎn)狀態(tài)的即時(shí)顯示,對(duì)于B/S模式的系統(tǒng)來說,只能通過頁面的刷新來實(shí)現(xiàn),而不能象C/S模式的客戶端一樣在收到新的信息后可以立刻的顯示出來?;◣V老師平日里工作繁多,但在我做畢業(yè)設(shè)計(jì)的每個(gè)階段,從外出實(shí)習(xí)到查閱資料,設(shè)計(jì)的確定和修改,中期檢查,后期詳細(xì)設(shè)計(jì)等整個(gè)過程中都給予了我悉心的指導(dǎo)。在此,向他表示崇高的敬意和衷心的感謝。感謝眾位老師對(duì)我的培養(yǎng)、幫助和關(guān)心。你們對(duì)我生活和學(xué)習(xí)的關(guān)心,我永生難忘。最后也是最深的感謝獻(xiàn)給我的家人,在我多年的求學(xué)生涯中,是他們的不斷鼓勵(lì)和支持,
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1