亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 服務器 > Linux服務器 > 正文

Linux操作系統高性能集群監控管理之道

2024-09-05 23:01:34
字體:
來源:轉載
供稿:網友

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


Java在Linux集群中的應用


Java技術為集群管理開發者提供了許多解決問題的辦法。Java是動態、靈活、可移植的,這些不尋常的特征使得它成為了在異構網絡及平臺上構造集群管理的理想基礎。


Java具有廣泛的例程庫,很容易處理IP協議,如TCP、UDP,并可在multi-homed主機上進行網絡程序設計,用它創建網絡連接比用C或C++更容易。通過Java本地接口(JNI),運行在Java 虛擬機(JVM)內的Java代碼能夠與用其它語言編寫的應用及庫文件相互操作并匯編。


在構造集群監控和管理時,Java早已是一個可選的語言。然而,Java語言通常只被用于系統的前端或集群主機部分,而將用C 語言編寫的守護進程安裝在集群結點上。盡管Java程序設計語言提供了許多優點,但是,對于高性能集群監控,Java能夠有效地替換運行在每個結點上的C 語言守護進程嗎?這將是本文討論的重點。


高性能監控


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


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


在跟蹤運行中的資源使用情況時,壓縮Profiling應用有助于調試程序或優化程序。對一個給定的應用而言,像存儲器、網絡、CPU這樣動態資源的使用可能快速地改變著,為了能夠觀察應用是怎樣使用這些資源的,一種可能的辦法是使用高頻率的監控。


即使用戶對高頻率監控沒有興趣,如果算法是有效的,不管監控頻率是多少,它也將消費很少的資源。在異構集群中這種效率將更重要,用戶的作業可以被分散到較快的及較慢的結點上,慢的結點需要全部CPU來跟上較快的結點并與之同步。一個監控程序花費在較慢結點上的CPU時間是作業的關鍵路徑。


監控階段


集群監控主要消耗CPU周期與網絡帶寬這兩個重要資源。然而,資源消費問題與這兩個資源是根本不同的。CPU利用問題對結點而言是完全本地化的問題,可通過創建有效的收集與合并算法來解決。網絡帶寬是共享資源,是規模問題,可以通過最小化網絡上傳輸的數據量來解決。


為了解決這兩個問題,我們將集群監控分為三個階段:收集、合并、傳輸。收集階段負責從操作系統裝載數據、分析數據值,并存儲數據。合并階段負責將來自多個數據源的數據合在一起,決定數據值是否改變并過濾它們。傳輸階段負責壓縮并傳輸數據。本文集中討論Linux集群監控的收集階段。


1.收集階段


Linux有幾種方法來進行系統統計,每種方法都各有其優缺點。


◆ 使用現有的工具


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


◆ 內核模塊


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


◆ /proc虛擬文件系統


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


◆ 混合系統


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


2.合并階段


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


使用在結點層上合并的另一個原因是,減少了包括傳輸在內的信息量。許多/proc文件既包含動態數據也包含靜態數據。刪除最近一次傳輸后沒有改變的值,一個結點發送的數據量可以大大地減少。合并不僅除去了不經常改變的動態值的傳輸,也解決了從不改變的靜態值的傳輸。


3.傳輸階段


監控數據幾乎總是按一個層次結構組織起來。傳輸階段的任務就是將層次數據進行有效的編碼,形成一種能高效傳輸的數據格式。Java擁有的文件格式是存儲層次數據的有效方法,并且用提供的Java APIs很容易完成。S-Expressions已經被認為是傳輸這種數據的另一個有效的方法。


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


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


◆ 平臺獨立性


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


◆ 易讀的格式


文本數據能以人們易讀的格式進行組織。如果需要的話,這種特征能容易地進行程序調試或允許用戶觀看數據流。


◆ 有效壓縮


數值數據的文本表示由來自10個字節集中的字符組成,而不是二進制下的256個字節集。它們產生的數字及模式的相對頻率允許有效地使用基于壓縮算法的字典及熵(平均信息量)。 
/proc虛擬文件系統


/proc虛擬文件系統(也叫procfs)是Unix操作系統所使用的虛擬文件系統的Linux實現,包括Sun Solaris、LinuxBSD。

在/proc開始時,它以一個標準文件系統出現,并包含與正在運行的進程IDs同樣名字的文件。然而,在/proc中的文件不占用磁盤空間,它們存在于工作存儲器(內存)中。/proc最初的目的是便于進程信息的存取,但是現在,在Linux中,它可被內核的每一部分使用來報告某些事情。

在/proc文件系統提供的成百上千的值當中,我們將集中考慮集群監控所需的最小集,它們包括:


◆ /proc/loadavg:包含系統負載平均值;

◆ /proc/meminfo:包含存儲管理統計量;

◆ /proc/net/dev:包含網卡度量;

◆ /proc/stat:包含內核統計量;

◆ /proc/uptime:包含總的系統正常工作時間及空閑時間。

每個文件提供的值的數量是不同的。這些文件的完整有效值列表如下。

◆ /proc/loadavg提供以下數據:

1秒鐘平均負載;

5秒鐘平均負載;

15秒鐘平均負載;

總作業數;

正在運行的作業總數。


◆ /proc/meminfo提供的存儲器信息包括:

活動存儲器;

不活動存儲器;

緩沖存儲器;

高速緩沖存儲器;

總的自由存儲器;

總的高位存儲器;

自由高位存儲器;

總的低位存儲器;

自由低位存儲器;

共享存儲器;

交換存儲器;

交換高速緩沖存儲器;

交換自由存儲器;

總存儲器。


◆ /proc/net/dev中包括每個網卡的如下數據:

接收到的字節;

接收到的壓縮字節;

收到的誤碼數;

收到的漏失誤碼;

收到的FIFO誤碼;

收到的幀誤碼;

收到的多播誤碼;

收到的總包數;

已傳輸的字節;

已傳輸的壓縮字節;

傳輸誤碼總數;

傳輸載波誤碼;

傳輸沖突誤碼;

傳輸漏失誤碼;

傳輸FIFO誤碼;

傳輸的總包數。


◆ /proc/stat提供:

引導時間;

上下文切換數量;

中斷總量;

進頁面總數;

出頁面總數;

進程總數;

換入總數;

換出總數;

合計CPU空閑時間;

合計CPU nice時間;

合計CPU系統時間;

合計CPU用戶時間。

同時提供對每個CPU的:

單個CPU空閑時間;

單個CPU nice時間;

單個CPU系統時間;

單個CPU用戶時間。

以及對每個磁盤驅動器的如下數據:

單個磁盤塊讀;

單個磁盤塊寫;

單個磁盤I/O總數;

單個磁盤I/O讀;

單個磁盤I/O寫。

◆ /proc/uptime中包括:

系統總工作時間;

系統總空閑時間。

值得注意的是,每次某個/proc被讀時,一個句柄函數都被內核或特有模塊調用,來產生數據。數據在運行中產生,不管是讀一個字符還是一個大的字塊,整個文件都將被重建。這對效率是至關重要的一點,因為使用/proc的任何系統監控器將吞下整個文件,而不是一點一點地處理它。


Java提供了豐富的文件I/O類集,包括基于類的流、基于類的塊設備,以及J2SDK 1.4提供的新的I/O庫。實驗表明,一般而言,對基本的塊讀寫文件操作,用RandomAccessFile類進行I/O是最佳的。例如,塊讀文件操作如下:


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


//以讀方式打開文件


mFile.read( mBuffer ); //讀文件塊


結論


本文討論了如何將Java語言有效地用于Linux集群結點上的高性能監控。在程序設計中,要注意以下方面:

◆ 采用/proc文件系統;

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

◆ 在讀文件期間保持文件打開;

◆ 消除不必要的數據轉換;

◆ 在結點上合并數據;

◆ 以壓縮形式傳輸數據;

◆ 注意與性能問題相關的語言或庫。


對高性能監控而言,內核模塊不是必要條件,這點很重要,因為它在Linux版本和分類之間提供了很大程度的可移植性,在監控器實現語言上有很多的選擇。但是,/proc文件系統的性能卻很依賴內核代碼的效率,因此,適當地理解有關的機制將對以任何語言編寫的監控器性能有非常大的影響。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕日韩在线播放| 国产欧美日韩中文字幕在线| 国产国语刺激对白av不卡| 国产精品久久久久久久av大片| 国产精品第一区| 国产精品美乳一区二区免费| 成人免费观看49www在线观看| 亚洲国产成人爱av在线播放| 日韩有码在线观看| 91精品国产沙发| 色久欧美在线视频观看| 久久理论片午夜琪琪电影网| 97久久精品视频| 亚洲精品国产精品自产a区红杏吧| 亚洲视频一区二区三区| 中文字幕欧美精品日韩中文字幕| www.亚洲一区| 亚洲欧美色婷婷| 97欧美精品一区二区三区| 欧美日韩成人精品| 日韩高清有码在线| 成人h视频在线观看播放| 成人国产精品av| 亚洲欧美在线一区二区| 国产在线播放91| 久热国产精品视频| 欧美成人在线影院| 亚洲视频国产视频| 在线性视频日韩欧美| 亚洲精品美女久久久| 麻豆国产va免费精品高清在线| 亚洲精品电影网站| 成人情趣片在线观看免费| 国产精品久久激情| 日韩av中文字幕在线播放| 亚洲国产一区二区三区在线观看| 国产女人精品视频| 久久国产精品99国产精| 中文字幕亚洲欧美一区二区三区| 色噜噜狠狠狠综合曰曰曰| 欧美日韩国产综合视频在线观看中文| 一本色道久久综合狠狠躁篇怎么玩| 亚洲图片欧美午夜| 精品国产欧美成人夜夜嗨| 亚洲国产精品美女| 日韩在线高清视频| 欧美性高潮床叫视频| 另类视频在线观看| 久久久国产精品视频| 久久不射热爱视频精品| 国模gogo一区二区大胆私拍| 欧美国产日韩二区| 欧美黄色小视频| 不卡中文字幕av| 欧美风情在线观看| 日韩精品在线观看网站| 最近2019中文字幕一页二页| 欧美激情一区二区久久久| 亚洲欧洲日本专区| 欧洲成人在线观看| 亚洲成人激情在线观看| 久久成人av网站| 国产精品一区二区女厕厕| 亚洲国产欧美一区二区三区同亚洲| 国产有码在线一区二区视频| 国产精品精品一区二区三区午夜版| 亚洲视频日韩精品| 午夜精品福利在线观看| 亚洲欧美中文日韩v在线观看| 国内外成人免费激情在线视频网站| 成人a免费视频| 九九久久久久久久久激情| 免费97视频在线精品国自产拍| 国产国语刺激对白av不卡| 永久免费毛片在线播放不卡| 日韩成人激情在线| 久久视频精品在线| 视频在线观看一区二区| 岛国av一区二区| 亚洲三级黄色在线观看| 久久精品久久久久| 亚洲美女视频网| 欧美亚洲国产成人精品| 亚洲社区在线观看| 中文字幕亚洲在线| 毛片精品免费在线观看| 免费成人高清视频| 日本精品视频在线播放| 国产精品一区二区电影| 国产精品久久久久久av福利软件| 久久久久久久一区二区| 欧美一区二区大胆人体摄影专业网站| 麻豆国产va免费精品高清在线| 成人久久久久久久| 国产综合色香蕉精品| 九九热这里只有在线精品视| 国产精品自拍偷拍视频| 国产午夜精品免费一区二区三区| 国产精品v片在线观看不卡| 国产mv免费观看入口亚洲| 国产精品高清免费在线观看| 亚洲另类图片色| 欧美黑人一级爽快片淫片高清| 欧美高清不卡在线| 成人国产在线激情| 日本久久久久久久久久久| 国产剧情日韩欧美| 亚洲自拍小视频免费观看| 日韩精品中文字幕在线| 精品国产一区二区三区久久狼黑人| 亚洲欧洲xxxx| 国产精品电影久久久久电影网| 久久99国产精品久久久久久久久| 日韩免费视频在线观看| 亚洲第一福利视频| 欧美电影免费观看大全| 欧美专区在线视频| 国产精品成人一区二区| 亚洲综合在线做性| 亚洲午夜国产成人av电影男同| 91视频国产精品| 亚洲欧美日韩国产中文专区| 欧美做受高潮电影o| 日本精品一区二区三区在线播放视频| 丰满岳妇乱一区二区三区| 亚洲www永久成人夜色| 中文在线不卡视频| 亚洲国产精品电影在线观看| 最近2019中文字幕一页二页| 欧美洲成人男女午夜视频| 不卡在线观看电视剧完整版| 丝袜美腿亚洲一区二区| 欧美在线免费观看| 狠狠色狠狠色综合日日五| 国产精品中文字幕在线| 久久99精品视频一区97| 色香阁99久久精品久久久| 亚洲性视频网址| 欧美一级视频一区二区| 狠狠色狠狠色综合日日小说| 隔壁老王国产在线精品| 91免费的视频在线播放| 国产精品福利在线观看| 国产91九色视频| 亚洲精品美女免费| 中日韩午夜理伦电影免费| 2023亚洲男人天堂| 欧美自拍大量在线观看| 一区二区三区亚洲| 米奇精品一区二区三区在线观看| 日本在线观看天堂男亚洲| 日韩中文字幕网址| 亚洲精品国产拍免费91在线| 欧美国产亚洲精品久久久8v| 国产精品视频白浆免费视频| 欧美日韩国产中文精品字幕自在自线| 在线亚洲午夜片av大片| 中文字幕久精品免费视频| 日韩精品中文字幕在线播放| 亚洲男人天堂久| 一本色道久久88综合亚洲精品ⅰ| 亚洲qvod图片区电影| 欧美日韩性生活视频| 欧美黑人xxx|