少年阿賓

          那些青春的歲月

            BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
            500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks

          十八.  和系統(tǒng)運(yùn)行狀況相關(guān)的Shell命令:

              1.  Linux的實(shí)時(shí)監(jiān)測(cè)命令(watch):
              watch 是一個(gè)非常實(shí)用的命令,可以幫你實(shí)時(shí)監(jiān)測(cè)一個(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)前用戶(hù)登錄的狀況
              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í)通過(guò)其他Linux客戶(hù)端工具以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)
              最后一行中被高亮的用戶(hù)為新登錄的root用戶(hù)。此時(shí)按CTRL + C可以退出正在執(zhí)行的watch監(jiān)控進(jìn)程。
             
              #watch可以同時(shí)運(yùn)行多個(gè)命令,命令間用分號(hào)分隔。
              #以下命令監(jiān)控磁盤(pá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í)通過(guò)另一個(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) 說(shuō)明
          -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命令輸出的表格中包含以下幾列:

          列名 說(shuō)明
          total 總計(jì)物理內(nèi)存的大小。
          used 已使用的內(nèi)存數(shù)量。
          free 可用的內(nèi)存數(shù)量。
          Shared 多個(gè)進(jìn)程共享的內(nèi)存總額。
          Buffers/cached 磁盤(pán)緩存的大小。


              見(jiàn)以下具體示例和輸出說(shuō)明:
              /> 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)注紅色高亮的輸出行和綠色高亮的輸出行,見(jiàn)如下具體解釋?zhuān)?br />    紅色輸出行:該行使從操作系統(tǒng)的角度來(lái)看待輸出數(shù)據(jù)的,used(671776)表示內(nèi)核(Kernel)+Applications+buffers+cached。free(359544)表示系統(tǒng)還有多少內(nèi)存可供使用。
              綠色輸出行:該行則是從應(yīng)用程序的角度來(lái)看輸出數(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次,如果沒(méi)有第二個(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的使用狀況,以下為每列的含義:

          列名 說(shuō)明
          %user 在internal時(shí)間段里,用戶(hù)態(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í)間段里,硬盤(pán)IO等待時(shí)間(%) (iowait/total)*100
          %irq 在internal時(shí)間段里,硬中斷時(shí)間(%)     (irq/total)*100
          %soft 在internal時(shí)間段里,軟中斷時(shí)間(%)     (softirq/total)*100
          %idle 在internal時(shí)間段里,CPU除去等待磁盤(pán)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開(kāi)始的)
              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命令用來(lái)獲得UNIX系統(tǒng)有關(guān)進(jìn)程、虛存、頁(yè)面交換空間及CPU活動(dòng)的信息。這些信息反映了系統(tǒng)的負(fù)載情況。vmstat首次運(yùn)行時(shí)顯示自系統(tǒng)啟動(dòng)開(kāi)始的各項(xiàng)統(tǒng)計(jì)信息,之后運(yùn)行vmstat將顯示自上次運(yùn)行該命令以后的統(tǒng)計(jì)信息。用戶(hù)可以通過(guò)指定統(tǒng)計(jì)的次數(shù)和時(shí)間來(lái)獲得所需的統(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后退出。

              下面將給出輸出表格中每一列的含義說(shuō)明:
              有關(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è)備的讀寫(xiě)進(jìn)行緩沖。
              cache: 已使用的cache大小,文件系統(tǒng)的cache。
              有關(guān)頁(yè)面交換空間的信息有:(swap)
              si:  交換內(nèi)存使用,由磁盤(pán)調(diào)入內(nèi)存。
              so: 交換內(nèi)存使用,由內(nèi)存調(diào)入磁盤(pán)。 
              有關(guān)IO塊設(shè)備的信息有:(io)
              bi:  從塊設(shè)備讀入的數(shù)據(jù)總量(讀磁盤(pán)) (KB/s)
              bo: 寫(xiě)入到塊設(shè)備的數(shù)據(jù)總理(寫(xiě)磁盤(pán)) (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在用戶(hù)態(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 可以用來(lái)確定一個(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)開(kāi)始的各項(xiàng)統(tǒng)計(jì)信息,之后運(yùn)行iostat將顯示自上次運(yùn)行該命令以后的統(tǒng)計(jì)信息。用戶(hù)可以通過(guò)指定統(tǒng)計(jì)的次數(shù)和時(shí)間來(lái)獲得所需的統(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退出。
              下面將給出輸出表格中每列的含義:

          列名 說(shuō)明
          Blk_read/s 每秒塊(扇區(qū))讀取的數(shù)量。
          Blk_wrtn/s 每秒塊(扇區(qū))寫(xiě)入的數(shù)量。
          Blk_read 總共塊(扇區(qū))讀取的數(shù)量。
          Blk_wrtn 總共塊(扇區(qū))寫(xiě)入的數(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è)備名稱(chēng)為sda,該命令的輸出結(jié)果和上面命令完全相同。

              下面給出擴(kuò)展選項(xiàng)輸出的表格中每列的含義:

          列名 說(shuō)明
          rrqm/s 隊(duì)列中每秒鐘合并的讀請(qǐng)求數(shù)量
          wrqm/s 隊(duì)列中每秒鐘合并的寫(xiě)請(qǐng)求數(shù)量
          r/s 每秒鐘完成的讀請(qǐng)求數(shù)量
          w/s 每秒鐘完成的寫(xiě)請(qǐng)求數(shù)量
          rsec/s 每秒鐘讀取的扇區(qū)數(shù)量
          wsec/s 每秒鐘寫(xiě)入的扇區(qū)數(shù)量
          avgrq-sz 平均請(qǐng)求扇區(qū)的大小
          avgqu-sz 平均請(qǐng)求隊(duì)列的長(zhǎng)度
          await 平均每次請(qǐng)求的等待時(shí)間
          util 設(shè)備的利用率

              下面是關(guān)鍵列的解釋?zhuān)?br />    util是設(shè)備的利用率。如果它接近100%,通常說(shuō)明設(shè)備能力趨于飽和。
              await是平均每次請(qǐng)求的等待時(shí)間。這個(gè)時(shí)間包括了隊(duì)列時(shí)間和服務(wù)時(shí)間,也就是說(shuō),一般情況下,await大于svctm,它們的差值越小,則說(shuō)明隊(duì)列時(shí)間越短,反之差值越大,隊(duì)列時(shí)間越長(zhǎng),說(shuō)明系統(tǒng)出了問(wèn)題。
              avgqu-sz是平均請(qǐng)求隊(duì)列的長(zhǎng)度。毫無(wú)疑問(wèn),隊(duì)列長(zhǎng)度越短越好。                 

               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ù)切換、線(xiàn)程等。pidstat首次運(yùn)行時(shí)顯示自系統(tǒng)啟動(dòng)開(kāi)始的各項(xiàng)統(tǒng)計(jì)信息,之后運(yùn)行pidstat將顯示自上次運(yùn)行該命令以后的統(tǒng)計(jì)信息。用戶(hù)可以通過(guò)指定統(tǒng)計(jì)的次數(shù)和時(shí)間來(lái)獲得所需的統(tǒng)計(jì)信息。
              在正常的使用,通常都是通過(guò)在命令行選項(xiàng)中指定待監(jiān)控的pid,之后在通過(guò)其他具體的參數(shù)來(lái)監(jiān)控與該pid相關(guān)系統(tǒng)資源信息。

          選項(xiàng) 說(shuō)明
          -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)行的線(xià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)程在用戶(hù)態(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é)寫(xiě)出數(shù)量(KB)。
              kB_ccwr/s: 該進(jìn)程每秒取消磁盤(pán)寫(xiě)入的數(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)部線(xiàn)程的內(nèi)存(r選項(xiàng))使用情況,其中每隔2秒刷新并輸出一次,3次后程序退出。需要說(shuō)明的是,如果-t選項(xiàng)后面不加任何其他選項(xiàng),缺省監(jiān)控的為CPU資源。結(jié)果中黃色高亮的部分表示進(jìn)程和其內(nèi)部線(xiàn)程是樹(shù)狀結(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: 線(xiàn)程組ID。
              TID: 線(xiàn)程ID。  

              以上監(jiān)控不同資源的選項(xiàng)可以同時(shí)存在,這樣就將在一次輸出中輸出多種資源的使用情況,如:pidstat -p 1 -dr。

              7.  報(bào)告磁盤(pán)空間使用狀況(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)估磁盤(pán)的使用狀況(du)

          選項(xiàng) 說(shuō)明
          -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)前目錄下所有子目錄所占用的磁盤(pán)空間大小。
              352K    ./MemcachedTest
              132K    ./Test
              33M     ./thirdparty   
              #在當(dāng)前目錄下,排除目錄名模式為T(mén)e*的子目錄(./Test),輸出其他子目錄占用的磁盤(pán)空間大小。
              /> du --exclude=Te* -sh ./*  
              352K    ./MemcachedTest
              33M     ./thirdparty



          http://www.cnblogs.com/stephen-liu74/archive/2011/12/05/2257887.html

          posted on 2013-03-05 12:12 abin 閱讀(688) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): linux
          主站蜘蛛池模板: 泗水县| 邢台县| 大理市| 根河市| 斗六市| 高雄市| 蓝山县| 常德市| 德令哈市| 元朗区| 东乡县| 高密市| 普宁市| 胶州市| 垦利县| 齐齐哈尔市| 利川市| 南召县| 太湖县| 东乌| 锦屏县| 麻城市| 珲春市| 海城市| 云南省| 陇川县| 中超| 南阳市| 凯里市| 汤原县| 双流县| 灵丘县| 鄢陵县| 蒙山县| 北川| 曲阳县| 鄂托克前旗| 武宣县| 叙永县| 堆龙德庆县| 玉溪市|