>
目錄
- 前言
- nmon工具下載
- nmon使用擴(kuò)展
- .nmon文件解析
前言
近期在測(cè)試JefLogTail,由于JefLogTail使用的是輪詢的方式來(lái)監(jiān)聽(tīng)文件夾,所以對(duì)cpu的消耗可能會(huì)高一些,所以在測(cè)試的時(shí)候著重關(guān)注CPU,Linux下查看CPU信息一般采用top命令來(lái)實(shí)時(shí)觀察,但是這種對(duì)于只是通過(guò)觀察數(shù)據(jù)的變化來(lái)評(píng)估cpu的實(shí)時(shí)情況顯然不太科學(xué)。如果想要通過(guò)圖標(biāo)的形式來(lái)表現(xiàn)則需要借助一些外部工具,今天就來(lái)講解一下nmon工具的使用。
nmon工具下載
官方下載地址:nmon.sourceforge.net/pmwiki.php?…需要根據(jù)自己的Linux主機(jī)版本來(lái)下載對(duì)應(yīng)的版本,筆者這里下載的是nmon16m_helpsystems.tar.gz,下載完成后在linux主機(jī)上解壓后,會(huì)出現(xiàn)很多版本,選擇對(duì)應(yīng)的版本運(yùn)行即可。 筆者的主機(jī)配置為:
Linux version 3.10.0-514.el7.x86_64 (mockbuild@x86-039.build.eng.bos.redhat.com) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) ) #1 SMP Wed Oct 19 11:24:13 EDT 2016
nmon對(duì)應(yīng)筆者主機(jī)的版本為:
nmon_x86_64_rhel7
執(zhí)行./nmon_x86_64_rhel7,如果成功則會(huì)展示如下界面:
使用示例:
根據(jù)提示輸入C,展示的為CPU的各項(xiàng)指標(biāo)
輸入M,展示的為內(nèi)存的各項(xiàng)指標(biāo)
輸入d,展示的為磁盤的各項(xiàng)指標(biāo)等等
nmon使用擴(kuò)展
nmon不僅可以實(shí)時(shí)監(jiān)聽(tīng),還提供命令監(jiān)聽(tīng),并寫入到文件,最后通過(guò)excel來(lái)展示圖形化的界面。
使用如下命令可監(jiān)聽(tīng)系統(tǒng)的各項(xiàng)指標(biāo)。并匯總文件中。
./nmon_x86_64_rhel7 -ft -s 1000 -c 60 -m?/test_path
命令參數(shù)說(shuō)明:
-f 監(jiān)控結(jié)果以文件形式輸出,默認(rèn)機(jī)器名+日期.nmon格式 (YYYYMMDD_HHMM.nmon)
-F 指定輸出的文件名,比如test.nmon
-s 指的是采樣的頻率,單位為毫秒
-c 指的是采樣的次數(shù),即以上面的采樣頻率采集多少次
-m 指定生成的文件目錄
上述命令的意思為:每1秒鐘采集一次,共采集60秒,并且將生成的文件保存到根目錄下的test_path文件夾下。執(zhí)行完該命令后,在/test_path下就會(huì)生成一個(gè)名為:localhost_230426_1359.nmon的文件。
.nmon文件解析
文件解析需要下載官方的解析工具,這個(gè)工具不需要安裝,只是一個(gè)excel宏命令文件,所以可以放心下載。 地址:nmon.sourceforge.net/pmwiki.php?…
下載完成后,解壓打開(kāi)nmon analyser v66.xlsm文件,點(diǎn)擊Analyze nmon data按鈕,如果此時(shí)報(bào)錯(cuò),提示類似“無(wú)法運(yùn)行xxxx宏可能是因?yàn)樵摵暝诖斯ぷ鞑局胁豢捎茫蛘咚泻甓急唤?rdquo;,需要配置一下excel宏,配置路徑:文件=》選項(xiàng)=》信任中心=》信任中心設(shè)置=》宏設(shè)置,勾選啟用所有宏。設(shè)置完畢重啟即可。之后按照提示傻瓜式操作。
解析之后的圖形化excel
# 啟動(dòng)指令 monitor_system_start () { # 頻率默認(rèn)為1000ms采集一次 frequency=1000 # 采樣次數(shù)默認(rèn)為60次 count=60 # 默認(rèn)保存路徑 save_path='/home/xxx/tools/nmonData/' if [ "$1" != "" ]; then frequency=$1 fi if [ "$2" != "" ]; then count=$2 fi if [ "$3" != "" ]; then save_path=$3 fi commond='/home/xxx/tools/nmonData/tools/nmon/nmon_x86_64_rhel7 -ft -s '$frequency' -c '$count' -m '$save_path $commond echo "start success" } # 強(qiáng)制停止指令 monitor_system_stop () { commond="ps -ef | grep nmon_x86_64_rhel7 | grep -nv 'grep' | awk -F ' *' '{print $"2"}'" pid=`eval $commond` echo $pid kill -9 $pid echo "stop success PID="$pid } command_array=("monsysstop" "monsysstart") if [ $# -lt 1 ]; then echo "請(qǐng)明確指令:" length=${#command_array[@]} for ((i=0;i<$length; i++)); do echo ${command_array[$i]} done exit else if [[ $1 == 'monsysstart' || $1 == '-monsysstart' || $1 == "MONSYSSTART" ]] then monitor_system_start $2 $3 $4 elif [[ $1 == 'monsysstop' || $1 == '-monsysstop' || $1 == "MONSYSSTOP" ]] then monitor_system_stop
使用方式:
1、默認(rèn)啟動(dòng)
sh xxx.sh monsysstart
2、自定義參數(shù)啟動(dòng)
sh xxx.sh monsysstart 1000 60 /test_path
3、強(qiáng)行停止(正常執(zhí)行完指定的采集次數(shù)后會(huì)自動(dòng)停止,一般不需要強(qiáng)行停止):
sh xxx.sh monsysstop
>