005.系統管理監測命令

CPU性能評估

vmstat命令
  • 作用:可以對操作系統的內存信息、進程狀態、CPU活動等進行監控。
  • 語法:vmstat(選項)(參數)
    • 選項

      • -a:顯示活動內頁;
      • -f:顯示啓動後創建的進程總數;
      • -m:顯示slab信息;
      • -n:頭信息僅顯示一次;
      • -s:以表格方式顯示事件計數器和內存狀態;
      • -d:報告磁盤狀態;
      • -p:顯示指定的硬盤分區狀態;
      • -S:輸出信息的單位。
    • 參數

      • 事件間隔:狀態信息刷新的時間間隔;
      • 次數:顯示報告的次數。
    • 舉例
      [root@study ~]# vmstat 3 5
      每2秒統計一次輸出,統計5次後停止輸出。

    • 解釋

      • procs

        1. r列表示運行和等待CPU時間片的進程數,此數值如果長期大於系統CPU個數,說明CPU不足,需要增加CPU。
        2. b列表在等待資源的進程數,如正在等待I/O或者內存交換等。
      • memory

        1. swpd列表示切換到內存交換區的內存數量(以kb爲單位)。
        2. free列表示當前空閒的物理內存數量(以kb爲單位)。
        3. buff列表示緩衝區緩存的內存數量,一般對塊設備的讀寫才需要緩衝。
        4. cache列表示頁面緩存的內存數量,一般作爲文件系統緩存,如果cache值較大,說明緩存的文件數角度,若此時的IO中bi較小,說明文件系統效率比較高。
      • swap

        1. si列表示由磁盤調入內存,即內存進入內存交換區的數量。
        2. so列表示內存調入磁盤,即內存交換區進入內存的數量。
          注意:如果si、so長期不爲0,則表示系統內存不足。
      • io:顯示磁盤讀寫狀況

        1. bi列表示從塊設備讀入數據的總量(即讀磁盤)(每秒kb)。
        2. bo列表示寫入到塊設備的數據總量(即寫磁盤)(每秒kb)。
      • system:顯示猜忌間隔內發生的中斷次數。

        1. in列表示在某一時間間隔中觀測到的每秒設備中斷次數。
        2. cs列表示每秒產生的上下文切換次數。
          注意:以上兩個值越大,則由內核佔用CPU的時間會越多。
      • cpu:顯示CPU的使用狀態。

        1. us列顯示用戶進程佔用CPU的時間百分比,如果長期大於50%,則需要重點關注。
        2. sy列顯示內核進程佔用CPU的時間百分比。
        3. id列顯示了CPU處在空閒狀態的百分比。
        4. wa列顯示了I/O等待所佔用的CPU時間百分比。wa值越高,說明I/O等待越嚴重。
          **注意:
          1. us+sy的參考值爲80%,如果大於80%,可能存在CPU資源不足。
          2. wa的參考是爲20%,如果wa超過20%,說明I/O等待嚴重。**
sar命令
  • 作用:Linux下系統運行狀態統計工具,它將指定的操作系統狀態計數器顯示到標準輸出設備。sar工具將對系統當前的狀態進行取樣,然後通過計算數據和比例來表達系統的當前運行狀態。它的特點是可以連續對系統取樣,獲得大量的取樣數據。
  • 語法:sar(選項)(參數)
    • 選項

      • -A:顯示所有的報告信息;
      • -b:顯示I/O速率;
      • -B:顯示換頁狀態;
      • -c:顯示進程創建活動;
      • -d:顯示每個塊設備的狀態;
      • -e:設置顯示報告的結束時間;
      • -f:從指定文件提取報告;
      • -i:設狀態信息刷新的間隔時間;
      • -P:報告每個CPU的狀態;
      • -R:顯示內存狀態;
      • -u:顯示CPU利用率;
      • -v:顯示索引節點,文件和其他內核表的狀態;
      • -w:顯示交換分區狀態;
      • -x:顯示給定進程的狀態。
    • 參數

      • 間隔時間:每次報告的間隔時間(秒);
      • 次數:顯示報告的次數。
    • 舉例
      [root@study ~]# sar -u 3 5

    • 解釋

      • %user列顯示了用戶進程佔用CPU的時間百分比。
      • %nice列顯示了運行正常進程佔用CPU的時間百分比。
      • %system列顯示了系統進程佔用CPU的時間百分比。
      • %iowait列顯示了I/O等待所佔用CPU的時間百分比。
      • %steal列顯示了在內存相對進展的環境下pageini強制對不同的頁面進行的steal操作。
      • %idle列顯示了CPU處在空閒狀態的時間百分比。
        注意:
        1. Average列是對之上的所有信息進行統計,計算平均值。
        2. 若有多個CPU,可使用sar -P 0 3 5對第一個CPU進行查詢,第二個CPU即位sar -P 1 3 5。
iostat命令
  • 作用:用於監視系統輸入輸出設備和CPU的使用情況。它的特點是彙報磁盤活動統計情況,同時也會彙報出CPU使用情況。同vmstat一樣,iostat也有一個弱點,就是它不能對某個進程進行深入分析,僅對系統的整體情況進行分析。
  • 語法:iostat(選項)(參數)
    • 選項

      • -c:僅顯示CPU使用情況;
      • -d:僅顯示設備利用率;
      • -k:顯示狀態以千字節每秒爲單位,而不使用塊每秒;
      • -m:顯示狀態以兆字節每秒爲單位;
      • -p:僅顯示塊設備和所有被使用的其他分區的狀態;
      • -t:顯示每個報告產生時的時間;
      • -V:顯示版號並退出;
      • -x:顯示擴展狀態。
    • 參數

      • 間隔時間:每次報告的間隔時間(秒);
      • 次數:顯示報告的次數。
    • 舉例
      [root@study ~]# iostat -x /dev/sda1

    • 解釋

      • Device:監測設備名稱;
      • rrqm/s:每秒需要讀取需求的數量;
      • wrqm/s:每秒需要寫入需求的數量;
      • r/s:每秒實際讀取需求的數量;
      • w/s:每秒實際寫入需求的數量;
      • rsec/s:每秒讀取區段的數量;
      • wsec/s:每秒寫入區段的數量;
      • rkB/s:每秒實際讀取的大小,單位爲KB;
      • wkB/s:每秒實際寫入的大小,單位爲KB;
      • avgrq-sz:需求的平均大小區段;
      • avgqu-sz:需求的平均隊列長度;
      • await:等待I/O平均的時間(milliseconds);
      • svctm:I/O需求完成的平均時間;
      • %util:被I/O需求消耗的CPU百分比。

內存性能評估

free命令
  • 作用:顯示當前系統未使用的和已使用的內存數目,還可以顯示被內核使用的內存緩衝區。
  • 語法:free(選項)
    • 選項

      • -b:以Byte爲單位顯示內存使用情況;
      • -k:以KB爲單位顯示內存使用情況;
      • -m:以MB爲單位顯示內存使用情況;
      • -o:不顯示緩衝區調節列;
      • -s<間隔秒數>:持續觀察內存使用狀況;
      • -t:顯示內存總和列;
      • -V:顯示版本信息。
    • 舉例
      [root@study ~]# free -m

    • 解釋

      • 程序可使用內存=free+buffers+cached(即+ buffers/cache的值)
      • 程序已使用內存=user-buffres-cached
      • 物理內存可分配的內存值爲free,物理總內存爲total。
        注意:處於buffers和cached中的內存對於應用程序而言是可用的,對於內核而言是無法分配的,內核可分配的內存僅爲free的值。
    • 規律

      • (+ buffers/cache)/系統物理內存<20%:系統內存資源緊缺,需要增加系統內存;
      • 20%<(+ buffers/cache)/系統物理內存<70%:系統內存資源基本滿足應用需求,暫不影響性能;
      • (+ buffers/cache)/系統物理內存>70%:系統內存資源非常充足,不影響系統性能。
watch與free結合
  • 作用:watch命令以週期性的方式執行給定的指令,指令輸出以全屏方式顯示。
  • 語法:watch(選項)(參數)
    • 選項

      • -n:指定指令執行的間隔時間(秒);
      • -d:高亮顯示指令輸出信息不同之處;
      • -t:不顯示標題。
    • 參數

      • 指令:需要週期性執行的指令。
    • 舉例
      [root@study ~]# watch -n 3 -d free -m

sar命令
  • 作用:見上
  • 語法:見上
    • 舉例
      [root@study ~]# sar -r
    • 解釋
      • kbmemfree:表示空閒物理內存大小;
      • kbmemused:表示已使用的物理內存空間大小;
      • %memused:表示已使用的內存佔總內存大小的百分比;
      • kbbuffers:緩衝區緩存大小;
      • kbcached:緩存區緩存大小;
      • kbcommit:應用程序當前使用的內存大小;
      • %commit:應用程序當前使用的內存百分比。

磁盤I/O性能評估

sar -d命令
  • 作用:見上
  • 語法:見上
    • 舉例
      [root@study ~]# sar -d 2 3
    • 解釋
      • DEV:表示磁盤設備名稱;
      • tps:表示每秒到屋裏磁盤的傳送數;
      • rd_sec/s:表示每秒從設備讀取的扇區數(1扇區=512字節);
      • wr_sec/s:表示每秒寫入的設備的扇區數;
      • avgrq-sz:表示平均每次設備I/O操作的數據大小(以扇區爲單位);
      • avgqu-sz:表示平均I/O隊列長度;
      • await:表示平均每次設備I/O操作的等待時間(以毫秒爲單位);
      • svctm:表示平均每次設備I/O操作的服務時間(以毫秒爲單位);
      • %util:表示一秒鐘有百分之幾的是用於I/O操作。
iostat -x命令:見上
vmstat -d:見上

網絡性能評估

ping命令:略
netstat -i命令
  • 作用:顯示網絡接口信息。
  • 語法:略
    • 舉例
      [root@study ~]# netstat -i
    • 解釋
      • Iface:表示網絡設備的接口名稱;
      • MTU:表示最大傳輸單元,單位爲字節;
      • Met:度量值,供某些操作系統用,用於計算一條路由的成本;
      • RX-OK/TX-OK:表示已經準確無誤地接受/發送了多少數據包;
      • RX-ERR/TX-ERR:表示接受/發送數據包產生了多少錯誤;
      • RX-DRP/TX-DRP:表示接受/發送數據包時丟棄了多少數據包;
      • RX-OVR/TX-OVR:表示由於誤差而遺失了多少數據包;
      • Flg:表示接口標記,其具體含義如下——
        • L:表示該接口是個迴環設備;
        • B:表示設置了廣播地址;
        • M:表示接受所有數據包;
        • R:表示接口正在運行;
        • U:表示接口處於活動狀態;
        • O:表示在該接口上禁用arp;
        • P:表示一個點到點的連接。
netstat -r命令
  • 作用:檢查系統的路由表信息。
  • 語法:略
    • 舉例
    • 解釋
sar -n命令
  • 作用:見上
  • 語法:sar -n [類型]
    • 類型

      1. DEV:顯示網絡接口信息;
      2. EDEV:顯示關於網絡錯誤的統計數據;
      3. SOCK:顯示套接字信息;
      4. FULL:顯示所有類型。
    • 舉例
      [root@study ~]# sar -n DEV 2 3

    • 解釋

      • IFACE:表示網絡接口設備;
      • rxpck/s:表示每秒鐘接受的數據包大小;
      • txpck/s:表示每秒鐘發送的數據包大小;
      • rxkB/s:表示每秒鐘接受的字節數;
      • txkB/s:表示每秒鐘發送的字節數;
      • rxcmp/s:表示每秒鐘接受的壓縮數據包;
      • txcmp/s:表示每秒鐘發送的壓縮數據包;
      • rxmcst/s:表示每秒鐘接受的多播數據包。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章