張慧嬙,程 華
(江南計(jì)算技術(shù)研究所,江蘇 無(wú)錫 214083)
性能監(jiān)測(cè)工具可以實(shí)時(shí)監(jiān)測(cè)系統(tǒng)的運(yùn)行狀態(tài)及資源使用情況[1-2],包括CPU、內(nèi)存、磁盤、網(wǎng)絡(luò)等。近年來(lái),隨著“綠色計(jì)算”[3]概念的提出,低功耗成為軟件設(shè)計(jì)、工具選擇時(shí)的重要考量[4]。頻繁監(jiān)測(cè)使用高頻的程序(如操作系統(tǒng))時(shí),監(jiān)測(cè)工具給系統(tǒng)帶來(lái)的性能、功耗負(fù)載不容忽視,必須引起重視。因此,除了實(shí)現(xiàn)的功能,了解性能監(jiān)測(cè)工具運(yùn)行中的性能、功耗情況十分必要,是選擇合適的監(jiān)測(cè)工具時(shí)必須考慮的重要因素。
Linux系統(tǒng)中提供了豐富的性能監(jiān)測(cè)工具[2],既有針對(duì)單個(gè)單元的監(jiān)測(cè)工具,如fdisk查看硬盤分區(qū)信息,free查看內(nèi)存使用情況,iostat實(shí)時(shí)記錄整個(gè)CPU與接口設(shè)備的I/O狀態(tài);也有涵蓋多個(gè)單元的全面系統(tǒng)監(jiān)測(cè)工具,如top動(dòng)態(tài)監(jiān)測(cè)進(jìn)程的工作狀態(tài)及運(yùn)行情況,sar從多方面對(duì)系統(tǒng)活動(dòng)進(jìn)行報(bào)告,常用于全日監(jiān)測(cè)系統(tǒng)狀態(tài),collectl則可以監(jiān)測(cè)幾乎全部的系統(tǒng)單元。不同監(jiān)測(cè)工具采集不同種類和數(shù)量的硬件性能事件,占用的資源和消耗的能源也不同。使用時(shí)應(yīng)根據(jù)需求選擇合適的工具,才能有效實(shí)現(xiàn)系統(tǒng)監(jiān)測(cè)與性能調(diào)試。
理想的性能監(jiān)測(cè)工具應(yīng)具備兩方面的特性:(1)監(jiān)測(cè)的全面性。應(yīng)覆蓋CPU、磁盤、內(nèi)存、網(wǎng)絡(luò)等多個(gè)監(jiān)測(cè)項(xiàng)目,實(shí)現(xiàn)系統(tǒng)單元的細(xì)粒度監(jiān)測(cè);(2)輕量級(jí)、低負(fù)載。占用系統(tǒng)資源盡量少,對(duì)系統(tǒng)運(yùn)行的影響應(yīng)盡可能小。當(dāng)前,相關(guān)文獻(xiàn)中對(duì)監(jiān)測(cè)工具的分析主要集中在功能實(shí)現(xiàn)方面[5-7],對(duì)資源消耗情況的分析較少或不夠全面[8-10]。
針對(duì)性能監(jiān)測(cè)工具缺乏全面的資源、能耗分析這一問(wèn)題,文中設(shè)計(jì)了定量測(cè)評(píng)實(shí)驗(yàn)。選取free、iostat、ifstat、sar和collectl等主流Linux性能監(jiān)測(cè)工具,通過(guò)實(shí)驗(yàn)測(cè)量得到了典型監(jiān)測(cè)工具的性能和功耗數(shù)據(jù)。
目前流行的大多數(shù)性能監(jiān)測(cè)工具都是通過(guò)讀取/proc文件系統(tǒng)下特定的編碼文件[11],經(jīng)過(guò)一定的編碼解釋后輸出成可讀的形式,來(lái)實(shí)現(xiàn)特定系統(tǒng)單元的實(shí)時(shí)性能監(jiān)測(cè)。/proc文件系統(tǒng)是Linux內(nèi)核的一個(gè)虛擬文件系統(tǒng)[12],不僅提供了Linux內(nèi)核的當(dāng)前狀態(tài),還包含了系統(tǒng)硬件以及詳細(xì)的進(jìn)程信息,例如內(nèi)存管理、進(jìn)程相關(guān)、文件系統(tǒng)、設(shè)備驅(qū)動(dòng)程序、系統(tǒng)總線、電源管理、終端、系統(tǒng)控制參數(shù)、網(wǎng)絡(luò)等,幾乎涵蓋了內(nèi)核的所有部分。/proc系統(tǒng)以文件的形式提供了內(nèi)核與進(jìn)程之間的通信接口,用戶或應(yīng)用程序可以通過(guò)/proc系統(tǒng)動(dòng)態(tài)訪問(wèn)內(nèi)核內(nèi)部數(shù)據(jù)結(jié)構(gòu)、讀取系統(tǒng)的相關(guān)信息,還可以通過(guò)改變/proc下相應(yīng)的文件來(lái)改變內(nèi)核設(shè)置。另一方面,計(jì)算機(jī)系統(tǒng)中提供了豐富的硬件性能計(jì)數(shù)器[13-14]和傳感器[15-17],可直接采集系統(tǒng)的硬件信息和活動(dòng)數(shù)據(jù),并通過(guò)相應(yīng)的驅(qū)動(dòng)將檢測(cè)到的硬件信息提供給操作系統(tǒng),某些性能監(jiān)測(cè)數(shù)據(jù)便是通過(guò)讀取這些特定的配置文件獲得。
最早的性能監(jiān)測(cè)工具產(chǎn)生于Unix系統(tǒng)中,便于系統(tǒng)管理員進(jìn)行系統(tǒng)維護(hù)和性能調(diào)節(jié)。隨著Linux系統(tǒng)的流行,這些工具大多經(jīng)過(guò)一定程度的改寫以適用于各個(gè)Linux系統(tǒng)發(fā)行版。隨著Linux內(nèi)核的不斷升級(jí)、計(jì)算機(jī)硬件設(shè)備的不斷完善,性能監(jiān)測(cè)工具更加豐富,覆蓋的監(jiān)測(cè)項(xiàng)目更加全面,監(jiān)測(cè)的數(shù)據(jù)也更加豐富和準(zhǔn)確。根據(jù)監(jiān)測(cè)單元的數(shù)目及監(jiān)測(cè)數(shù)據(jù)的類型,現(xiàn)有的性能監(jiān)測(cè)工具可大致分為以下三類:
(1)子系統(tǒng)性能監(jiān)測(cè)工具:監(jiān)測(cè)一個(gè)或少數(shù)幾個(gè)子系統(tǒng),提供特定子系統(tǒng)的全面性能監(jiān)測(cè)數(shù)據(jù)。典型的如free和iostat,其中free屬于procps包,1992年由Brian Edmonds發(fā)布,用于在終端顯示內(nèi)存和交換空間的使用情況,包括已用內(nèi)存、buffers、cache等,簡(jiǎn)易實(shí)用,幾乎所有系統(tǒng)管理員日常都會(huì)用到;iostat是sysstat系統(tǒng)監(jiān)測(cè)軟件包的一部分,由Sebastien Godard于1998年使用C語(yǔ)言發(fā)布,匯總了單個(gè)磁盤的使用信息,可報(bào)告CPU及磁盤使用情況,包括塊設(shè)備的讀和寫,跟蹤存儲(chǔ)設(shè)備的性能,用于調(diào)整系統(tǒng)配置取得磁盤之間更好的I/O負(fù)載平衡。
(2)全系統(tǒng)細(xì)粒度性能監(jiān)測(cè)工具:監(jiān)測(cè)多個(gè)子系統(tǒng),能提供多個(gè)子系統(tǒng)全面細(xì)粒度的性能監(jiān)測(cè)數(shù)據(jù)。全系統(tǒng)細(xì)粒度監(jiān)測(cè)工具功能強(qiáng)大,應(yīng)用最為廣泛的是sar和collectl。其中,sar工具也屬于Sysstat包,最早寫于1999年,隨后不斷完善,成為L(zhǎng)inux系統(tǒng)監(jiān)測(cè)的全能工具,可以統(tǒng)計(jì)實(shí)時(shí)數(shù)據(jù)或歷史數(shù)據(jù),收集、報(bào)告和保存系統(tǒng)的不同活動(dòng)指標(biāo),包括CPU使用情況、文件讀寫情況、磁盤I/O狀況等詳細(xì)信息,幫助用戶全方位監(jiān)測(cè)系統(tǒng),找出性能瓶頸;collectl作為后起之秀,2003年由Mark Seger采用perl語(yǔ)言寫成,經(jīng)過(guò)多年發(fā)展,如今已成為一個(gè)出色的輕量級(jí)全系統(tǒng)監(jiān)測(cè)工具,可以覆蓋眾多系統(tǒng)單元、報(bào)告豐富資源信息,在功能方面既和sar有重合點(diǎn),又展現(xiàn)出了很多不同于sar的細(xì)節(jié)和特性,例如增加了對(duì)計(jì)算機(jī)集群的監(jiān)測(cè)支持,可以單獨(dú)扮演ps、top等其他實(shí)用監(jiān)測(cè)工具的角色。
(3)全系統(tǒng)概要監(jiān)測(cè)工具:可用于監(jiān)測(cè)多個(gè)子系統(tǒng),描述各系統(tǒng)總體運(yùn)行情況的概要統(tǒng)計(jì)數(shù)據(jù)。前面介紹的top便是典型的全系統(tǒng)概要監(jiān)測(cè)工具,top提供了一系列系統(tǒng)范圍的概要統(tǒng)計(jì)信息,包括CPU利用率、平均負(fù)載、內(nèi)存及交換空間使用情況等,還可以監(jiān)測(cè)運(yùn)行最多的進(jìn)程/任務(wù)狀態(tài),根據(jù)CPU用量等對(duì)進(jìn)程進(jìn)行排序,每隔一定間隔刷新屏幕。使用top命令,用戶可快速掌握當(dāng)前主要系統(tǒng)部件的大致性能情況,并對(duì)資源占用較高的進(jìn)程實(shí)行專門監(jiān)測(cè)。在此基礎(chǔ)上,許多學(xué)者對(duì)top工具進(jìn)行了不同的改進(jìn)。由于top對(duì)/proc系統(tǒng)拍快照,無(wú)法監(jiān)測(cè)在快照之前結(jié)束的壽命較短的程序[1],針對(duì)此情況,Gerlof Langeveld等于2000年發(fā)布了atop工具,使用進(jìn)程核算技術(shù),對(duì)短壽命的程序進(jìn)行了捕捉顯示;此外,Hisham Muhammad提供了一個(gè)更為友好的top工具——htop,可以以更加多彩的方式顯示更加豐富的統(tǒng)計(jì)信息,并對(duì)重要數(shù)據(jù)進(jìn)行高亮顯示。
有關(guān)各監(jiān)測(cè)工具的使用方法和原理,官網(wǎng)或者man手冊(cè)都有詳細(xì)的說(shuō)明信息,為用戶選擇合適的監(jiān)測(cè)工具提供了有用的參考。然而,無(wú)論是官網(wǎng)還是學(xué)術(shù)界,目前很難找到針對(duì)各個(gè)性能監(jiān)測(cè)工具自身性能、功耗等占用資源情況的分析和比較。
功能往往是選擇監(jiān)測(cè)工具時(shí)的首要考慮因素,然而當(dāng)頻繁監(jiān)測(cè)某個(gè)系統(tǒng)部件時(shí),較小的性能監(jiān)測(cè)工具也可能給系統(tǒng)負(fù)載帶來(lái)不容忽視的影響。理想的性能監(jiān)測(cè)工具不僅應(yīng)能滿足對(duì)系統(tǒng)單元的全面有效監(jiān)測(cè),還應(yīng)盡可能少地占用系統(tǒng)資源,減少對(duì)系統(tǒng)的性能影響,提高監(jiān)測(cè)數(shù)據(jù)的精確度。因此,在使用Linux系統(tǒng)進(jìn)行部分復(fù)雜作業(yè)時(shí),工具自身占用資源情況也應(yīng)在選擇性能監(jiān)測(cè)工具時(shí)考慮在內(nèi)。
結(jié)合監(jiān)測(cè)工具特點(diǎn)及操作系統(tǒng)性能指標(biāo),文中將從功能、性能、功耗三個(gè)維度對(duì)監(jiān)測(cè)工具進(jìn)行測(cè)評(píng)。
2.1.1 功 能
監(jiān)測(cè)工具的功能主要體現(xiàn)在監(jiān)測(cè)部件及監(jiān)測(cè)項(xiàng)上,能否持續(xù)監(jiān)測(cè)、監(jiān)測(cè)時(shí)間粒度、輸出格式等也是要考量的方面。一般來(lái)說(shuō),通過(guò)查看官網(wǎng)或man手冊(cè)及相關(guān)文獻(xiàn),可以對(duì)工具的功能做到比較全面的了解。
2.1.2 性 能
工具的性能體現(xiàn)在監(jiān)控特定部件時(shí),對(duì)CPU及內(nèi)存的占用情況。文中采用top工具實(shí)時(shí)采樣監(jiān)測(cè)進(jìn)程占用CPU及內(nèi)存資源的情況,重復(fù)多次對(duì)采樣結(jié)果取平均值,獲得監(jiān)測(cè)工具的性能評(píng)估。
2.1.3 功 耗
當(dāng)前Linux系統(tǒng)應(yīng)用領(lǐng)域越來(lái)越廣,其運(yùn)行載荷也隨之復(fù)雜多樣化;同時(shí),針對(duì)Linux系統(tǒng)的性能監(jiān)測(cè)工具越來(lái)越多,無(wú)法對(duì)所有工具一一測(cè)評(píng)。因此,文中采取變量遞增式的方法,針對(duì)幾種常用工具的性能功耗進(jìn)行測(cè)評(píng),旨在為選擇Linux性能監(jiān)測(cè)工具提供思路。
實(shí)驗(yàn)使用不同監(jiān)測(cè)工具,對(duì)同一部件進(jìn)行監(jiān)測(cè),并在不同運(yùn)行負(fù)載的條件下,對(duì)比各工具性能及功耗指標(biāo),最終通過(guò)結(jié)果分析,給出工具選擇策略。實(shí)驗(yàn)過(guò)程可以描述為
{G1,G2,…,Gn,P}=H(x_load,y_tool)
其中,x_load為運(yùn)行負(fù)載;y_tool為測(cè)評(píng)對(duì)象工具;H為2.1節(jié)中的測(cè)試過(guò)程;G1~Gn分別表示不同部件在當(dāng)前環(huán)境下的性能指標(biāo);P為當(dāng)前環(huán)境下的工具功耗。
具體實(shí)驗(yàn)步驟如下:
Step1:相同負(fù)載條件下,針對(duì)不同的同部件監(jiān)測(cè)工具測(cè)評(píng)與比較。
實(shí)驗(yàn)過(guò)程可以描述為:
{G1,G2,…,Gn,P}=H(x_load=c,y_tool)
其中,c表示常量,即負(fù)載不變。
對(duì)一款工具性能進(jìn)行測(cè)評(píng)與橫向比較,必須限定其使用條件,在同環(huán)境下運(yùn)行不同工具,能直觀反映某一工具對(duì)具體使用環(huán)境的匹配程度;但同時(shí),此方法得出的實(shí)驗(yàn)結(jié)論只能適用于相同或者相近的工具使用環(huán)境,在使用條件變化時(shí),該方法得出的結(jié)論不具有通用性。
Step2:不同負(fù)載條件下,針對(duì)不同的同部件監(jiān)測(cè)工具測(cè)評(píng)與比較。
為進(jìn)一步驗(yàn)證第一步的結(jié)論,本步驟中加入了負(fù)載條件的變化,實(shí)驗(yàn)過(guò)程可以描述為:
{G1,G2,…,Gn,P}=H(x_load,y_tool)
當(dāng)使用環(huán)境變化時(shí),不同工具的性能功耗也隨之改變,只有在對(duì)各種使用環(huán)境和限制下的工具進(jìn)行比較后,才能找到不同條件下監(jiān)測(cè)工具選擇的最優(yōu)解。
3.1.1 實(shí)驗(yàn)對(duì)象
針對(duì)CPU、內(nèi)存、磁盤、網(wǎng)絡(luò)等關(guān)鍵系統(tǒng)部件,從子系統(tǒng)、全系統(tǒng)細(xì)粒度性能監(jiān)測(cè)工具中各選取了一些典型的性能監(jiān)測(cè)工具作為測(cè)評(píng)對(duì)象,包括iostat、free、ifstat、sar以及collectl。
它們的主要監(jiān)控命令如表1所示。
表1 常用監(jiān)控命令
free、iostat及ifstat這三個(gè)子系統(tǒng)監(jiān)測(cè)工具的功能比較單一,只能監(jiān)測(cè)一個(gè)或少數(shù)幾個(gè)系統(tǒng)單元,sar和collectl的功能相對(duì)強(qiáng)大,監(jiān)測(cè)單元眾多,監(jiān)測(cè)數(shù)據(jù)豐富,涵蓋了常用的分系統(tǒng)。和sar相比,collectl還可以監(jiān)測(cè)nfs、lustre以及內(nèi)部通信數(shù)據(jù),用于計(jì)算機(jī)集群的性能監(jiān)測(cè);此外,collectl還提供slabs(系統(tǒng)對(duì)象緩存)數(shù)據(jù)的采集。
3.1.2 實(shí)驗(yàn)環(huán)境
實(shí)驗(yàn)選用臺(tái)式微機(jī)的具體軟硬件環(huán)境參數(shù)如表2所示。
選取Mersenne、lmbench、unixbench等以及系統(tǒng)空載狀態(tài)作為CPU、內(nèi)存、磁盤、系統(tǒng)整體的負(fù)載場(chǎng)景。其中,Mersenne為計(jì)算和存儲(chǔ)密集型程序,系統(tǒng)接近滿負(fù)荷運(yùn)行;lmbench[17]與unixbench為經(jīng)典的系統(tǒng)級(jí)Benchmark,平均負(fù)載低于1,空載時(shí)只有一些守護(hù)進(jìn)程運(yùn)行,系統(tǒng)負(fù)載接近0。由于網(wǎng)絡(luò)測(cè)試的特殊性,單獨(dú)選取netperf和系統(tǒng)空載狀態(tài)用于測(cè)評(píng)網(wǎng)絡(luò)監(jiān)測(cè)工具。
表2 實(shí)驗(yàn)環(huán)境配置
使用子系統(tǒng)監(jiān)測(cè)工具iostat監(jiān)測(cè)CPU與磁盤,free監(jiān)測(cè)內(nèi)存,ifstat監(jiān)測(cè)網(wǎng)絡(luò),全系統(tǒng)監(jiān)測(cè)工具sar、collectl依次監(jiān)測(cè)前述系統(tǒng)部件及系統(tǒng)整體。將監(jiān)測(cè)同一部件的不同工具數(shù)據(jù)進(jìn)行對(duì)比。
3.2.1 性能測(cè)試結(jié)果
性能測(cè)評(píng)實(shí)驗(yàn)的數(shù)據(jù)如表3所示。
表3 監(jiān)控工具占用資源數(shù)據(jù)
整體來(lái)看,五種監(jiān)測(cè)工具使用時(shí)占用的系統(tǒng)資源都比較小,CPU利用率最大為1.004%。隨著系統(tǒng)由滿負(fù)荷運(yùn)行降低到空載狀態(tài),各監(jiān)測(cè)工具的CPU利用率均呈現(xiàn)了先減小后增大的趨勢(shì)。這是因?yàn)镸ersenne時(shí)單一任務(wù)運(yùn)行,監(jiān)測(cè)工具等待隊(duì)列較短,Idle時(shí)系統(tǒng)空載,監(jiān)測(cè)工具優(yōu)先級(jí)較高[2,18],這兩種情況下性能工具占用較多的CPU資源,而Lmbench、Unixbench時(shí)多任務(wù)執(zhí)行,監(jiān)測(cè)工具優(yōu)先級(jí)較低,等待隊(duì)列較長(zhǎng),因此占用CPU資源較少。Netperf與系統(tǒng)空載狀態(tài)接近,工具占用CPU變化情況不明顯。
當(dāng)監(jiān)測(cè)相同的部件時(shí),子系統(tǒng)監(jiān)測(cè)工具比sar和collectl使用特定命令監(jiān)測(cè)具有更大的優(yōu)勢(shì),前者的CPU利用率均低于0.1%,CPU占用率至少降低30%。對(duì)比兩個(gè)全系統(tǒng)細(xì)粒度的性能監(jiān)測(cè)工具,相同負(fù)載下監(jiān)測(cè)相同的子系統(tǒng),collectl的CPU利用率相較sar至少降低15%。在內(nèi)存占用率上,無(wú)論系統(tǒng)負(fù)載高低,無(wú)論被測(cè)單元種類,free、iostat以及sar占用的內(nèi)存資源非常小,接近0,collectl則穩(wěn)定在0.7%。
3.2.2 功耗測(cè)試結(jié)果
功耗測(cè)評(píng)實(shí)驗(yàn)的數(shù)據(jù)如表4所示。
表4 監(jiān)測(cè)工具平均功耗及占總功耗比例
注:因空載時(shí)系統(tǒng)功耗接近0,在計(jì)算占總功耗比例時(shí)未把idle情況考慮入內(nèi)
排除一些奇異點(diǎn),總體而言,所有監(jiān)測(cè)工具對(duì)系統(tǒng)的能耗負(fù)載較小,最大不超過(guò)4 W,所占總功耗比例最大為3.02%。子系統(tǒng)監(jiān)測(cè)工具的平均功耗普遍比對(duì)應(yīng)的全系統(tǒng)工具監(jiān)測(cè)命令降低至少30%,占總功耗比例不超過(guò)0.67;sar和collectl這兩個(gè)全系統(tǒng)監(jiān)測(cè)工具在監(jiān)測(cè)特定單元時(shí)功耗差異不明顯,普遍維持在2%以下,但當(dāng)監(jiān)測(cè)系統(tǒng)整體時(shí),collectl在各種系統(tǒng)負(fù)載情況下的耗能表現(xiàn)都稍優(yōu)于sar,普遍低了0.3~1.5 W,至少減少了7%的能耗。
從實(shí)驗(yàn)結(jié)果可以看出,當(dāng)監(jiān)測(cè)系統(tǒng)分部件時(shí),子系統(tǒng)監(jiān)測(cè)工具的性能及功耗均優(yōu)于使用相應(yīng)命令的全系統(tǒng)監(jiān)測(cè)工具。這是因?yàn)樽酉到y(tǒng)監(jiān)測(cè)工具框架更為簡(jiǎn)單,只需讀取少數(shù)的系統(tǒng)文件;而全系統(tǒng)監(jiān)測(cè)工具因?yàn)楣δ艿亩鄻有裕讓涌蚣芨鼮閺?fù)雜,盡管只監(jiān)測(cè)單一部件,依然需要占用較多資源維護(hù)整體框架。當(dāng)監(jiān)測(cè)系統(tǒng)整體時(shí),與sar相比,collectl在性能和功耗方面具有較明顯的優(yōu)勢(shì)。這得益于collectl使用了“實(shí)用報(bào)表提取語(yǔ)言”Perl寫成,與寫成sar的C語(yǔ)言相比,Perl語(yǔ)言集成了強(qiáng)大的正則表達(dá)式功能,能夠很容易地操作文本、提取有用的信息、快速處理大批量數(shù)據(jù),這在讀取/proc系統(tǒng)、解碼處理相關(guān)文件時(shí)具有很大優(yōu)勢(shì)。
綜上,得出如下結(jié)論:
(1)作為典型的分系統(tǒng)監(jiān)測(cè)工具,free、iostat和ifstat簡(jiǎn)單實(shí)用,實(shí)現(xiàn)特定子系統(tǒng)的性能監(jiān)測(cè)的同時(shí),占用的系統(tǒng)資源、能耗都很?。籹ar和collectl作為全系統(tǒng)細(xì)粒度監(jiān)測(cè)工具,功能強(qiáng)大,不僅實(shí)現(xiàn)了豐富的系統(tǒng)單元監(jiān)測(cè)項(xiàng)目,支持豐富的數(shù)據(jù)輸出和表現(xiàn)形式,而且在不同的系統(tǒng)負(fù)載測(cè)試下,均展現(xiàn)了出色的輕量級(jí)低負(fù)載特性。
(2)實(shí)驗(yàn)設(shè)定四種監(jiān)測(cè)工具的采集頻率均為每秒一次,實(shí)際使用時(shí)根據(jù)需要調(diào)整到合適的監(jiān)測(cè)頻率,如每分鐘一次等,此時(shí)監(jiān)測(cè)工具對(duì)系統(tǒng)的資源、能耗負(fù)載將會(huì)更低。
(3)給出工具選擇策略:如需監(jiān)測(cè)特定的子系統(tǒng),選擇對(duì)應(yīng)的分系統(tǒng)監(jiān)測(cè)工具,會(huì)比使用特定的全系統(tǒng)監(jiān)測(cè)命令占用更少的資源;而如果需要同時(shí)監(jiān)測(cè)多個(gè)子系統(tǒng)或者監(jiān)測(cè)系統(tǒng)整體,全系統(tǒng)細(xì)粒度監(jiān)測(cè)工具將是不錯(cuò)的選擇,首先按照具體的功能差異進(jìn)行選擇,當(dāng)功能特性均滿足時(shí),collectl將比sar更具性能及功耗上的優(yōu)勢(shì)。
性能監(jiān)測(cè)是系統(tǒng)運(yùn)維調(diào)優(yōu)的重要一環(huán),隨著計(jì)算機(jī)硬件的不斷完善、Linux內(nèi)核的不斷升級(jí),涌現(xiàn)出一大批功能各異、性能出色的性能監(jiān)測(cè)工具。從計(jì)算機(jī)硬件到計(jì)算機(jī)軟件,從CPU到內(nèi)存到硬盤到網(wǎng)絡(luò),多樣的性能監(jiān)測(cè)工具覆蓋了面向各系統(tǒng)單元的監(jiān)測(cè)需求,且不斷完善改進(jìn),向著高精度、低負(fù)載的方向發(fā)展。
文中選取了幾款典型的Linux系統(tǒng)性能監(jiān)測(cè)工具,設(shè)計(jì)了針對(duì)性的測(cè)評(píng)實(shí)驗(yàn),從功能、性能、功耗多個(gè)維度進(jìn)行了測(cè)試分析,發(fā)現(xiàn)不同的工具在不同使用環(huán)境下所表現(xiàn)出的性能功耗不盡相同。在使用時(shí),應(yīng)根據(jù)實(shí)際情況選擇滿足功能需求、占用系統(tǒng)資源較少、消耗能源較低的合適的性能監(jiān)測(cè)工具,盡量降低持續(xù)監(jiān)測(cè)給系統(tǒng)帶來(lái)的運(yùn)行負(fù)載和性能影響。
目前,面向單個(gè)物理主機(jī)的性能監(jiān)測(cè)工具已基本滿足應(yīng)用需求,亟需在面向資源共享的虛擬化環(huán)境和面向資源整合的大規(guī)模數(shù)據(jù)中心環(huán)境下,提供精準(zhǔn)、低負(fù)載、全系統(tǒng)視圖的性能監(jiān)測(cè)工具。隨著大規(guī)模數(shù)據(jù)中心的興起,虛擬化技術(shù)盛行,如何衡量同一物理主機(jī)上每臺(tái)虛擬機(jī)的實(shí)際資源使用情況,對(duì)單個(gè)虛擬機(jī)的細(xì)粒度性能事件進(jìn)行實(shí)時(shí)監(jiān)測(cè),是亟待解決的問(wèn)題。