<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 高性能的Linux集群監控之道

高性能的Linux集群監控之道

作者: 時(shí)間:2016-09-12 來(lái)源:網(wǎng)絡(luò ) 收藏

監控是集群管理的核心任務(wù)監控數據可用于調度任務(wù)負載平衡向管理員報告軟硬件故障并廣泛地控制系統使用情況監控信息必須在不影響集群性能的情況下獲得本文將討論使用/proc文件系統和Java來(lái)獲得監控數據的方法

本文引用地址:http://dyxdggzs.com/article/201609/303759.htm

Java在集群中的應用

Java技術(shù)為集群管理開(kāi)發(fā)者提供了許多解決問(wèn)題的辦法Java是動(dòng)態(tài)靈活可移植的這些不尋常的特征使得它成為了在異構網(wǎng)絡(luò )及平臺上構造集群管理的理想基礎

Java具有廣泛的例程庫很容易處理IP協(xié)議如TCPUDP并可在multihomed主機上進(jìn)行網(wǎng)絡(luò )程序設計用它創(chuàng )建網(wǎng)絡(luò )連接比用C或C++更容易通過(guò)Java本地接口(JNI)運行在Java 虛擬機(JVM)內的Java代碼能夠與用其它語(yǔ)言編寫(xiě)的應用及庫文件相互操作并匯編

在構造和管理時(shí)Java早已是一個(gè)可選的語(yǔ)言然而Java語(yǔ)言通常只被用于系統的前端或集群主機部分而將用C 語(yǔ)言編寫(xiě)的守護進(jìn)程安裝在集群結點(diǎn)上盡管Java程序設計語(yǔ)言提供了許多優(yōu)點(diǎn)但是對于高性能Java能夠有效地替換運行在每個(gè)結點(diǎn)上的C 語(yǔ)言守護進(jìn)程嗎?這將是本文討論的重點(diǎn)

高性能監控

監控集群工具傳統上以秒為測量頻率來(lái)提供有限量的數據而高性能被定義為“以intrasecond為測量頻率從結點(diǎn)有效地采集數據的能力”當涉及較大集群時(shí)監控軟件的低效率問(wèn)題就變得更加嚴重這是因為所運行的應用軟件必須互相協(xié)調或共享全局資源

在一個(gè)結點(diǎn)上的阻隔沖突(Interference)能影響其它結點(diǎn)上作業(yè)的運行例如一個(gè)MPI作用需要與所有參與的結點(diǎn)同步一種解決辦法是收集少量的數據并以小頻率傳輸然而如果是高性能監控這種解決辦法是不可接受的因為有較重利用率的集群應該被頻繁持續地監控本地作業(yè)調度器必須能夠基于資源使用情況做快速決策管理員經(jīng)常希望收到緊急事件的立即通知并希望觀(guān)察到歷史趨勢數據如果集群不能被頻繁持續地監控那么這些要求是不可能實(shí)現的因此必須采取一些措施如使用更有效的算法增加傳輸的并行性提高傳輸協(xié)議及數據格式的效率減少冗余等

在跟蹤運行中的資源使用情況時(shí)壓縮Profiling應用有助于調試程序或優(yōu)化程序對一個(gè)給定的應用而言像存儲器網(wǎng)絡(luò )CPU這樣動(dòng)態(tài)資源的使用可能快速地改變著(zhù)為了能夠觀(guān)察應用是怎樣使用這些資源的一種可能的辦法是使用高頻率的監控

即使用戶(hù)對高頻率監控沒(méi)有興趣如果算法是有效的不管監控頻率是多少它也將消費很少的資源在異構集群中這種效率將更重要用戶(hù)的作業(yè)可以被分散到較快的及較慢的結點(diǎn)上慢的結點(diǎn)需要全部CPU來(lái)跟上較快的結點(diǎn)并與之同步一個(gè)監控程序花費在較慢結點(diǎn)上的CPU時(shí)間是作業(yè)的關(guān)鍵路徑

監控階段

集群監控主要消耗CPU周期與網(wǎng)絡(luò )帶寬這兩個(gè)重要資源然而資源消費問(wèn)題與這兩個(gè)資源是根本不同的CPU利用問(wèn)題對結點(diǎn)而言是完全本地化的問(wèn)題可通過(guò)創(chuàng )建有效的收集與合并算法來(lái)解決網(wǎng)絡(luò )帶寬是共享資源是規模問(wèn)題可以通過(guò)最小化網(wǎng)絡(luò )上傳輸的數據量來(lái)解決

為了解決這兩個(gè)問(wèn)題我們將集群監控分為三個(gè)階段收集合并傳輸收集階段負責從操作系統裝載數據分析數據值并存儲數據合并階段負責將來(lái)自多個(gè)數據源的數據合在一起決定數據值是否改變并過(guò)濾它們傳輸階段負責壓縮并傳輸數據本文集中討論集群監控的收集階段

收集階段

Linux有幾種方法來(lái)進(jìn)行系統統計每種方法都各有其優(yōu)缺點(diǎn)

◆ 使用現有的工具

標準及非標準工具能執行一個(gè)或多個(gè)收集合并及傳輸階段如rstatd或SNMP工具然而標準的rstat后臺程序提供的信息是有限的速度慢而且效率低

◆ 內核模塊

幾個(gè)系統監控工程利用內核模塊來(lái)存取監控數據一般情況下這是很有效的收集系統數據的方法然而這種方法存在的問(wèn)題是當主內核源內有其它改變時(shí)必須保持代碼一致性一個(gè)內核模塊可能與用戶(hù)想使用的其它內核模塊相沖突此外在使用監控系統之前用戶(hù)必須獲得或申請模塊

◆ /proc虛擬文件系統

/proc 虛擬文件系統是一個(gè)較快的高效率執行系統監控的方法使用/proc的主要缺點(diǎn)是必須保持代碼分析與/proc 文件格式改變的同步事實(shí)表明Linux內核的改變比/proc 文件格式的改變要更頻繁所以用/proc虛擬文件系統比用內核模塊存在的問(wèn)題要少

◆ 混合系統

某些監控系統采用混合方式用內核模塊收集數據用/proc虛擬文件系統作為數據接口

合并階段

合并階段的實(shí)現可以在結點(diǎn)上集群管理的主機上或者分布在兩者上考慮到效率我們只采用在結點(diǎn)上的合并原因在于結點(diǎn)是監控數據的收集器與提供者兩個(gè)或多個(gè)同時(shí)的數據請求不會(huì )引起兩次操作系統調用來(lái)收集數據而是將第一次請求獲得的數據緩存并可以提供給第二次請求調用這種方法減少了操作系統的負擔提高了監控系統的響應性合并階段也可以用于將多個(gè)數據源的數據以相互獨立的收集速率結合因為并不是所有的數據都以同樣的速度改變或者需要以同樣的速率收集

使用在結點(diǎn)層上合并的另一個(gè)原因是減少了包括傳輸在內的信息量許多/proc文件既包含動(dòng)態(tài)數據也包含靜態(tài)數據刪除最近一次傳輸后沒(méi)有改變的值一個(gè)結點(diǎn)發(fā)送的數據量可以大大地減少合并不僅除去了不經(jīng)常改變的動(dòng)態(tài)值的傳輸也解決了從不改變的靜態(tài)值的傳輸

傳輸階段

監控數據幾乎總是按一個(gè)層次結構組織起來(lái)傳輸階段的任務(wù)就是將層次數據進(jìn)行有效的編碼形成一種能高效傳輸的數據格式Java擁有的文件格式是存儲層次數據的有效方法并且用提供的Java APIs很容易完成SExpressions已經(jīng)被認為是傳輸這種數據的另一個(gè)有效的方法

關(guān)于傳輸監控數據普遍討論的問(wèn)題是數據應該按二進(jìn)制編碼還是按文本格式編碼二進(jìn)制數據更容易壓縮因此也能更有效地傳輸但是當采用/proc文件系統時(shí)監控數據通常以人們易讀的格式存儲在傳輸之前將數據轉換為二進(jìn)制格式將需要更多的處理資源與時(shí)間以文本格式保留收集的數據結點(diǎn)資源能被用于更多非監控性的相關(guān)工作

采用文本格式的數據將提供如下額外的益處

◆ 平臺獨立性

當監控異構集群時(shí)機器之間數據字節指令的配置不是永遠相同的文本格式的使用在代碼方面解決了這個(gè)問(wèn)題而且體系結構獨立不會(huì )影響更多的處理需求

◆ 易讀的格式

文本數據能以人們易讀的格式進(jìn)行組織如果需要的話(huà)這種特征能容易地進(jìn)行程序調試或允許用戶(hù)觀(guān)看數據流


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: Linux 集群監控

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>