www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]監(jiān)控是集群管理的核心任務(wù)監(jiān)控?cái)?shù)據(jù)可用于調(diào)度任務(wù)負(fù)載平衡向管理員報(bào)告軟硬件故障并廣泛地控制系統(tǒng)使用情況監(jiān)控信息必須在不影響集群性能的情況下獲得本文將討論使用/proc文

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

Java在Linux集群中的應(yīng)用

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

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

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

高性能監(jiān)控

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

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

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

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

監(jiān)控階段

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

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

收集階段

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

◆ 使用現(xiàn)有的工具

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

◆ 內(nèi)核模塊

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

◆ /proc虛擬文件系統(tǒng)

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

◆ 混合系統(tǒng)

某些監(jiān)控系統(tǒng)采用混合方式用內(nèi)核模塊收集數(shù)據(jù)用/proc虛擬文件系統(tǒng)作為數(shù)據(jù)接口

合并階段

合并階段的實(shí)現(xiàn)可以在結(jié)點(diǎn)上集群管理的主機(jī)上或者分布在兩者上考慮到效率我們只采用在結(jié)點(diǎn)上的合并原因在于結(jié)點(diǎn)是監(jiān)控?cái)?shù)據(jù)的收集器與提供者兩個(gè)或多個(gè)同時(shí)的數(shù)據(jù)請(qǐng)求不會(huì)引起兩次操作系統(tǒng)調(diào)用來(lái)收集數(shù)據(jù)而是將第一次請(qǐng)求獲得的數(shù)據(jù)緩存并可以提供給第二次請(qǐng)求調(diào)用這種方法減少了操作系統(tǒng)的負(fù)擔(dān)提高了監(jiān)控系統(tǒng)的響應(yīng)性合并階段也可以用于將多個(gè)數(shù)據(jù)源的數(shù)據(jù)以相互獨(dú)立的收集速率結(jié)合因?yàn)椴⒉皇撬械臄?shù)據(jù)都以同樣的速度改變或者需要以同樣的速率收集

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

傳輸階段

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

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

采用文本格式的數(shù)據(jù)將提供如下額外的益處

◆ 平臺(tái)獨(dú)立性

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

◆ 易讀的格式

文本數(shù)據(jù)能以人們易讀的格式進(jìn)行組織如果需要的話這種特征能容易地進(jìn)行程序調(diào)試或允許用戶觀看數(shù)據(jù)流[!--empirenews.page--]

◆ 有效壓縮

數(shù)值數(shù)據(jù)的文本表示由來(lái)自個(gè)字節(jié)集中的字符組成而不是二進(jìn)制下的個(gè)字節(jié)集它們產(chǎn)生的數(shù)字及模式的相對(duì)頻率允許有效地使用基于壓縮算法的字典及熵(平均信息量)

/proc虛擬文件系統(tǒng)

/proc虛擬文件系統(tǒng)(也叫procfs)是Unix操作系統(tǒng)所使用的虛擬文件系統(tǒng)的Linux實(shí)現(xiàn)包括Sun SolarisLinuxBSD在/proc開(kāi)始時(shí)它以一個(gè)標(biāo)準(zhǔn)文件系統(tǒng)出現(xiàn)并包含與正在運(yùn)行的進(jìn)程IDs同樣名字的文件然而在/proc中的文件不占用磁盤(pán)空間它們存在于工作存儲(chǔ)器(內(nèi)存)中/proc最初的目的是便于進(jìn)程信息的存取但是現(xiàn)在在Linux中它可被內(nèi)核的每一部分使用來(lái)報(bào)告某些事情

在/proc文件系統(tǒng)提供的成百上千的值當(dāng)中我們將集中考慮集群監(jiān)控所需的最小集它們包括

◆ /proc/loadavg包含系統(tǒng)負(fù)載平均值;

◆ /proc/meminfo包含存儲(chǔ)管理統(tǒng)計(jì)量;

◆ /proc/net/dev包含網(wǎng)卡度量;

◆ /proc/stat包含內(nèi)核統(tǒng)計(jì)量;

◆ /proc/uptime包含總的系統(tǒng)正常工作時(shí)間及空閑時(shí)間

每個(gè)文件提供的值的數(shù)量是不同的這些文件的完整有效值列表如下

◆ /proc/loadavg提供以下數(shù)據(jù)

秒鐘平均負(fù)載;

秒鐘平均負(fù)載;

秒鐘平均負(fù)載;

總作業(yè)數(shù);

正在運(yùn)行的作業(yè)總數(shù)

◆ /proc/meminfo提供的存儲(chǔ)器信息包括

活動(dòng)存儲(chǔ)器;

不活動(dòng)存儲(chǔ)器;

緩沖存儲(chǔ)器;

高速緩沖存儲(chǔ)器;

總的自由存儲(chǔ)器;

總的高位存儲(chǔ)器;

自由高位存儲(chǔ)器;

總的低位存儲(chǔ)器;

自由低位存儲(chǔ)器;

共享存儲(chǔ)器;

交換存儲(chǔ)器;

交換高速緩沖存儲(chǔ)器;

交換自由存儲(chǔ)器;

總存儲(chǔ)器

◆ /proc/net/dev中包括每個(gè)網(wǎng)卡的如下數(shù)據(jù)

接收到的字節(jié);

接收到的壓縮字節(jié);

收到的誤碼數(shù);

收到的漏失誤碼;

收到的FIFO誤碼;

收到的幀誤碼;

收到的多播誤碼;

收到的總包數(shù);

已傳輸?shù)淖止?jié);

已傳輸?shù)膲嚎s字節(jié);

傳輸誤碼總數(shù);

傳輸載波誤碼;

傳輸沖突誤碼;

傳輸漏失誤碼;

傳輸FIFO誤碼;

傳輸?shù)目偘鼣?shù)

◆ /proc/stat提供

引導(dǎo)時(shí)間;

上下文切換數(shù)量;

中斷總量;

進(jìn)頁(yè)面總數(shù);

出頁(yè)面總數(shù);

進(jìn)程總數(shù);

換入總數(shù);

換出總數(shù);

合計(jì)CPU空閑時(shí)間;

合計(jì)CPU nice時(shí)間;

合計(jì)CPU系統(tǒng)時(shí)間;

合計(jì)CPU用戶時(shí)間

同時(shí)提供對(duì)每個(gè)CPU的:

單個(gè)CPU空閑時(shí)間;

單個(gè)CPU nice時(shí)間;

單個(gè)CPU系統(tǒng)時(shí)間;

單個(gè)CPU用戶時(shí)間

以及對(duì)每個(gè)磁盤(pán)驅(qū)動(dòng)器的如下數(shù)據(jù)

單個(gè)磁盤(pán)塊讀;

單個(gè)磁盤(pán)塊寫(xiě);

單個(gè)磁盤(pán)I/O總數(shù);

單個(gè)磁盤(pán)I/O讀;

單個(gè)磁盤(pán)I/O寫(xiě)

◆ /proc/uptime中包括

系統(tǒng)總工作時(shí)間;

系統(tǒng)總空閑時(shí)間

值得注意的是每次某個(gè)/proc被讀時(shí)一個(gè)句柄函數(shù)都被內(nèi)核或特有模塊調(diào)用來(lái)產(chǎn)生數(shù)據(jù)數(shù)據(jù)在運(yùn)行中產(chǎn)生不管是讀一個(gè)字符還是一個(gè)大的字塊整個(gè)文件都將被重建這對(duì)效率是至關(guān)重要的一點(diǎn)因?yàn)槭褂?proc的任何系統(tǒng)監(jiān)控器將吞下整個(gè)文件而不是一點(diǎn)一點(diǎn)地處理它

Java提供了豐富的文件I/O類集包括基于類的流基于類的塊設(shè)備以及JSDK 提供的新的I/O庫(kù)實(shí)驗(yàn)表明一般而言對(duì)基本的塊讀寫(xiě)文件操作用RandomAccessFile類進(jìn)行I/O是最佳的例如塊讀文件操作如下

mFile = new RandomAccessFile( "/proc/meminfo" "r" );

//以讀方式打開(kāi)文件

mFileread( mBuffer ); //讀文件塊

結(jié)論

本文討論了如何將Java語(yǔ)言有效地用于Linux集群結(jié)點(diǎn)上的高性能監(jiān)控在程序設(shè)計(jì)中要注意以下方面

◆ 采用/proc文件系統(tǒng);

◆ 以塊形式讀/proc文件而不是以行或字符形式;

◆ 在讀文件期間保持文件打開(kāi);

◆ 消除不必要的數(shù)據(jù)轉(zhuǎn)換;

◆ 在結(jié)點(diǎn)上合并數(shù)據(jù);

◆ 以壓縮形式傳輸數(shù)據(jù);

◆ 注意與性能問(wèn)題相關(guān)的語(yǔ)言或庫(kù)

對(duì)高性能監(jiān)控而言內(nèi)核模塊不是必要條件這點(diǎn)很重要因?yàn)樗贚inux版本和分類之間提供了很大程度的可移植性在監(jiān)控器實(shí)現(xiàn)語(yǔ)言上有很多的選擇但是/proc文件系統(tǒng)的性能卻很依賴內(nèi)核代碼的效率因此適當(dāng)?shù)乩斫庥嘘P(guān)的機(jī)制將對(duì)以任何語(yǔ)言編寫(xiě)的監(jiān)控器性能有非常大的影響。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉