本篇博客介紹了AIX兩款命令行工具——nmon和topas的基本功能。nmon是一款功能比較強(qiáng)大的系統(tǒng)監(jiān)視工具,能夠?qū)崟r(shí)監(jiān)視CPU、內(nèi)存、磁盤、網(wǎng)絡(luò)、內(nèi)核的負(fù)載情況,還能夠監(jiān)視NFS、JFS文件系統(tǒng)的使用。topas是AIX提供的一款輕量級(jí)監(jiān)視工具,部分功能與nmon重合偏重于核心數(shù)據(jù)的展示, nmon和topas兩款工具可以相互切換,均可以與WLM相互調(diào)用,均屬于文件集 bos.perf.tools 。要想看明白nmon的一些統(tǒng)計(jì)信息,需要了解AIX的一些內(nèi)存管理、存儲(chǔ)管理的基本概念,如page space,LPAR等。關(guān)于這些基本概念,請(qǐng)參考《AIX系統(tǒng)基本概念——內(nèi)存管理》和《AIX系統(tǒng)基本概念——存儲(chǔ)管理》。
本文耗時(shí)8小時(shí)。實(shí)驗(yàn)環(huán)境為AIX 6.1 on IBM p6 520。nmon版本,topas版本。
一、nmon功能
nmon是一款跨平臺(tái)的、跨OS的系統(tǒng)性能監(jiān)控工具,能夠檢測(cè)CPU、內(nèi)存、網(wǎng)絡(luò)、磁盤IO等諸多方面的實(shí)時(shí)參數(shù)。nmon起初是AIX平臺(tái)的一款命令行監(jiān)控工具,主要用于監(jiān)控AIX服務(wù)器,而后移植到Linux系統(tǒng)下。nmon有一個(gè)特點(diǎn)是一般命令行工具所不具備——將統(tǒng)計(jì)逐句轉(zhuǎn)化為圖表。首先來(lái)看一下nmon工具的啟動(dòng)界面,現(xiàn)實(shí)當(dāng)前系統(tǒng)的基本信息:
按h鍵,現(xiàn)實(shí)系統(tǒng)的nmon的幫助菜單??磏mon的幫助的時(shí)候,橫著看,一橫行屬于一類。nmon的使用比較直觀,按一下快捷鍵顯示相關(guān)信息,再按一下相關(guān)快捷鍵退出相關(guān)顯示:
先來(lái)個(gè)CPU、內(nèi)存、網(wǎng)絡(luò)、Disk集合,看看nmon都能顯示那些信息:
CPU、網(wǎng)卡、磁盤部分的統(tǒng)計(jì)信息比較好理解,不展開(kāi)了,內(nèi)存方面有不少概念與Linux系統(tǒng)不同,下面介紹nmon關(guān)于內(nèi)存方面的統(tǒng)計(jì)信息。 內(nèi)存部分有個(gè)Page Space的概念,是AIX的重要概念,官方翻譯做“調(diào)頁(yè)空間”?!罢{(diào)頁(yè)空間”的概念詳見(jiàn)第三節(jié)——概念介紹,總體上理解,paging space相當(dāng)于Linux下的swap。 AIX中Paging Space大小確定的指導(dǎo)原則如下 ( AIX 中 Paging Space 使用率過(guò)高的分析與解決 ):
實(shí)際上,物理內(nèi)存為4G,但是page space卻設(shè)置為512M。
另外,還有幾個(gè)概念page相關(guān)的數(shù)據(jù)統(tǒng)計(jì):
此處涉及到AIX系統(tǒng)內(nèi)存管理的一些概念,暫時(shí)不展開(kāi),附件中的VMM Concepts中有一些描述,先過(guò)。
內(nèi)存部分還可以顯示FileSystemCache,大體相當(dāng)于Linux的Cache,只不過(guò)是專門供文件系統(tǒng)讀寫(xiě)使用的。需要說(shuō)明的很多,關(guān)于AIX內(nèi)存的一些概念,需要單獨(dú)列出一篇帖子去描述。
nmon還可以監(jiān)視如下項(xiàng)目:
當(dāng)然,nmon還有很多其他功能,如按W鍵,顯示W(wǎng)orkLoadManagment統(tǒng)計(jì)的相關(guān)負(fù)載信息,此處就不一一列出來(lái)了。
二、topas
topas工具類似于Linux系統(tǒng)的top命令,但是比top命令強(qiáng)大。nmon和topas可以相互切換,通過(guò)“~”鍵。topas其實(shí)與nmon。在terminal中輸入topas啟動(dòng)之,顯示界面如下:
按h鍵顯示topas的幫助項(xiàng),基本與nmon相同
topas能夠監(jiān)視的信息沒(méi)有超出nmon的范圍,可能本身偏重于展示吧,能夠?qū)⑾到y(tǒng)的全局信息,包括CPU、內(nèi)存、磁盤、網(wǎng)絡(luò)、文件系統(tǒng)、事件隊(duì)列、文件等信息,排列在一個(gè)統(tǒng)一的界面上進(jìn)行展示。topas可以通過(guò)大寫(xiě)的快捷鍵如W、L、D、E、C、G、F、T、V、M等,來(lái)開(kāi)啟單獨(dú)的WLM面板、邏輯分區(qū)/cpu面板、磁盤面板、網(wǎng)絡(luò)面板、Cross-LPAR面板、Cluster面板、文件系統(tǒng)面板、磁帶面板、卷組面板、內(nèi)存拓?fù)涿姘宓茸置姘?,此處就不詳?xì)展開(kāi)了。 關(guān)于topas的詳細(xì)介紹,可以參考參 topas命令詳解 。 關(guān)于topas列出的一些參數(shù)的含義,如下所示:
EVENT/QUEUES:
Cswitch:在監(jiān)控期間每秒鐘內(nèi)容轉(zhuǎn)換的次數(shù);
Syscall:在監(jiān)控期間每秒鐘運(yùn)行系統(tǒng)呼叫的總次數(shù);
Reads:在監(jiān)控期間每秒鐘運(yùn)行讀系統(tǒng)呼叫的次數(shù);
Writes:在監(jiān)控期間每秒鐘運(yùn)行寫(xiě)系統(tǒng)呼叫的次數(shù);
Forks:在監(jiān)控期間每秒鐘運(yùn)行派生系統(tǒng)呼叫的次數(shù);
Execs:在監(jiān)控期間每秒鐘運(yùn)行執(zhí)行系統(tǒng)呼叫的次數(shù);
Runqueue:等待處理器空閑以便運(yùn)行的線程平均數(shù);
Waitqueue:等待分頁(yè)完成的線程平均數(shù);
FILE/TTY
Readch:在監(jiān)控期間通過(guò)讀系統(tǒng)呼叫每秒鐘讀出的字節(jié)數(shù);
Writech:在監(jiān)控期間通過(guò)寫(xiě)系統(tǒng)呼叫每秒鐘寫(xiě)入的字節(jié)數(shù);
Rawin:在監(jiān)控期間通過(guò)TTYs每秒鐘讀入的裸字節(jié)數(shù);
Ttyout:在監(jiān)控期間每秒鐘寫(xiě)入TTYs的字節(jié)數(shù);
Igets:在監(jiān)控期間每秒鐘到節(jié)點(diǎn)查找例行程序的呼叫數(shù);
Namei:在監(jiān)控期間每秒鐘路徑查找例行程序的呼叫數(shù);
Dirblk:在監(jiān)控期間通過(guò)目錄搜索例行程序每秒鐘掃描到的目錄塊數(shù);
PAGING部分顯示的是分頁(yè)每秒鐘次數(shù)的統(tǒng)計(jì):
Faults:在監(jiān)控期間每秒鐘發(fā)生的分頁(yè)錯(cuò)誤總數(shù);
Steals:在監(jiān)控期間被虛擬內(nèi)存管理器每秒鐘偷走的物理內(nèi)存4k的幀;
PgspIn:在監(jiān)控期間每秒鐘從分頁(yè)空間中讀取的4k分頁(yè)數(shù);
PgspOut:在監(jiān)控期間每秒鐘寫(xiě)入分頁(yè)空間的4k分頁(yè)數(shù);
PageIn:在監(jiān)控期間每秒鐘讀取的4k分頁(yè)數(shù),這包括從文件系統(tǒng)讀操作相關(guān)的分頁(yè)活動(dòng),從這個(gè)值減去PgspIn的值就是每秒鐘從文件系統(tǒng)讀操作相關(guān)的分頁(yè)活動(dòng)數(shù);
PageOut:在監(jiān)控期間每秒鐘寫(xiě)入的4k分頁(yè)數(shù),這包括向文件系統(tǒng)寫(xiě)操作相關(guān)的分頁(yè)活動(dòng),從這個(gè)值減去PgspOut的值就是每秒鐘向文件系統(tǒng)寫(xiě)操作相關(guān)的分頁(yè)活動(dòng)數(shù);
Sios:在監(jiān)控期間通過(guò)虛擬內(nèi)存管理器得到的I/O請(qǐng)求數(shù);
Momory部分顯示的是實(shí)際內(nèi)存和在使用中的內(nèi)存:
Real,MB:以M為單位的實(shí)際內(nèi)存;
%Comp:當(dāng)前分配給計(jì)算分頁(yè)片斷的內(nèi)存占實(shí)際內(nèi)存的百分比。計(jì)算分頁(yè)片斷由分頁(yè)空間產(chǎn)生。
%Nocomp:當(dāng)前分配非計(jì)算分頁(yè)片斷的內(nèi)存占實(shí)際內(nèi)存的百分比。非計(jì)算分頁(yè)片斷包括那些文件空間,數(shù)據(jù)文件、可執(zhí)行文件、或者共享庫(kù)文件。
%Client:當(dāng)前分配給用來(lái)緩沖遠(yuǎn)程掛載文件的內(nèi)存占實(shí)際內(nèi)存的百分比。
PAING SPACE顯示分頁(yè)空間的大小和使用率:
Size,MB:系統(tǒng)里所有分頁(yè)空間的大小,以M為單位;
%Used:當(dāng)前使用的分頁(yè)空間占總空間的百分比;
%Free:當(dāng)前空閑的分頁(yè)空間占總空間的百分比。
CPU工具:
User%:顯示運(yùn)行的用戶程序所占用的CPU百分比;
Kern%:顯示運(yùn)行的內(nèi)核程序所占用的CPU百分比;
Wait%:顯示等待IO操作所占用的CPU百分比;
Idel%:顯示CPU空閑的百分比。
網(wǎng)絡(luò)接口:
Interf:網(wǎng)絡(luò)接口的名稱;
KBPS:在監(jiān)控期間每秒鐘通過(guò)的以M為單位的總流量,這部分包括每秒鐘接收和發(fā)送的總和。
I-Pack:在監(jiān)控期間每秒鐘接收到的數(shù)據(jù)包數(shù);
O-Pack:在監(jiān)控期間每秒鐘發(fā)送的數(shù)據(jù)包數(shù);
KB-In:在監(jiān)控期間每秒鐘接收到的字節(jié)數(shù)(以K為單位);
KB-Out:在監(jiān)控期間每秒鐘發(fā)送的字節(jié)數(shù)(以K為單位)。
物理磁盤:
Disk:物理磁盤的名稱;
Busy%:指明物理磁盤在活動(dòng)狀態(tài)的時(shí)間百分比;
KBPS:在監(jiān)控期間每秒鐘讀寫(xiě)的字節(jié)數(shù)(以K為單位);
TPS:每秒鐘物理磁盤的數(shù)據(jù)傳輸量。一次傳輸指的是一次I/O請(qǐng)求;
KB-Read:每秒鐘從物理磁盤讀出的K字節(jié)數(shù);
KB-Write:每秒鐘向物理磁盤寫(xiě)入的K字節(jié)數(shù)。
WLM(負(fù)載管理)類:
%CPU Utilization:CPU的平均利用率;
%Mem Utilization:內(nèi)存的平均利用率;
%Blk I/O:塊I/O的平均利用率;
進(jìn)程:
NAME:可執(zhí)行程序的名稱;
Process ID:進(jìn)程的ID號(hào);
%CPU Utilization:進(jìn)程的CPU平均使用率,這個(gè)值指的是進(jìn)程在生命周期中的平均使用率;
Paging Space Used:分配給進(jìn)程的分頁(yè)空間大小;
Process Owner:擁有這個(gè)進(jìn)程的用戶名;
Workload Management(WLM)Class:進(jìn)程屬于哪個(gè)WLM class。
三、nomn_analyser
nmon和topas導(dǎo)出的文件均可以使用nmon_analyser進(jìn)行分析,生成圖表。nmon_analyser是一個(gè)excel工具,可以從 IBM官方nmon_analyser站點(diǎn) 下載,在windows下運(yùn)行,用于將nmon和topas生成的文件再二次生成圖表。以nmon為例,操作如下:
nmon -f -s 10 -c 60
該命令表示以標(biāo)準(zhǔn)的輸出文件的方式(-f)捕獲數(shù)據(jù),每10秒捕獲1次,共捕獲60次。最終生成標(biāo)準(zhǔn)的nmon數(shù)據(jù)文件:localhost_140422_1703.nmon。使用ftp等方式將nmon數(shù)據(jù)文件上傳至windows系統(tǒng)下,啟動(dòng)nmon_analyser(用excel打開(kāi)):
點(diǎn)擊analyse nmon data按鈕,選擇剛才使用ftp方式上傳的nmon文件,nmon_analyser就是分析該數(shù)據(jù)文件,并且生成一個(gè)新的excel文件,也就nmon_analyser根據(jù)數(shù)據(jù)生成的圖表:
四、概念介紹
(1)Paging Space
調(diào)頁(yè)空間是具有已分配磁盤空間一種邏輯卷,它存儲(chǔ)駐留于虛擬內(nèi)存中但當(dāng)前未被訪問(wèn)的信息。
此邏輯卷具有等同于頁(yè)面調(diào)度的屬性類型,并且通常簡(jiǎn)單地稱為調(diào)頁(yè)空間或交換空間。當(dāng)系統(tǒng)中的可用 RAM 量很少時(shí),將最近未使用的程序或數(shù)據(jù)從內(nèi)存移動(dòng)到調(diào)頁(yè)空間以釋放內(nèi)存,供其他活動(dòng)使用。
還有另一種調(diào)頁(yè)空間可用,它可通過(guò)使用 NFS 服務(wù)器進(jìn)行調(diào)頁(yè)空間存儲(chǔ)的設(shè)備來(lái)訪問(wèn)。為了 NFS 客戶機(jī)訪問(wèn)此調(diào)頁(yè)空間,該 NFS 服務(wù)器必須先創(chuàng)建一個(gè)文件并導(dǎo)出到該客戶機(jī)。該文件大小代表該客戶機(jī)的調(diào)頁(yè)空間大小。
所需的調(diào)頁(yè)空間的大小取決于在系統(tǒng)上執(zhí)行的活動(dòng)的類型。如果調(diào)頁(yè)空間不足,那么可能會(huì)丟失進(jìn)程,如果調(diào)頁(yè)空間耗盡,那么系統(tǒng)可能會(huì)混亂。檢測(cè)到調(diào)頁(yè)空間不足的情況時(shí),請(qǐng)定義附加調(diào)頁(yè)空間。
通過(guò)創(chuàng)建新的調(diào)頁(yè)空間邏輯卷或通過(guò)增大現(xiàn)有調(diào)頁(yè)空間邏輯卷的大小來(lái)定義邏輯卷調(diào)頁(yè)空間。要增大 NFS 調(diào)頁(yè)空間的大小,必須通過(guò)該服務(wù)器上的正確操作來(lái)增大位于該服務(wù)器上的文件。
系統(tǒng)可用于頁(yè)面調(diào)度的總空間是所有活動(dòng)調(diào)頁(yè)空間邏輯卷的大小之和。
聯(lián)系客服