<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è) > 模擬技術(shù) > 設計應用 > UNIX系統性能監控簡(jiǎn)述及shell實(shí)現系統資源利用率

UNIX系統性能監控簡(jiǎn)述及shell實(shí)現系統資源利用率

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

簡(jiǎn)述及shell實(shí)現利用率統計程序

論文摘要:本文簡(jiǎn)要闡述了unix系統中(主要以IBM的AIX為例)進(jìn)行管理的幾種命令行工具,并通過(guò)編寫(xiě)shell實(shí)例程序,運用其中提到的工具實(shí)現利用率的統計程序,為做好unix系統管理和調優(yōu)提供參考。

  1.引言

  Unix系統中性能優(yōu)化以及確定系統中的性能瓶頸是系統管理員的主要任務(wù)之一。在一個(gè)計算機系統中,CPU、內存、硬盤(pán)和網(wǎng)絡(luò )是影響的主要因素,因此系統性能的以及調整也主要在于如何在這些資源中獲得某種平衡,以滿(mǎn)足人們對系統性能的期望。

  IBM小型機RS6000在企業(yè)應用中被廣泛采用,其上的AIX操作系統如同其它系統一樣,給系統管理員系統提供了非常豐富的手段。這里就以AIX系統中的幾個(gè)監控工具為例,利用shell程序及定時(shí)作業(yè)程序cron及強大的awk工具,實(shí)現統計利用率,可以每天統計內存的日均使用率、CPU的每日峰值、CPU的日均使用率,并使每月統計量根據月中每日數據平均得出,每月1號凌晨產(chǎn)生上月統計數據,這樣就可給系統管理員了解系統運行資源的率用率提供很好的參考。其中提到的系統工具Vmstat、svmon、awk等都很強大,限于篇幅不作非常詳細的介紹,如想更透徹地了解這些命令的用法,請參考有關(guān)技術(shù)資料或手冊。

  2.AIX中的性能監控工具

  一個(gè)系統要為用戶(hù)提供持續高可用性的服務(wù),不僅僅只要求它能夠正常運行,而且還要使其性能處于最佳狀態(tài)。系統管理員的職責之一就是對系統進(jìn)行性能統計分析,掌握系統的運行狀態(tài)和資源使用情況,然后通過(guò)合理配置系統資源,使系統健康運行。

  從系統管理的角度看,性能的管理主要集中在現有資源的分配利用上,這些資源包括物理資源和邏輯資源。物理資源包括了CPU、內存、I/O設備,邏輯設備包括邏輯卷管理器、虛擬內存管理器、系統資源控制器和文件系統等。這里重點(diǎn)介紹一些關(guān)于系統性能的命令和工具。

  1.iostat

  iostat命令主要通過(guò)觀(guān)察物理磁盤(pán)的活躍時(shí)間以及他們的平均傳輸速度,監控系統輸入/輸出設備負載。根據iostat命令產(chǎn)生的報告,用戶(hù)可確定一個(gè)系統配置是否平衡,并據此在物理磁盤(pán)與適配器之間更好地平衡輸入/輸出負載。

  2.netpmon

  netpmon命令可以監控關(guān)于網(wǎng)絡(luò )行為的系統事件和性能以及網(wǎng)絡(luò )行為對CPU的消耗。netpmon命令在指定的監控周期報告網(wǎng)絡(luò )行為。

  3.ps 工具

  ps命令是系統中最常見(jiàn)的命令,它主要顯示系統中關(guān)于進(jìn)程的統計和狀態(tài)信息,如進(jìn)程ID,I/O行為以及CPU利用率等。利用ps命令提供的信息,可決定一個(gè)進(jìn)程運行了多長(cháng)時(shí)間,進(jìn)程使用了多少CPU時(shí)間,以及進(jìn)程是否受系統的懲罰。還可用ps命令確定進(jìn)程使用了多少內存,完成多少I(mǎi)/O,進(jìn)程的優(yōu)先級以及是誰(shuí)創(chuàng )建了進(jìn)程。

  4.vmstat

  vmstat命令報告關(guān)于核心線(xiàn)程,虛擬內存,自陷(trap),磁盤(pán)以及CPU行為的統計。而且每種行為報告都被更細致地用百分比分別表示用戶(hù)態(tài)、核態(tài)、空閑以及等待磁盤(pán)I/O等情況。

  內核維持了對核心線(xiàn)程,換頁(yè)以及中斷行為的統計數據,而vmstat命令則通過(guò)使用knlist子程序和/dev/kmen偽設備驅動(dòng)器訪(fǎng)問(wèn)這些數據。磁盤(pán)的輸入/輸出統計是通過(guò)設備驅動(dòng)器維持的。對于磁盤(pán),平均傳輸速度是通過(guò)使用活躍時(shí)間核傳輸信息數目決定的。而活躍時(shí)間百分比則是從報告期間驅動(dòng)器忙的時(shí)間量計算出來(lái)的。

  5.sar

  sar命令報告CPU的使用情況,I/O以及其它系統行為。sar命令可以收集,報告以及保存系統行為信息。如果沒(méi)有指定輸入文件,則sar調用sarc命令訪(fǎng)問(wèn)系統數據。

  用戶(hù)可用讓cron命令運行兩個(gè)shell腳本(/usr/lib/sa/sa1和/usr/lib/sa2)以提供日統計和報表。在crontab文件/var/spool/cron/crontabs/adm中包括了一些樣本節,用于示范cron要在何時(shí)運行這些shell腳本。以這種方式收集到的數據對于確定系統的時(shí)間周期特征和決定峰值使用時(shí)間是很有用的。

  但要注意的是,sar命令自己運行時(shí)會(huì )產(chǎn)生相當數量的讀寫(xiě)。因此最好在沒(méi)有工作量的情況下運行sar統計,看看sar對總的統計數字有多大的影響。

  6.topas

  topas命令用于監控各種系統資源,如CPU的使用情況,CPU事件和隊列,內存和換頁(yè)空間的使用,磁盤(pán)性能,網(wǎng)絡(luò )性能以及NFS統計等。它還會(huì )報告指派給不同WLM類(lèi)的進(jìn)程對系統資源的消耗情況。它還能報告系統中最熱門(mén)的進(jìn)程和工作量管理器(WLM)的熱門(mén)類(lèi)。有關(guān)WLM類(lèi)信息只有在WLM激活時(shí)才會(huì )顯示。topas命令將熱門(mén)進(jìn)程定義為那些使用大量CPU時(shí)間的進(jìn)程。topas命令沒(méi)有作日志的選項,所有信息都是實(shí)時(shí)的。

  7.truss

  truss命令跟蹤一個(gè)進(jìn)程的系統調用、所接收的信號以及招致的機器錯。要檢查的應用程序可在truss命令的命令行中指定,也可將truss命令掛在一個(gè)或多個(gè)已經(jīng)在運行的進(jìn)程上。

  8.svmon

  svmon命令用于顯示當前內存的狀態(tài)。其可以捕捉和分析虛擬內存的快照信息,所有的統計都是以4k內存頁(yè)面為單位進(jìn)行的。

  3.系統利用率統計腳本程序

1.統計程序的簡(jiǎn)介

  此系統利用率統計腳本程序由stat.sh、setup.sh組成,僅在A(yíng)IX 4.3.3與5.2環(huán)境中測試通過(guò),尚不支持其他UNIX服務(wù)器。推薦將兩腳本置于/stat目錄,確保root對兩文件具有執行權限(cd /stat;chmod 755 *.sh)??蛇\行setup.sh腳本,此腳本將直接在root的crontab中添加一項。每晚23:55執行stat.sh。腳本默認輸出到/tmp/stat目錄,result.lst為日均統計值,輸出格式為“日期 內存日均使用率% CPU每日峰值% CPU日均使用率%”每月統計量根據月中每日數據平均得出,每月1號凌晨產(chǎn)生上月統計數據并輸出至report.lst。腳本中關(guān)于crontab、awk的使用說(shuō)明及shell編程的方法請查閱相關(guān)技術(shù)文檔。

  2.setup.sh腳本

  在系統的命令行中執行setup.sh,將/stat/stat.sh添加到root用戶(hù)的cron定時(shí)作業(yè)項中,添加文件名為/var/spool/cron/crontabs/root。否則報出定時(shí)作業(yè)已經(jīng)存在。代碼如下:

#!/usr/bin/ksh

FNAME=/stat/stat.sh

CPATH=/var/spool/cron/crontabs/root

[ -f $FNAME ]||(echo "FILE: $FNAME NOT FOUND!";exit 1)

if [ "`grep $FNAME $CPATH`" = "" ];then

echo "55 23 * * * $FNAME > /dev/null 2>1" >> $CPATH

else

echo "The entry exists in $CPATH !"

fi

  3.stat.sh腳本

  此腳本使用AIX提供的兩個(gè)重要系統性能工具vmstat和svmon分別收集cpu和內存的一整天的運行統計數據。為了不影響系統的運行,設定為在定時(shí)作業(yè)cron中每60秒執行一次,全天24小時(shí)運行,并將數據保存到cpu.日期和mem.日期文件中,以便于當天23:55分運行后使用awk工具進(jìn)行一天的統計計算。

  眾所周知,awk進(jìn)行文本處理是逐行處理的,所以只需要設置計數器cnt變量進(jìn)行累加以便于計算cpu和內存的平均利用率。我們以?xún)却嫫骄寐实乃惴ㄟM(jìn)行說(shuō)明,其他算法的產(chǎn)生與其相類(lèi)似。

  內存平均利用率的算法為:

  設置cnt、delta、tbase、base變量初始為零,cnt為行計數變量,delta保存內存使用變化量,tbase為cron時(shí)間點(diǎn)上內存使用量,base為總內存量。

  從mem.日期文件第一行開(kāi)始,如果base為0,則將$2、$3域的值賦給base和tbase。然后進(jìn)行cnt++下一行處理,即將新時(shí)間點(diǎn)上的內存使用量減去上一時(shí)間點(diǎn)的內存使用量,并將結果賦給delta變量自加:

delta+=$3-tbase

直至最后一行,進(jìn)行100*(tbase+delta/cnt)/base即可得到當天的內存平均使用率了。

程序的代碼如下:

#!/usr/bin/ksh

DDIR=/tmp/stat/data

[ -d $DDIR ]||mkdir -p $DDIR

RFILE=/tmp/stat/result.lst

PFILE=/tmp/stat/report.lst

# get old date

OFILE=`date +%y%m%d`

OMON=`date +%y%m`

# produce report line for yestoday: DATE MEMAVG CPUPEAK CPUAVG

if [ -f ${DDIR}/mem.${OFILE} -a -f ${DDIR}/cpu.${OFILE} ];then

awk 'BEGIN{cnt=0;delta=0;tbase=0;base=0} /^memory/{if(base==0){base=$2;tbase=$3};cnt++;delta+=$3-tbase}END{if(cnt>0)printf("%.1f",100*(tbase+delta/cnt)/base)}' ${DDIR}/mem.${OFILE} | read MEMAVG

awk 'BEGIN{cnt=0;cidmin=100;cidsum=0} /[0-9]$/{if($16cidmin)cidmin=$16;cnt++;cidsum+=$16}END{if(cnt>0)printf("%.1ft%.1f",100-cidmin,100-cidsum/cnt)}' ${DDIR}/cpu.${OFILE} | read CPUPEAK CPUAVG

&nb


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

關(guān)鍵詞: UNIX 系統性能 監控 系統資源

評論


相關(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>