1. 程式人生 > >linux系統管理工具sar(一)

linux系統管理工具sar(一)

sed 監控內存 用戶態 打開 沒有 3.6 block 1.5 3.4

linux系統管理工具sar

  1. 監控網卡流量
    #sar -n  DEV 1 1  (1秒內取1次)
    Linux 3.10.0-123.9.3.el7.x86_64 (iZ25wvw5wozZ)     01/22/2018  _x86_64_    (16 CPU)
    03:08:01 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
    03:08:02 PM      cni0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
    03:08:02 PM      eth0    911.00    740.00    209.74    244.55      0.00      0.00      0.00
    03:08:02 PM      eth1      0.00     64.00      0.00     67.41      0.00      0.00      0.00
    03:08:02 PM        lo     13.00     13.00      0.69      0.69      0.00      0.00      0.00
    03:08:02 PM flannel.1      0.00      0.00      0.00      0.00      0.00      0.00      0.00
    03:08:02 PM   docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
    Average:        IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
    Average:         cni0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
    Average:         eth0    911.00    740.00    209.74    244.55      0.00      0.00      0.00
    Average:         eth1      0.00     64.00      0.00     67.41      0.00      0.00      0.00
    Average:           lo     13.00     13.00      0.69      0.69      0.00      0.00      0.00
    Average:    flannel.1      0.00      0.00      0.00      0.00      0.00      0.00      0.00
    Average:      docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
    註:sar -n DEV 查看當前服務器的網絡流量信息  rxpck/s: 每秒收包的數量  txpck/s: 每秒發包的數量

    說明:
    (1)rxpck/s:每秒鐘收到數據包的數量.
    (2)txpck/s:每秒鐘發送數據包的數量.
    (3)rxkB/s:每秒鐘接收的字節(KB).
    (4)txkB/s:每秒鐘發送的字節(KB).
    (5)rxcmp/s:每秒收到的壓縮包的數量
    (6)txcmp/s:每秒發出的壓縮包的數量
    (7)rxmcst/s:每秒收到的廣播包的數量
    網絡設備的數據來源於/proc/net/dev.
    我這裏嘗試用ssh的壓縮功能進行傳輸,結果也沒看到壓縮包的數量有變化.

  2. 監控cpu資源
    #sar 1  (將所有CPU合並到一起進行監控)
    03:08:57 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
    03:08:58 PM     all      5.47      0.00      5.97      2.58      0.06     85.91
    03:08:59 PM     all      5.85      0.00      6.29      2.33      0.06     85.46
    03:09:00 PM     all      4.76      0.00      6.27      1.57      0.06     87.34
    03:09:01 PM     all      6.67      0.00      6.17      1.83      0.13     85.21
    03:09:02 PM     all      4.97      0.00      6.35      1.32      0.06     87.30
    03:09:03 PM     all      4.47      0.00      6.30      0.00      0.06     89.17
    03:09:04 PM     all      3.95      0.00      5.71      0.00      0.06     90.27
    。。。。。
    03:09:07 PM     all      3.87      0.00      6.08      0.00      0.55     89.50
    Average:        all      4.92      0.00      6.04      0.97      0.07     88.01
    #sar -P  ALL 1 1 (可以顯示每個CPU現在的負載)
    03:10:08 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
    03:10:09 PM     all      6.21      0.00      6.65      3.32      0.13     83.69
    03:10:09 PM       0     30.21      0.00     10.42     52.08      0.00      7.29
    03:10:09 PM       1      8.00      0.00      1.00      2.00      0.00     89.00
    03:10:09 PM       2      4.00      0.00      1.00      0.00      0.00     95.00
    03:10:09 PM       3      0.00      0.00      0.00      0.00      0.00    100.00
    03:10:09 PM       4      1.98      0.00      0.99      0.00      0.99     96.04
    03:10:09 PM       5      3.00      0.00      1.00      0.00      0.00     96.00
    03:10:09 PM       6      2.00      0.00      1.00      0.00      0.00     97.00
    03:10:09 PM       7     14.14      0.00     85.86      0.00      0.00      0.00
    Average:        CPU     %user     %nice   %system   %iowait    %steal     %idle
    Average:        all      6.21      0.00      6.65      3.32      0.13     83.69
    Average:          0     30.21      0.00     10.42     52.08      0.00      7.29
    Average:          1      8.00      0.00      1.00      2.00      0.00     89.00
    Average:          2      4.00      0.00      1.00      0.00      0.00     95.00
    Average:          3      0.00      0.00      0.00      0.00      0.00    100.00
    Average:          4      1.98      0.00      0.99      0.00      0.99     96.04
    Average:          5      3.00      0.00      1.00      0.00      0.00     96.00
    Average:          6      2.00      0.00      1.00      0.00      0.00     97.00
    Average:          7     14.14      0.00     85.86      0.00      0.00      0.00

    說明:%user,%system,%iowait,%idle分別表示用戶態進程占用CPU百分比,系統態進程占用CPU百分比,CPU等待IO百分比,CPU空閑百分比。
    重點說%nice和%steal,這是vmstat所沒有的.
    %nice:如果一個程序在運行時用nice調整它的優先級,且優先級在1-19之間,並且是用戶態的進程,這時%nice才會體現出來,%steal:一般在運行虛擬機的宿主機才用到,比如xen,QEMU,Bochs等等。

  3. 監控內存資源
    #sar -r 1
    03:20:55 PM kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
    03:20:56 PM   1754084  14239212     89.03    204100   2997052  25525216    159.60  12852348    805468         0
    03:20:57 PM   1753824  14239472     89.03    204100   2997456  25525216    159.60  12852572    805740         0
    03:20:58 PM   1753668  14239628     89.03    204100   2997704  25525216    159.60  12852640    805904         0
    03:20:59 PM   1753200  14240096     89.04    204108   2997936  25525216    159.60  12852728    806048         0
    03:21:00 PM   1752548  14240748     89.04    204108   2998116  25525176    159.60  12852812    806244         0
    03:21:01 PM   1751756  14241540     89.05    204108   2998868  25525176    159.60  12853020    806808         0
    。。。。。
    03:21:01 PM   1749996  14243300     89.06    204112   3001284  25526988    159.61  12854832    807716         0
    Average:      1752725  14240571     89.04    204105   2998345  25525458    159.60  12852993    806275         0

    說明:
    (1)kbmemfree:這個值和free命令中的free值基本一致,所以它不包括buffer和cache的空間。
    (2)kbmemused:這個值和free命令中的used值基本一致,所以它包括buffer和cache的空間。
    (3)%memused:這個值是kbmemused和內存總量(不包括swap)的一個百分比。
    (4)kbbuffers和kbcached:這兩個值就是free命令中的buffer和cache。
    (5)kbcommit:保證當前系統所需要的內存,即為了確保不溢出而需要的內存(RAM+swap)。
    (6)%commit:這個值是kbcommit與內存總量(包括swap)的一個百分比。
    對比:

    #free -h
                     total        used        free      shared  buff/cache   available
    Mem:            15G         10G        1.6G        777M        3.4G        3.9G
    Swap:            0B          0B          0B
  4. 監控內存分頁
    #sar -B 1
    03:33:33 PM  pgpgin/s pgpgout/s   fault/s  majflt/s  pgfree/s pgscank/s pgscand/s pgsteal/s    %vmeff
    03:33:34 PM      0.00  14504.00   3192.00      0.00   8984.00      0.00      0.00      0.00      0.00
    03:33:35 PM      0.00      0.00    866.00      0.00   3294.00      0.00      0.00      0.00      0.00
    03:33:36 PM      0.00    256.00    845.00      0.00   3711.00      0.00      0.00      0.00      0.00
    03:33:37 PM      0.00  19964.00   4765.00      0.00   3803.00      0.00      0.00      0.00      0.00
    03:33:38 PM      0.00  10620.00   3029.00      0.00   8643.00      0.00      0.00      0.00      0.00
    03:33:39 PM      0.00  26956.00   6252.00      0.00   4644.00      0.00      0.00      0.00      0.00
    03:33:40 PM      0.00  26208.00   5834.00      0.00  12574.00      0.00      0.00      0.00      0.00
    。。。。
    03:33:40 PM      0.00  20524.44   4968.89      0.00  15342.22      0.00      0.00      0.00      0.00
    Average:         0.00  14462.28   3626.71      0.00   7054.63      0.00      0.00      0.00      0.00

    說明:
    (1)pgpgin/s:表示每秒從磁盤或SWAP置換到內存的字節數(KB)
    (2)pgpgout/s:表示每秒從內存置換到磁盤或SWAP的字節數(KB)
    (3)fault/s:每秒鐘系統產生的缺頁數,即主缺頁與次缺頁之和(major + minor)
    (4)majflt/s:每秒鐘產生的主缺頁數
    (5)pgfree/s:每秒被放入空閑隊列中的頁個數
    (6)pgscank/s:每秒被kswapd掃描的頁個數
    (7)pgscand/s:每秒直接被掃描的頁個數
    (8)pgsteal/s:每秒鐘從cache中被清除來滿足內存需要的頁個數
    (9)%vmeff:每秒清除的頁(pgsteal)占總掃描頁(pgscank+pgscand)的百分比。

  5. 關於I節點,文件和其它內核表的監控
    #sar -v 1
    03:41:43 PM dentunusd   file-nr  inode-nr    pty-nr
    03:41:44 PM     38321      3296     22449         2
    03:41:45 PM     38327      3296     22455         2
    03:41:46 PM     38329      3296     22446         2
    03:41:47 PM     38329      3296     22448         2
    03:41:48 PM     38331      3296     22447         2
    03:41:49 PM     38331      3296     22447         2
    03:41:50 PM     38331      3296     22447         2
    03:41:51 PM     38336      3296     22448         2
    。。。。
    03:41:51 PM     38336      3296     22449         2
    Average:        38330      3296     22448         2

    說明:
    (1)dentunusd:在緩沖目錄條目中沒有使用的條目數量。
    dentunusd數據的數據來源是/proc/sys/fs/dentry-state的第二項數據.
    要弄明白它的意義,我們首先要弄明白dcache(目錄高速緩存),因為系統中所有的inode都是通過文件名來訪問的,而為了解決文件名到inode轉換的時間,就引入了dcache.
    它是VFS層為當前活動和最近使用的名字維護的一個cache.
    dcache中所有處於unused狀態和negative(消極)狀態的dentry對象都通鏈入到dentry_unused鏈表中,這種dentry對象在回收內存時可能會被釋放.
    如果我們在系統中運行ls -ltR /etc/會看到dentunusd的數量會多起來.
    而通過mount -o remount /dev/sda1會看到dentunusd會迅速會回收.
    (2)file-nr:被系統使用的文件句柄數量。
    file-nr的的數據來源是/proc/sys/fs/file-nr文件的第一項數據.
    實際上file-nr不是一個準確的值,file-nr每次增加的步長是64(64位系統),例如現在file-nr為2528,實際上可能只打開了2527個文件,而此時你打開兩個文件後,它就會變成2592,而不是2530.
    (3)inode-nr:使用的索引節點數量。
    inode-nr的數據來源是/proc/sys/fs/inode-nr文件的第一項數據減去第二項數據的值.
    inode-nr文件的第一項數據是已經分配過的INODE節點.第二項數據是空閑的INODE節點.
    例如,inode-nr文件裏的值為:13720 7987
    我們新建一個文件file1,此時inode-nr第一項數據會加1,就是13721,表示系統裏建立了這麽多的inode.
    我們再刪除掉file1,此時就會變成13720.
    空閑的INODE節點表示我們已經裏這麽多的INODE節點曾經有過被利用,但沒有被釋放.
    所以INODE節點總數減去空閑的INODE,就是正在被用的INODE.
    最後通過使用mount -o remount /dev/sda1命令,空閑節點會被刷新,所以inode-nr的值會有所變化.
    (4)pty-nr:使用的pty數量。
    pty-nr的數據來源是/proc/sys/kernel/pty/nr
    表示登陸過的終端總數,如果我們登錄過10回,退出了3回,最後的結果還是10回.

  6. 監控中斷
    #sar -I ALL  1
    03:47:59 PM      INTR    intr/s
    03:48:00 PM         0      0.00
    03:48:00 PM         1      0.00
    03:48:00 PM         2      0.00
    03:48:00 PM         3      0.00
    03:48:00 PM         4      0.00
    03:48:00 PM         5      0.00
    03:48:00 PM         6      0.00
    03:48:00 PM         7      0.00

    說明:
    (1)INTR表示中斷號,中斷號代表的意義可以到/proc/interrupts查詢.
    (2)intr/s表示每秒的中斷次數.

  7. 平均負載和隊列的監控
    #sar -q 1
    04:08:37 PM   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
    04:08:38 PM         1      2274      2.24      2.55      2.68         0
    04:08:39 PM         3      2274      2.24      2.55      2.68         1
    04:08:40 PM         2      2274      2.24      2.55      2.68         0
    04:08:41 PM         2      2274      2.24      2.55      2.68         0
    04:08:42 PM         1      2274      2.14      2.53      2.67         0
    04:08:43 PM         2      2274      2.14      2.53      2.67         0
    。。。。
    04:08:44 PM         3      2274      2.14      2.53      2.67         0
    Average:            2      2274      2.20      2.54      2.68         0

    說明:
    (1)runq-sz:處於運行或就緒的進程數量
    (2)plist-sz:現在進程的總數(包括線程).
    (3)ldavg-1:最近一分鐘的負載.
    (4)ldavg-5:最近五分鐘的負載.
    (5)ldavg-15:最近十分鐘的負載.
    (6)平均負載和隊列的數據來源於/proc/loadavg

linux系統管理工具sar(一)