十八. 和系統(tǒng)運(yùn)行狀況相關(guān)的Shell命令:
1. Linux的實(shí)時(shí)監(jiān)測命令(watch):
watch 是一個(gè)非常實(shí)用的命令,可以幫你實(shí)時(shí)監(jiān)測一個(gè)命令的運(yùn)行結(jié)果,省得一遍又一遍的手動(dòng)運(yùn)行。該命令最為常用的兩個(gè)選項(xiàng)是-d和-n,其中-n表示間隔多少秒執(zhí)行一次"command",-d表示高亮發(fā)生變化的位置。下面列舉幾個(gè)在watch中常用的實(shí)時(shí)監(jiān)視命令:
/> watch -d -n 1 'who' #每隔一秒執(zhí)行一次who命令,以監(jiān)視服務(wù)器當(dāng)前用戶登錄的狀況
Every 1.0s: who Sat Nov 12 12:37:18 2011
stephen tty1 2011-11-11 17:38 (:0)
stephen pts/0 2011-11-11 17:39 (:0.0)
root pts/1 2011-11-12 10:01 (192.168.149.1)
root pts/2 2011-11-12 11:41 (192.168.149.1)
root pts/3 2011-11-12 12:11 (192.168.149.1)
stephen pts/4 2011-11-12 12:22 (:0.0)
此時(shí)通過其他Linux客戶端工具以root的身份登錄當(dāng)前Linux服務(wù)器,再觀察watch命令的運(yùn)行變化。
Every 1.0s: who Sat Nov 12 12:41:09 2011
stephen tty1 2011-11-11 17:38 (:0)
stephen pts/0 2011-11-11 17:39 (:0.0)
root pts/1 2011-11-12 10:01 (192.168.149.1)
root pts/2 2011-11-12 11:41 (192.168.149.1)
root pts/3 2011-11-12 12:40 (192.168.149.1)
stephen pts/4 2011-11-12 12:22 (:0.0)
root pts/5 2011-11-12 12:41 (192.168.149.1)
最后一行中被高亮的用戶為新登錄的root用戶。此時(shí)按CTRL + C可以退出正在執(zhí)行的watch監(jiān)控進(jìn)程。
#watch可以同時(shí)運(yùn)行多個(gè)命令,命令間用分號(hào)分隔。
#以下命令監(jiān)控磁盤的使用狀況,以及當(dāng)前目錄下文件的變化狀況,包括文件的新增、刪除和文件修改日期的更新等。
/> watch -d -n 1 'df -h; ls -l'
Every 1.0s: df -h; ls -l Sat Nov 12 12:55:00 2011
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 5.8G 3.3G 2.2G 61% /
tmpfs 504M 420K 504M 1% /dev/shm
total 20
-rw-r--r--. 1 root root 10530 Nov 11 23:08 test.tar.bz2
-rw-r--r--. 1 root root 183 Nov 11 08:02 users
-rw-r--r--. 1 root root 279 Nov 11 08:45 users2
此時(shí)通過另一個(gè)Linux控制臺(tái)窗口,在watch監(jiān)視的目錄下,如/home/stephen/test,執(zhí)行下面的命令
/> touch aa #在執(zhí)行該命令之后,另一個(gè)執(zhí)行watch命令的控制臺(tái)將有如下變化
Every 1.0s: df -h; ls -l Sat Nov 12 12:57:08 2011
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 5.8G 3.3G 2.2G 61% /
tmpfs 504M 420K 504M 1% /dev/shm
total 20
-rw-r--r--. 1 root root 0 Nov 12 12:56 aa
-rw-r--r--. 1 root root 0 Nov 12 10:02 datafile3
-rw-r--r--. 1 root root 10530 Nov 11 23:08 test.tar.bz2
-rw-r--r--. 1 root root 183 Nov 11 08:02 users
-rw-r--r--. 1 root root 279 Nov 11 08:45 users2
其中黃色高亮的部分,為touch aa命令執(zhí)行之后watch輸出的高亮變化部分。
2. 查看當(dāng)前系統(tǒng)內(nèi)存使用狀況(free):
free命令有以下幾個(gè)常用選項(xiàng):
選項(xiàng) |
說明 |
-b |
以字節(jié)為單位顯示數(shù)據(jù)。 |
-k |
以千字節(jié)(KB)為單位顯示數(shù)據(jù)(缺省值)。 |
-m |
以兆(MB)為單位顯示數(shù)據(jù)。 |
-s delay |
該選項(xiàng)將使free持續(xù)不斷的刷新,每次刷新之間的間隔為delay指定的秒數(shù),如果含有小數(shù)點(diǎn),將精確到毫秒,如0.5為500毫秒,1為一秒。 |
free命令輸出的表格中包含以下幾列:
列名 |
說明 |
total |
總計(jì)物理內(nèi)存的大小。 |
used |
已使用的內(nèi)存數(shù)量。 |
free |
可用的內(nèi)存數(shù)量。 |
Shared |
多個(gè)進(jìn)程共享的內(nèi)存總額。 |
Buffers/cached |
磁盤緩存的大小。 |
見以下具體示例和輸出說明:
/> free -k
total used free shared buffers cached
Mem: 1031320 671776 359544 0 88796 352564
-/+ buffers/cache: 230416 800904
Swap: 204792 0 204792
對(duì)于free命令的輸出,我們只需關(guān)注紅色高亮的輸出行和綠色高亮的輸出行,見如下具體解釋:
紅色輸出行:該行使從操作系統(tǒng)的角度來看待輸出數(shù)據(jù)的,used(671776)表示內(nèi)核(Kernel)+Applications+buffers+cached。free(359544)表示系統(tǒng)還有多少內(nèi)存可供使用。
綠色輸出行:該行則是從應(yīng)用程序的角度來看輸出數(shù)據(jù)的。其free = 操作系統(tǒng)used + buffers + cached,既:
800904 = 359544 + 88796 + 352564
/> free -m
total used free shared buffers cached
Mem: 1007 656 351 0 86 344
-/+ buffers/cache: 225 782
Swap: 199 0 199
/> free -k -s 1.5 #以千字節(jié)(KB)為單位顯示數(shù)據(jù),同時(shí)每隔1.5刷新輸出一次,直到按CTRL+C退出
total used free shared buffers cached
Mem: 1007 655 351 0 86 344
-/+ buffers/cache: 224 782
Swap: 199 0 199
total used free shared buffers cached
Mem: 1007 655 351 0 86 344
-/+ buffers/cache: 224 782
Swap: 199 0 199
3. CPU的實(shí)時(shí)監(jiān)控工具(mpstat):
該命令主要用于報(bào)告當(dāng)前系統(tǒng)中所有CPU的實(shí)時(shí)運(yùn)行狀況。
#該命令將每隔2秒輸出一次CPU的當(dāng)前運(yùn)行狀況信息,一共輸出5次,如果沒有第二個(gè)數(shù)字參數(shù),mpstat將每隔兩秒執(zhí)行一次,直到按CTRL+C退出。
/> mpstat 2 5
Linux 2.6.32-71.el6.i686 (Stephen-PC) 11/12/2011 _i686_ (1 CPU)
04:03:00 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
04:03:02 PM all 0.00 0.00 0.50 0.00 0.00 0.00 0.00 0.00 99.50
04:03:04 PM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
04:03:06 PM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
04:03:08 PM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
04:03:10 PM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
Average: all 0.00 0.00 0.10 0.00 0.00 0.00 0.00 0.00 99.90
第一行的末尾給出了當(dāng)前系統(tǒng)中CPU的數(shù)量。后面的表格中則輸出了系統(tǒng)當(dāng)前CPU的使用狀況,以下為每列的含義:
列名 |
說明 |
%user |
在internal時(shí)間段里,用戶態(tài)的CPU時(shí)間(%),不包含nice值為負(fù)進(jìn)程 (usr/total)*100 |
%nice |
在internal時(shí)間段里,nice值為負(fù)進(jìn)程的CPU時(shí)間(%) (nice/total)*100 |
%sys |
在internal時(shí)間段里,內(nèi)核時(shí)間(%) (system/total)*100 |
%iowait |
在internal時(shí)間段里,硬盤IO等待時(shí)間(%) (iowait/total)*100 |
%irq |
在internal時(shí)間段里,硬中斷時(shí)間(%) (irq/total)*100 |
%soft |
在internal時(shí)間段里,軟中斷時(shí)間(%) (softirq/total)*100 |
%idle |
在internal時(shí)間段里,CPU除去等待磁盤IO操作外的因?yàn)槿魏卧蚨臻e的時(shí)間閑置時(shí)間(%) (idle/total)*100 |
計(jì)算公式:
total_cur=user+system+nice+idle+iowait+irq+softirq
total_pre=pre_user+ pre_system+ pre_nice+ pre_idle+ pre_iowait+ pre_irq+ pre_softirq
user=user_cur – user_pre
total=total_cur-total_pre
其中_cur 表示當(dāng)前值,_pre表示interval時(shí)間前的值。上表中的所有值可取到兩位小數(shù)點(diǎn)。
/> mpstat -P ALL 2 3 #-P ALL表示打印所有CPU的數(shù)據(jù),這里也可以打印指定編號(hào)的CPU數(shù)據(jù),如-P 0(CPU的編號(hào)是0開始的)
Linux 2.6.32-71.el6.i686 (Stephen-PC) 11/12/2011 _i686_ (1 CPU)
04:12:54 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
04:12:56 PM all 0.00 0.00 0.50 0.00 0.00 0.00 0.00 0.00 99.50
04:12:56 PM 0 0.00 0.00 0.50 0.00 0.00 0.00 0.00 0.00 99.50
04:12:56 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
04:12:58 PM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
04:12:58 PM 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
04:12:58 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
04:13:00 PM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
04:13:00 PM 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
Average: CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
Average: all 0.00 0.00 0.17 0.00 0.00 0.00 0.00 0.00 99.83
Average: 0 0.00 0.00 0.17 0.00 0.00 0.00 0.00 0.00 99.83
4. 虛擬內(nèi)存的實(shí)時(shí)監(jiān)控工具(vmstat):
vmstat命令用來獲得UNIX系統(tǒng)有關(guān)進(jìn)程、虛存、頁面交換空間及CPU活動(dòng)的信息。這些信息反映了系統(tǒng)的負(fù)載情況。vmstat首次運(yùn)行時(shí)顯示自系統(tǒng)啟動(dòng)開始的各項(xiàng)統(tǒng)計(jì)信息,之后運(yùn)行vmstat將顯示自上次運(yùn)行該命令以后的統(tǒng)計(jì)信息。用戶可以通過指定統(tǒng)計(jì)的次數(shù)和時(shí)間來獲得所需的統(tǒng)計(jì)信息。
/> vmstat 1 3 #這是vmstat最為常用的方式,其含義為每隔1秒輸出一條,一共輸出3條后程序退出。
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 531760 67284 231212 108 0 0 260 111 148 1 5 86 8 0
0 0 0 531752 67284 231212 0 0 0 0 33 57 0 1 99 0 0
0 0 0 531752 67284 231212 0 0 0 0 40 73 0 0 100 0 0
/> vmstat 1 #其含義為每隔1秒輸出一條,直到按CTRL+C后退出。
下面將給出輸出表格中每一列的含義說明:
有關(guān)進(jìn)程的信息有:(procs)
r: 在就緒狀態(tài)等待的進(jìn)程數(shù)。
b: 在等待狀態(tài)等待的進(jìn)程數(shù)。
有關(guān)內(nèi)存的信息有:(memory)
swpd: 正在使用的swap大小,單位為KB。
free: 空閑的內(nèi)存空間。
buff: 已使用的buff大小,對(duì)塊設(shè)備的讀寫進(jìn)行緩沖。
cache: 已使用的cache大小,文件系統(tǒng)的cache。
有關(guān)頁面交換空間的信息有:(swap)
si: 交換內(nèi)存使用,由磁盤調(diào)入內(nèi)存。
so: 交換內(nèi)存使用,由內(nèi)存調(diào)入磁盤。
有關(guān)IO塊設(shè)備的信息有:(io)
bi: 從塊設(shè)備讀入的數(shù)據(jù)總量(讀磁盤) (KB/s)
bo: 寫入到塊設(shè)備的數(shù)據(jù)總理(寫磁盤) (KB/s)
有關(guān)故障的信息有:(system)
in: 在指定時(shí)間內(nèi)的每秒中斷次數(shù)。
sy: 在指定時(shí)間內(nèi)每秒系統(tǒng)調(diào)用次數(shù)。
cs: 在指定時(shí)間內(nèi)每秒上下文切換的次數(shù)。
有關(guān)CPU的信息有:(cpu)
us: 在指定時(shí)間間隔內(nèi)CPU在用戶態(tài)的利用率。
sy: 在指定時(shí)間間隔內(nèi)CPU在核心態(tài)的利用率。
id: 在指定時(shí)間間隔內(nèi)CPU空閑時(shí)間比。
wa: 在指定時(shí)間間隔內(nèi)CPU因?yàn)榈却齀/O而空閑的時(shí)間比。
vmstat 可以用來確定一個(gè)系統(tǒng)的工作是受限于CPU還是受限于內(nèi)存:如果CPU的sy和us值相加的百分比接近100%,或者運(yùn)行隊(duì)列(r)中等待的進(jìn)程數(shù)總是不等于0,且經(jīng)常大于4,同時(shí)id也經(jīng)常小于40,則該系統(tǒng)受限于CPU;如果bi、bo的值總是不等于0,則該系統(tǒng)受限于內(nèi)存。
5. 設(shè)備IO負(fù)載的實(shí)時(shí)監(jiān)控工具(iostat):
iostat主要用于監(jiān)控系統(tǒng)設(shè)備的IO負(fù)載情況,iostat首次運(yùn)行時(shí)顯示自系統(tǒng)啟動(dòng)開始的各項(xiàng)統(tǒng)計(jì)信息,之后運(yùn)行iostat將顯示自上次運(yùn)行該命令以后的統(tǒng)計(jì)信息。用戶可以通過指定統(tǒng)計(jì)的次數(shù)和時(shí)間來獲得所需的統(tǒng)計(jì)信息。
其中該命令中最為常用的使用方式如下:
/> iostat -d 1 3 #僅顯示設(shè)備的IO負(fù)載,其中每隔1秒刷新并輸出結(jié)果一次,輸出3次后iostat退出。
Linux 2.6.32-71.el6.i686 (Stephen-PC) 11/16/2011 _i686_ (1 CPU)
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 5.35 258.39 26.19 538210 54560
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 0.00 0.00 0.00 0 0
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 0.00 0.00 0.00 0 0
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 0.00 0.00 0.00 0 0
/> iostat -d 1 #和上面的命令一樣,也是每隔1秒刷新并輸出一次,但是該命令將一直輸出,直到按CTRL+C退出。
下面將給出輸出表格中每列的含義:
列名 |
說明 |
Blk_read/s |
每秒塊(扇區(qū))讀取的數(shù)量。 |
Blk_wrtn/s |
每秒塊(扇區(qū))寫入的數(shù)量。 |
Blk_read |
總共塊(扇區(qū))讀取的數(shù)量。 |
Blk_wrtn |
總共塊(扇區(qū))寫入的數(shù)量。 |
iostat還有一個(gè)比較常用的選項(xiàng)-x,該選項(xiàng)將用于顯示和io相關(guān)的擴(kuò)展數(shù)據(jù)。
/> iostat -dx 1 3
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
sda 5.27 1.31 2.82 1.14 189.49 19.50 52.75 0.53 133.04 10.74 4.26
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util
sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
還可以在命令行參數(shù)中指定要監(jiān)控的設(shè)備名,如:
/> iostat -dx sda 1 3 #指定監(jiān)控的設(shè)備名稱為sda,該命令的輸出結(jié)果和上面命令完全相同。
下面給出擴(kuò)展選項(xiàng)輸出的表格中每列的含義:
列名 |
說明 |
rrqm/s |
隊(duì)列中每秒鐘合并的讀請求數(shù)量 |
wrqm/s |
隊(duì)列中每秒鐘合并的寫請求數(shù)量 |
r/s |
每秒鐘完成的讀請求數(shù)量 |
w/s |
每秒鐘完成的寫請求數(shù)量 |
rsec/s |
每秒鐘讀取的扇區(qū)數(shù)量 |
wsec/s |
每秒鐘寫入的扇區(qū)數(shù)量 |
avgrq-sz |
平均請求扇區(qū)的大小 |
avgqu-sz |
平均請求隊(duì)列的長度 |
await |
平均每次請求的等待時(shí)間 |
util |
設(shè)備的利用率 |
下面是關(guān)鍵列的解釋:
util是設(shè)備的利用率。如果它接近100%,通常說明設(shè)備能力趨于飽和。
await是平均每次請求的等待時(shí)間。這個(gè)時(shí)間包括了隊(duì)列時(shí)間和服務(wù)時(shí)間,也就是說,一般情況下,await大于svctm,它們的差值越小,則說明隊(duì)列時(shí)間越短,反之差值越大,隊(duì)列時(shí)間越長,說明系統(tǒng)出了問題。
avgqu-sz是平均請求隊(duì)列的長度。毫無疑問,隊(duì)列長度越短越好。
6. 當(dāng)前運(yùn)行進(jìn)程的實(shí)時(shí)監(jiān)控工具(pidstat):
pidstat主要用于監(jiān)控全部或指定進(jìn)程占用系統(tǒng)資源的情況,如CPU,內(nèi)存、設(shè)備IO、任務(wù)切換、線程等。pidstat首次運(yùn)行時(shí)顯示自系統(tǒng)啟動(dòng)開始的各項(xiàng)統(tǒng)計(jì)信息,之后運(yùn)行pidstat將顯示自上次運(yùn)行該命令以后的統(tǒng)計(jì)信息。用戶可以通過指定統(tǒng)計(jì)的次數(shù)和時(shí)間來獲得所需的統(tǒng)計(jì)信息。
在正常的使用,通常都是通過在命令行選項(xiàng)中指定待監(jiān)控的pid,之后在通過其他具體的參數(shù)來監(jiān)控與該pid相關(guān)系統(tǒng)資源信息。
選項(xiàng) |
說明 |
-l |
顯示該進(jìn)程和CPU相關(guān)的信息(command列中可以顯示命令的完整路徑名和命令的參數(shù))。 |
-d |
顯示該進(jìn)程和設(shè)備IO相關(guān)的信息。 |
-r |
顯示該進(jìn)程和內(nèi)存相關(guān)的信息。 |
-w |
顯示該進(jìn)程和任務(wù)時(shí)間片切換相關(guān)的信息。 |
-t |
顯示在該進(jìn)程內(nèi)正在運(yùn)行的線程相關(guān)的信息。 |
-p |
后面緊跟著帶監(jiān)控的進(jìn)程id或ALL(表示所有進(jìn)程),如不指定該選項(xiàng),將監(jiān)控當(dāng)前系統(tǒng)正在運(yùn)行的所有進(jìn)程。 |
#監(jiān)控pid為1(init)的進(jìn)程的CPU資源使用情況,其中每隔3秒刷新并輸出一次,3次后程序退出。
/> pidstat -p 1 2 3 -l
07:18:58 AM PID %usr %system %guest %CPU CPU Command
07:18:59 AM 1 0.00 0.00 0.00 0.00 0 /sbin/init
07:19:00 AM 1 0.00 0.00 0.00 0.00 0 /sbin/init
07:19:01 AM 1 0.00 0.00 0.00 0.00 0 /sbin/init
Average: 1 0.00 0.00 0.00 0.00 - /sbin/init
%usr: 該進(jìn)程在用戶態(tài)的CPU使用率。
%system:該進(jìn)程在內(nèi)核態(tài)(系統(tǒng)級(jí))的CPU使用率。
%CPU: 該進(jìn)程的總CPU使用率,如果在SMP環(huán)境下,該值將除以CPU的數(shù)量,以表示每CPU的數(shù)據(jù)。
CPU: 該進(jìn)程所依附的CPU編號(hào)(0表示第一個(gè)CPU)。
#監(jiān)控pid為1(init)的進(jìn)程的設(shè)備IO資源負(fù)載情況,其中每隔2秒刷新并輸出一次,3次后程序退出。
/> pidstat -p 1 2 3 -d
07:24:49 AM PID kB_rd/s kB_wr/s kB_ccwr/s Command
07:24:51 AM 1 0.00 0.00 0.00 init
07:24:53 AM 1 0.00 0.00 0.00 init
07:24:55 AM 1 0.00 0.00 0.00 init
Average: 1 0.00 0.00 0.00 init
kB_rd/s: 該進(jìn)程每秒的字節(jié)讀取數(shù)量(KB)。
kB_wr/s: 該進(jìn)程每秒的字節(jié)寫出數(shù)量(KB)。
kB_ccwr/s: 該進(jìn)程每秒取消磁盤寫入的數(shù)量(KB)。
#監(jiān)控pid為1(init)的進(jìn)程的內(nèi)存使用情況,其中每隔2秒刷新并輸出一次,3次后程序退出。
/> pidstat -p 1 2 3 -r
07:29:56 AM PID minflt/s majflt/s VSZ RSS %MEM Command
07:29:58 AM 1 0.00 0.00 2828 1368 0.13 init
07:30:00 AM 1 0.00 0.00 2828 1368 0.13 init
07:30:02 AM 1 0.00 0.00 2828 1368 0.13 init
Average: 1 0.00 0.00 2828 1368 0.13 init
%MEM: 該進(jìn)程的內(nèi)存使用百分比。
#監(jiān)控pid為1(init)的進(jìn)程任務(wù)切換情況,其中每隔2秒刷新并輸出一次,3次后程序退出。
/> pidstat -p 1 2 3 -w
07:32:15 AM PID cswch/s nvcswch/s Command
07:32:17 AM 1 0.00 0.00 init
07:32:19 AM 1 0.00 0.00 init
07:32:21 AM 1 0.00 0.00 init
Average: 1 0.00 0.00 init
cswch/s: 每秒任務(wù)主動(dòng)(自愿的)切換上下文的次數(shù)。主動(dòng)切換是指當(dāng)某一任務(wù)處于阻塞等待時(shí),將主動(dòng)讓出自己的CPU資源。
nvcswch/s: 每秒任務(wù)被動(dòng)(不自愿的)切換上下文的次數(shù)。被動(dòng)切換是指CPU分配給某一任務(wù)的時(shí)間片已經(jīng)用完,因此將強(qiáng)迫該進(jìn)程讓出CPU的執(zhí)行權(quán)。
#監(jiān)控pid為1(init)的進(jìn)程及其內(nèi)部線程的內(nèi)存(r選項(xiàng))使用情況,其中每隔2秒刷新并輸出一次,3次后程序退出。需要說明的是,如果-t選項(xiàng)后面不加任何其他選項(xiàng),缺省監(jiān)控的為CPU資源。結(jié)果中黃色高亮的部分表示進(jìn)程和其內(nèi)部線程是樹狀結(jié)構(gòu)的顯示方式。
/> pidstat -p 1 2 3 -tr
Linux 2.6.32-71.el6.i686 (Stephen-PC) 11/16/2011 _i686_ (1 CPU)
07:37:04 AM TGID TID minflt/s majflt/s VSZ RSS %MEM Command
07:37:06 AM 1 - 0.00 0.00 2828 1368 0.13 init
07:37:06 AM - 1 0.00 0.00 2828 1368 0.13 |__init
07:37:06 AM TGID TID minflt/s majflt/s VSZ RSS %MEM Command
07:37:08 AM 1 - 0.00 0.00 2828 1368 0.13 init
07:37:08 AM - 1 0.00 0.00 2828 1368 0.13 |__init
07:37:08 AM TGID TID minflt/s majflt/s VSZ RSS %MEM Command
07:37:10 AM 1 - 0.00 0.00 2828 1368 0.13 init
07:37:10 AM - 1 0.00 0.00 2828 1368 0.13 |__init
Average: TGID TID minflt/s majflt/s VSZ RSS %MEM Command
Average: 1 - 0.00 0.00 2828 1368 0.13 init
Average: - 1 0.00 0.00 2828 1368 0.13 |__init
TGID: 線程組ID。
TID: 線程ID。
以上監(jiān)控不同資源的選項(xiàng)可以同時(shí)存在,這樣就將在一次輸出中輸出多種資源的使用情況,如:pidstat -p 1 -dr。
7. 報(bào)告磁盤空間使用狀況(df):
該命令最為常用的選項(xiàng)就是-h,該選項(xiàng)將智能的輸出數(shù)據(jù)單位,以便使輸出的結(jié)果更具可讀性。
/> df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 5.8G 3.3G 2.2G 61% /
tmpfs 504M 260K 504M 1% /dev/shm
8. 評(píng)估磁盤的使用狀況(du):
選項(xiàng) |
說明 |
-a |
包括了所有的文件,而不只是目錄。 |
-b |
以字節(jié)為計(jì)算單位。 |
-k |
以千字節(jié)(KB)為計(jì)算單位。 |
-m |
以兆字節(jié)(MB)為計(jì)算單位。 |
-h |
是輸出的信息更易于閱讀。 |
-s |
只顯示工作目錄所占總空間。 |
--exclude=PATTERN |
排除掉符合樣式的文件,Pattern就是普通的Shell樣式,?表示任何一個(gè)字符,*表示任意多個(gè)字符。 |
--max-depth=N |
從當(dāng)前目錄算起,目錄深度大于N的子目錄將不被計(jì)算,該選項(xiàng)不能和s選項(xiàng)同時(shí)存在。
|
#僅顯示子一級(jí)目錄的信息。
/> du --max-depth=1 -h
246M ./stephen
246M .
/> du -sh ./* #獲取當(dāng)前目錄下所有子目錄所占用的磁盤空間大小。
352K ./MemcachedTest
132K ./Test
33M ./thirdparty
#在當(dāng)前目錄下,排除目錄名模式為Te*的子目錄(./Test),輸出其他子目錄占用的磁盤空間大小。
/> du --exclude=Te* -sh ./*
352K ./MemcachedTest
33M ./thirdparty
http://www.cnblogs.com/stephen-liu74/archive/2011/12/05/2257887.html