一、系統(tǒng)負(fù)載監(jiān)測(cè)
1.使用uptime命令
使用uptime命令可以查看系統(tǒng)負(fù)載,系統(tǒng)平均負(fù)載被定義為在特定時(shí)間間隔內(nèi)運(yùn)行隊(duì)列中的平均進(jìn)程數(shù)目。如果一個(gè)進(jìn)程滿足以下條件則其就會(huì)位于運(yùn)行隊(duì)列中:沒(méi)有在等待I/O操作的結(jié)果、它沒(méi)有主動(dòng)進(jìn)入等待狀態(tài)(也就是沒(méi)有被調(diào)用、沒(méi)有被停止。
# uptime
9:51pm up 39 days, 4:43, 4 users, load average:1.02, 1.90, 1.44
上面命令顯示示最近1 分鐘內(nèi)系統(tǒng)的平均負(fù)載是1.02,在最近5分鐘內(nèi)系統(tǒng)的平均負(fù)載是1.90,在最近的15 分鐘內(nèi)系統(tǒng)的平均負(fù)載是1.44。一共四個(gè)用戶。通常來(lái)說(shuō)只要每個(gè)CPU的當(dāng)前活動(dòng)進(jìn)程數(shù)不小于1那幺系統(tǒng)的性能就是良好的,如果每個(gè)CPU的任務(wù)數(shù)大于5,那幺就表示這臺(tái)機(jī)器的性能有嚴(yán)重問(wèn)題。
2.使用cron命令進(jìn)行定時(shí)監(jiān)測(cè)系統(tǒng)負(fù)載:
cron是一個(gè)守護(hù)進(jìn)程,它提供定時(shí)器的功能,讓用戶在特定時(shí)間執(zhí)行命令,首先使用命令:“chkconfig -list|grep crond”查看該服務(wù)是否啟動(dòng),然后使用命令:
# crontab -e
此時(shí)打開(kāi)一個(gè)vi編輯器:輸入以下內(nèi)容:
#30 * * * * * uptime
存盤(pán)退出,這樣每隔30分鐘就記載其平均負(fù)載,這樣累計(jì)一天,我們就可以得到最近一天的平均負(fù)載。
二、Unix進(jìn)程運(yùn)行的監(jiān)測(cè)
1.使用ps命令
Unix系統(tǒng)提供了ps等察看進(jìn)程信息的系統(tǒng)調(diào)用,通過(guò)結(jié)合使用這些系統(tǒng)調(diào)用,我們可以清晰地了解進(jìn)程的運(yùn)行狀態(tài)以及存活情況,從而采取相應(yīng)的措施,來(lái)確保Unix系統(tǒng)的性能。它們是目前在Unix下最常見(jiàn)的進(jìn)程狀況查看工具,是隨 Unix版本發(fā)行的,安裝好系統(tǒng)之后,用戶就可以使用。 這里以ps命令為例,ps命令是最基本同時(shí)也是非常強(qiáng)大的進(jìn)程查看命令。利用它可以確定有哪些進(jìn)程正在運(yùn)行及運(yùn)行的狀態(tài)、進(jìn)程是否結(jié)束、進(jìn)程有沒(méi)有僵死、哪些進(jìn)程占用了過(guò)多的資源等。ps命令可以監(jiān)控后臺(tái)進(jìn)程的工作情況,因?yàn)楹笈_(tái)進(jìn)程是不和屏幕鍵盤(pán)這些標(biāo)準(zhǔn)輸入/輸出設(shè)備進(jìn)行通信的,如果需要檢測(cè)其情況,可以使用使用ps -el命令。ps-el|more命令輸出的例子。
![]() |
表 1 ps 報(bào)告中字段的匯總:
字段 |
說(shuō)明 |
F |
用數(shù)值表示目前進(jìn)程的狀態(tài) |
S |
用字符表示目前進(jìn)程的狀態(tài) |
UID |
進(jìn)程所有者的有效用戶 ID。 |
PID |
進(jìn)程 ID。 |
PPID |
父進(jìn)程 ID。 |
C |
用于調(diào)度的處理器使用率。使用 -c 選項(xiàng)時(shí),將不顯示此字段。 |
CLS |
進(jìn)程所屬的調(diào)度類(lèi),例如實(shí)時(shí)、系統(tǒng)或分時(shí)。只有 -c 選項(xiàng)包括此字段。 |
PRI |
內(nèi)核線程的調(diào)度優(yōu)先級(jí)。數(shù)值越大,表示優(yōu)先級(jí)越高。 |
NI |
進(jìn)程的nice數(shù)值,該數(shù)值對(duì)其調(diào)度優(yōu)先級(jí)有影響。使進(jìn)程“更好”,意味著降低其優(yōu)先級(jí)。 |
ADDR |
proc 結(jié)構(gòu)的地址。 |
SZ |
進(jìn)程的虛擬地址大小。 |
WCHAN |
進(jìn)程休眠的事件或鎖定的地址。 |
STIME |
以小時(shí)、分鐘和秒表示的進(jìn)程開(kāi)始時(shí)間。 |
TTY |
從中啟動(dòng)進(jìn)程或其父級(jí)的終端。問(wèn)號(hào)表示沒(méi)有控制終端。 |
TIME |
進(jìn)程自開(kāi)始以來(lái)使用的 CPU 時(shí)間總量。 |
CMD |
生成進(jìn)程的命令。 |
在進(jìn)行運(yùn)行時(shí),如果CPU占用增加而又不知道是哪一個(gè)進(jìn)程造成的情況。使用命令:
#ps -el | sort +4n
說(shuō)明:因?yàn)閏選項(xiàng)在第4列,所以sort 選4作參數(shù),+表示升序輸出結(jié)果。
2.使用進(jìn)程監(jiān)控工具
如果安裝了CDE環(huán)境,可以使用圖形界面進(jìn)程等系統(tǒng)信息,使用方法是單擊“前面板”上“工具”子面板上的“查找進(jìn)程”控件。 顯示“進(jìn)程管理器”主窗口。它立即對(duì)工作站進(jìn)行采樣,并顯示所有當(dāng)前進(jìn)程的采樣。如圖1 。
![]() |
圖1 進(jìn)程管理器 |
圖1進(jìn)程管理器列表中的每個(gè)進(jìn)程項(xiàng)會(huì)以表1中解釋的那樣給出有用的信息:
表2進(jìn)程信息
列標(biāo)題 |
含義 |
ID |
進(jìn)程 ID |
名稱 |
進(jìn)程名 |
屬主 |
屬主名 |
CPU% |
最近使用的 CPU 時(shí)間與同一時(shí)期中的可用時(shí)間之比,以百分?jǐn)?shù)表示 |
RAM |
該進(jìn)程當(dāng)前所占用的 RAM 容量 |
交換 |
虛擬內(nèi)存中的總?cè)萘?/font> |
啟動(dòng)于 |
實(shí)際啟動(dòng)時(shí)間(如果不是當(dāng)前時(shí)間,則為日期) |
父進(jìn)程 |
父進(jìn)程的進(jìn)程 ID,即 “PPID” |
命令 |
執(zhí)行的實(shí)際 UNIX 命令(已截?cái)啵?/font> |
1. 采樣周期的選擇
默認(rèn)情況下,“進(jìn)程管理器”對(duì)工作站進(jìn)行抽樣,并且每隔 30 秒更新一次顯示。要禁用/啟用連續(xù)采樣模式,請(qǐng)從“抽樣”菜單中選擇“停止/啟動(dòng)”。如果啟動(dòng)連續(xù)抽樣模式,則將在“采樣”菜單上看到“停止”菜單項(xiàng);否則,菜單項(xiàng)將為“啟動(dòng)”。要更改抽樣間隔,請(qǐng)?jiān)?ldquo;抽樣間隔”框中鍵入秒數(shù)(最大值為 604800,即 14 天)。按回車(chē)鍵以使新的抽樣頻率生效。要立即抽樣,請(qǐng)從“抽樣”菜單中選擇“現(xiàn)在”。“進(jìn)程管理器”進(jìn)行抽樣,然后更新顯示。
2. 更改顯示的排序順序
默認(rèn)情況下,“進(jìn)程管理器”按 CPU 使用的降序列出進(jìn)程項(xiàng)。因?yàn)?CPU 使用列 (CPU%) 上方的列標(biāo)題是凹陷的,而其它列標(biāo)題卻不是,所以可以知道這一點(diǎn)。要選擇用以對(duì)進(jìn)程項(xiàng)列表進(jìn)行排序的列,請(qǐng)單擊相關(guān)的列標(biāo)題或者從“查看”菜單中選擇列名稱。“進(jìn)程管理器”將進(jìn)程項(xiàng)的列表排序,并按照新順序顯示它們。要顛倒任何一列的排序順序(例如,要按 RAM 使用的升序進(jìn)行排列),請(qǐng)單擊凹陷的列標(biāo)題按鈕。列標(biāo)題區(qū)將變?yōu)楹谏⑶乙韵喾吹捻樞驅(qū)︼@示進(jìn)行排序。圖2是按照RAM使用的升序的排序ps進(jìn)程。
圖2按照RAM使用的升序的排序ps進(jìn)程。
![]() |
圖2按照RAM使用的升序的排序ps進(jìn)程 |
三、內(nèi)存使用情況監(jiān)測(cè)
內(nèi)存是Unix內(nèi)核所管理的最重要的資源之一。內(nèi)存管理系統(tǒng)是操作系統(tǒng)中最為重要的部分,因?yàn)橄到y(tǒng)的物理內(nèi)存總是少于系統(tǒng)所需要的內(nèi)存數(shù)量。虛擬內(nèi)存就是為了克服這個(gè)矛盾而采用的策略。系統(tǒng)的虛擬內(nèi)存通過(guò)在各個(gè)進(jìn)程之間共享內(nèi)存而使系統(tǒng)看起來(lái)有多于實(shí)際內(nèi)存的內(nèi)存容量。Unix支持虛擬內(nèi)存, 就是使用磁盤(pán)作為RAM的擴(kuò)展,使可用內(nèi)存相應(yīng)地有效擴(kuò)大。核心把當(dāng)前不用的內(nèi)存塊存到硬盤(pán),騰出內(nèi)存給其他目的。當(dāng)原來(lái)的內(nèi)容又要使用時(shí),再讀回內(nèi)存。
如果物理內(nèi)存太少,就會(huì)增加交換的次數(shù),性能就會(huì)減低。前面使用ps –el命令監(jiān)測(cè)進(jìn)程,其SZ字段就是檢查使用需擬內(nèi)存的大小。
(1)使甩vmstat命令監(jiān)視虛擬內(nèi)存使用情況:
vmstat是Virtual Meomory Statistics(虛擬內(nèi)存統(tǒng)計(jì))的縮寫(xiě),可對(duì)操作系統(tǒng)的虛擬內(nèi)存、進(jìn)程、CPU活動(dòng)進(jìn)行監(jiān)視。它是對(duì)系統(tǒng)的整體情況進(jìn)行統(tǒng)計(jì),不足之處是無(wú)法對(duì)某個(gè)進(jìn)程進(jìn)行深入分析。通常使用vmstat 5 5(表示在5秒時(shí)間內(nèi)進(jìn)行5次采樣)命令測(cè)試。將得到一個(gè)數(shù)據(jù)匯總它可以反映真正的系統(tǒng)情況。
![]() |
類(lèi)別 |
字段名 |
說(shuō)明 |
procs |
進(jìn)程 |
報(bào)告以下內(nèi)容: |
r |
分發(fā)隊(duì)列中的內(nèi)核線程數(shù) |
|
b |
正在等待資源的阻塞內(nèi)核線程數(shù) |
|
w |
正在等待處理中的資源完成的換出 LWP 數(shù) |
|
memory |
內(nèi)存 |
報(bào)告實(shí)際內(nèi)存和虛擬內(nèi)存的使用情況: |
swap |
可用交換空間 |
|
free |
可用列表的大小 |
|
page |
分頁(yè) |
以秒為單位報(bào)告頁(yè)面錯(cuò)誤和分頁(yè)活動(dòng): |
|
re |
回收的頁(yè)面 |
mf |
次要錯(cuò)誤和主要錯(cuò)誤 |
|
pi |
頁(yè)入的千字節(jié)數(shù) |
|
po |
頁(yè)出的千字節(jié)數(shù) |
|
fr |
釋放的千字節(jié)數(shù) |
|
de |
最近換入的進(jìn)程所需的預(yù)計(jì)內(nèi)存 |
|
sr |
由 page 守護(hù)程序掃描的當(dāng)前未使用的頁(yè)數(shù)。如果 sr 不等于零,則 page 守護(hù)程序一直在運(yùn)行。 |
|
disk |
磁盤(pán) |
報(bào)告每秒的磁盤(pán)操作數(shù),最多顯示四個(gè)磁盤(pán)中的數(shù)據(jù) |
faults |
中斷 |
報(bào)告每秒的陷阱/中斷速率: |
in |
每秒的中斷次數(shù) |
|
sy |
每秒的系統(tǒng)調(diào)用數(shù) |
|
cs |
CPU 上下文切換速率 |
|
cpu |
中央處理器 |
報(bào)告 CPU 使用時(shí)間: |
us |
用戶時(shí)間 |
|
sy |
系統(tǒng)時(shí)間 |
|
id |
空閑時(shí)間 |
有關(guān)此命令的更多詳細(xì)說(shuō)明,請(qǐng)參見(jiàn) vmstat 手冊(cè)頁(yè)。