1. 程式人生 > 實用技巧 >102)linux效能分析命令

102)linux效能分析命令

1- top

1.1- 輸出

top能夠實時顯示系統中各個程序的資源佔用狀況.

top - 00:24:36 up 17 min,  2 users,  load average: 0.00, 0.01, 0.04
Tasks: 114 total,   3 running, 111 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.2 sy,  0.0 ni, 99.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  7990132 total,  7464132 free,   271568 used,   254432 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.  7473312 avail Mem

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
     1 root      20   0  125360   3808   2588 S   0.0  0.0   0:01.95 systemd
     2 root      20   0       0      0      0 S   0.0  0.0   0:00.01 kthreadd
     4 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0+
     6 root      20   0       0      0      0 S   0.0  0.0   0:00.04 ksoftirqd+
     7 root      rt   0       0      0      0 S   0.0  0.0   0:00.06 migration+
     8 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcu_bh
     9 root      20   0       0      0      0 R   0.0  0.0   0:00.44 rcu_sched
    10 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 lru-add-d+
    11 root      rt   0       0      0      0 S   0.0  0.0   0:00.00 watchdog/0
    12 root      rt   0       0      0      0 S   0.0  0.0   0:00.00 watchdog/1
    13 root      rt   0       0      0      0 S   0.0  0.0   0:00.02 migration+
    14 root      20   0       0      0      0 S   0.0  0.0   0:00.04 ksoftirqd+
    15 root      20   0       0      0      0 S   0.0  0.0   0:00.04 kworker/1+
    16 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/1+
    18 root      20   0       0      0      0 S   0.0  0.0   0:00.00 kdevtmpfs
    19 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 netns
    20 root      20   0       0      0      0 S   0.0  0.0   0:00.00 khungtaskd
    21 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 writeback

第一行,任務佇列資訊,同 uptime 命令的執行結果

系統時間:00:24:36

執行時間:up 1:57 min,

當前登入使用者: 3 user

負載均衡(uptime) load average: 0.00, 0.00, 0.00

average後面的三個數分別是1分鐘、5分鐘、15分鐘的負載情況。

load average資料是每隔5秒鐘檢查一次活躍的程序數,然後按特定演算法計算出的數值。如果這個數除以邏輯CPU的數量,結果高於5的時候就表明系統在超負荷運轉了

第二行,Tasks — 任務(程序)

總程序:150 total, 執行:1 running, 休眠:149 sleeping, 停止: 0 stopped, 殭屍程序: 0 zombie

第三行,cpu狀態資訊

0.0%us【user space】— 使用者空間佔用CPU的百分比。

0.3%sy【sysctl】— 核心空間佔用CPU的百分比。

0.0%ni【】— 改變過優先順序的程序佔用CPU的百分比

99.7%id【idolt】— 空閒CPU百分比

0.0%wa【wait】— IO等待佔用CPU的百分比

0.0%hi【Hardware IRQ】— 硬中斷佔用CPU的百分比

0.0%si【Software Interrupts】— 軟中斷佔用CPU的百分比

第四行,記憶體狀態

1003020k total, 234464k used, 777824k free, 24084k buffers【快取的記憶體量】

第五行,swap交換分割槽資訊

2031612k total, 536k used, 2031076k free, 505864k cached【緩衝的交換區總量】

記憶體計算方式:

備註:

可用記憶體=free + buffer + cached

對於記憶體監控,在top裡我們要時刻監控第五行swap交換分割槽的used,如果這個數值在不斷的變化,說明核心在不斷進行記憶體和swap的資料交換,這是真正的記憶體不夠用了。

第四行中使用中的記憶體總量(used)指的是現在系統核心控制的記憶體數,

第四行中空閒記憶體總量(free)是核心還未納入其管控範圍的數量。

納入核心管理的記憶體不見得都在使用中,還包括過去使用過的現在可以被重複利用的記憶體,核心並不把這些可被重新使用的記憶體交還到free中去,因此在linux上free記憶體會越來越少,但不用為此擔心。

第七行以下:各程序(任務)的狀態監控

PID — 程序id
USER — 程序所有者
PR — 程序優先順序
NI — nice值。負值表示高優先順序,正值表示低優先順序
VIRT — 程序使用的虛擬記憶體總量,單位kb。VIRT=SWAP+RES
RES — 程序使用的、未被換出的實體記憶體大小,單位kb。RES=CODE+DATA
SHR — 共享記憶體大小,單位kb
S —程序狀態。D=不可中斷的睡眠狀態 R=執行 S=睡眠 T=跟蹤/停止 Z=殭屍程序
%CPU — 上次更新到現在的CPU時間佔用百分比
%MEM — 程序使用的實體記憶體百分比
TIME+ — 程序使用的CPU時間總計,單位1/100秒
COMMAND — 程序名稱(命令名/命令列)

詳解

**VIRT:virtual memory usage 虛擬記憶體

**1、程序“需要的”虛擬記憶體大小,包括程序使用的庫、程式碼、資料等
2、假如程序申請100m的記憶體,但實際只使用了10m,那麼它會增長100m,而不是實際的使用量

RES:resident memory usage 常駐記憶體
1、程序當前使用的記憶體大小,但不包括swap out
2、包含其他程序的共享
3、如果申請100m的記憶體,實際使用10m,它只增長10m,與VIRT相反
4、關於庫佔用記憶體的情況,它只統計載入的庫檔案所佔記憶體大小

SHR:shared memory 共享記憶體
1、除了自身程序的共享記憶體,也包括其他程序的共享記憶體
2、雖然程序只使用了幾個共享庫的函式,但它包含了整個共享庫的大小
3、計算某個程序所佔的實體記憶體大小公式:RES – SHR
4、swap out後,它將會降下來

DATA
1、資料佔用的記憶體。如果top沒有顯示,按f鍵可以顯示出來。
2、真正的該程式要求的資料空間,是真正在執行中要使用的。

top 執行中可以通過 top 的內部命令對程序的顯示方式進行控制。內部命令如下:
s – 改變畫面更新頻率
l – 關閉或開啟第一部分第一行 top 資訊的表示
t – 關閉或開啟第一部分第二行 Tasks 和第三行 Cpus 資訊的表示
m – 關閉或開啟第一部分第四行 Mem 和 第五行 Swap 資訊的表示
N – 以 PID 的大小的順序排列表示程序列表
P – 以 CPU 佔用率大小的順序排列程序列表
M – 以記憶體佔用率大小的順序排列程序列表
h – 顯示幫助
n – 設定在程序列表所顯示程序的數量
q – 退出 top
s – 改變畫面更新週期

1.2- top使用方法

使用格式:

top [-] [d] [p] [q] [c] [C] [S] [s] [n]

引數說明:

d:指定每兩次螢幕資訊重新整理之間的時間間隔。當然使用者可以使用s互動命令來改變之。

p:通過指定監控程序ID來僅僅監控某個程序的狀態。

q:該選項將使top沒有任何延遲的進行重新整理。如果呼叫程式有超級使用者許可權,那麼top將以儘可能高的優先順序執行。

S:指定累計模式。

s:使top命令在安全模式中執行。這將去除互動命令所帶來的潛在危險。

i:使top不顯示任何閒置或者僵死程序。

c:顯示整個命令列而不只是顯示命令名

2- sar

安裝:

apt install sysstat -y

yum install sysstat -y

語法格式:

sar [ 選項 ] [ <時間間隔> [ <次數> ] ]

[root@openshift ~]# sar --help
Usage: sar [ options ] [ <interval> [ <count> ] ]
Options are:
[ -A ] [ -B ] [ -b ] [ -C ] [ -d ] [ -F [ MOUNT ] ] [ -H ] [ -h ] [ -p ] [ -q ] [ -R ]
[ -r ] [ -S ] [ -t ] [ -u [ ALL ] ] [ -V ] [ -v ] [ -W ] [ -w ] [ -y ]
[ -I { <int> [,...] | SUM | ALL | XALL } ] [ -P { <cpu> [,...] | ALL } ]
[ -m { <keyword> [,...] | ALL } ] [ -n { <keyword> [,...] | ALL } ]
[ -j { ID | LABEL | PATH | UUID | ... } ]
[ -f [ <filename> ] | -o [ <filename> ] | -[0-9]+ ]
[ -i <interval> ] [ -s [ <hh:mm:ss> ] ] [ -e [ <hh:mm:ss> ] ]
[root@openshift ~]#

-A:所有報告的總和

-b:顯示I/O和傳遞速率的統計資訊

-B:顯示換頁狀態

-d:輸出每一塊磁碟的使用資訊

-e:設定顯示報告的結束時間

-f:從制定的檔案讀取報告

-i:設定狀態資訊重新整理的間隔時間

-P:報告每個CPU的狀態

-R:顯示記憶體狀態

–u:輸出cpu使用情況和統計資訊

–v:顯示索引節點、檔案和其他核心表的狀態

-w:顯示交換分割槽的狀態

-x:顯示給定程序的裝

-r:報告記憶體利用率的統計資訊

2.1- CPU利用率

sar -p (檢視全天)

sar -u 1 10 (1:每隔一秒,10:寫入10次)

[root@openshift ~]# sar -u 1 10
Linux 3.10.0-1062.el7.x86_64 (openshift)        10/12/2020      _x86_64_       (2 CPU)

12:36:48 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
12:36:49 AM     all      0.00      0.00      0.00      0.00      0.00    100.00
12:36:50 AM     all      0.00      0.00      0.00      0.00      0.00    100.00
12:36:51 AM     all      0.00      0.00      0.50      0.00      0.00     99.50
12:36:52 AM     all      0.00      0.00      0.00      0.00      0.00    100.00
12:36:53 AM     all      0.00      0.00      0.00      0.00      0.00    100.00
12:36:54 AM     all      0.00      0.00      0.50      0.00      0.00     99.50
12:36:55 AM     all      0.00      0.00      0.00      0.00      0.00    100.00
12:36:56 AM     all      0.00      0.00      0.00      0.00      0.00    100.00
12:36:57 AM     all      0.00      0.00      0.50      0.00      0.00     99.50
12:36:58 AM     all      0.00      0.00      0.00      0.00      0.00    100.00
Average:        all      0.00      0.00      0.15      0.00      0.00     99.85

輸出項 詳細說明
CPU all 表示統計資訊為所有 CPU 的平均值。
%user 顯示在使用者級別(application)執行使用 CPU 總時間的百分比。
%nice 顯示在使用者級別,用於nice操作,所佔用 CPU 總時間的百分比。
%system 在核心級別(kernel)執行所使用 CPU 總時間的百分比。
%iowait 顯示用於等待I/O操作佔用 CPU 總時間的百分比。
%steal 管理程式(hypervisor)為另一個虛擬程序提供服務而等待虛擬 CPU 的百分比。
%idle 顯示 CPU 空閒時間佔用 CPU 總時間的百分比。

2.2- 記憶體利用率

sar -r (檢視全天)

sar -r 1 10 (1:每隔一秒,10:寫入10次)

[root@openshift ~]# sar -r 1 10
Linux 3.10.0-1062.el7.x86_64 (openshift)        10/12/2020      _x86_64_       (2 CPU)

12:37:14 AM kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
12:37:15 AM   7281024    709108      8.87      2108    389952    667084      6.61    281332    223916         0
12:37:16 AM   7281024    709108      8.87      2108    389952    667084      6.61    281336    223916         0
12:37:17 AM   7281024    709108      8.87      2108    389952    667084      6.61    281344    223916         0
12:37:18 AM   7281024    709108      8.87      2108    389952    667084      6.61    281344    223916         0
12:37:19 AM   7281024    709108      8.87      2108    389952    667084      6.61    281344    223916         0
12:37:20 AM   7281024    709108      8.87      2108    389952    667084      6.61    281344    223916         0
12:37:21 AM   7281024    709108      8.87      2108    389952    667084      6.61    281344    223916         0
12:37:22 AM   7281024    709108      8.87      2108    389952    667084      6.61    281344    223916         0
12:37:23 AM   7281024    709108      8.87      2108    389952    667084      6.61    281344    223916         0
12:37:24 AM   7281024    709108      8.87      2108    389952    667084      6.61    281344    223916         0
Average:      7281024    709108      8.87      2108    389952    667084      6.61    281342    223916         0

輸出項 詳細說明
kbmemfree 這個值和free命令中的free值基本一致,所以它不包括buffer和cache的空間。
kbmemused 這個值和free命令中的used值基本一致,所以它包括buffer和cache的空間。
%memused 這個值是kbmemused和記憶體總量(不包括swap)的一個百分比。
kbbuffers和kbcached 這兩個值就是free命令中的buffer和cache。
kbcommit 保證當前系統所需要的記憶體,即為了確保不溢位而需要的記憶體(RAM+swap)。
%commit 這個值是kbcommit與記憶體總量(包括swap)的一個百分比。

2.3- 磁碟I/O

sar -d (檢視全天)

sar -d 1 2 (1:每隔一秒,2:寫入2次)

[root@openshift ~]# sar -d 1 2
Linux 3.10.0-1062.el7.x86_64 (openshift)        10/12/2020      _x86_64_       (2 CPU)

12:38:08 AM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
12:38:09 AM    dev8-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
12:38:09 AM  dev253-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
12:38:09 AM  dev253-1      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

12:38:09 AM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
12:38:10 AM    dev8-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
12:38:10 AM  dev253-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
12:38:10 AM  dev253-1      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

Average:          DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
Average:       dev8-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:     dev253-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:     dev253-1      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

DEV 磁碟裝置的名稱,如果不加-p,會顯示dev253-0類似的裝置名稱,因此加上-p顯示的名稱更直接

tps 每秒I/O的傳輸總數

rd_sec/s 每秒讀取的扇區的總數

wr_sec/s 每秒寫入的扇區的總數

avgrq-sz 平均每次次磁碟I/O操作的資料大小(扇區)

avgqu-sz 磁碟請求佇列的平均長度

await 從請求磁碟操作到系統完成處理,每次請求的平均消耗時間,包括請求佇列等待時間,單位是毫秒(1秒等於1000毫秒),等於尋道時間+佇列時間+服務時間

svctm I/O的服務處理時間,即不包括請求佇列中的時間

%util I/O請求佔用的CPU百分比,值越高,說明I/O越慢

2.4- 網路流量

sar -n DEV (檢視全天)

 -n { <關鍵詞> [,...] | ALL }
        關鍵詞可以是:
        DEV    網絡卡
        EDEV    網絡卡 (錯誤)
        NFS    NFS 客戶端
        NFSD    NFS 伺服器
        SOCK    Sockets (套接字)    (v4)
        IP    IP 流    (v4)
        EIP    IP 流    (v4) (錯誤)
        ICMP    ICMP 流    (v4)
        EICMP    ICMP 流    (v4) (錯誤)
        TCP    TCP 流    (v4)
        ETCP    TCP 流    (v4) (錯誤)
        UDP    UDP 流    (v4)
        SOCK6    Sockets (套接字)    (v6)
        IP6    IP 流    (v6)
        EIP6    IP 流    (v6) (錯誤)
        ICMP6    ICMP 流    (v6)
        EICMP6    ICMP 流    (v6) (錯誤)
        UDP6    UDP 流    (v6)

sar -n DEV 1 2 (1:每隔一秒,2:寫入2次)

[root@openshift ~]# sar -n DEV 1 2
Linux 3.10.0-1062.el7.x86_64 (openshift)        10/12/2020      _x86_64_       (2 CPU)

12:38:46 AM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
12:38:47 AM     ens37      2.00      1.00      0.12      0.09      0.00      0.00      0.00
12:38:47 AM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
12:38:47 AM     ens33      0.00      0.00      0.00      0.00      0.00      0.00      0.00
12:38:47 AM   docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.00

12:38:47 AM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
12:38:48 AM     ens37      1.98      0.99      0.12      0.20      0.00      0.00      0.00
12:38:48 AM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
12:38:48 AM     ens33      0.00      0.00      0.00      0.00      0.00      0.00      0.00
12:38:48 AM   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:        ens37      1.99      1.00      0.12      0.14      0.00      0.00      0.00
Average:           lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:        ens33      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
[root@openshift ~]#

輸出項 詳細說明
IFACE 就是網路裝置的名稱。
rxpck/s 每秒鐘接收到的包數目。
txpck/s 每秒鐘傳送出去的包數目。
rxkB/s 每秒鐘接收到的位元組數。
txkB/s 每秒鐘傳送出去的位元組數。
rxcmp/s 每秒鐘接收到的壓縮包數目。
txcmp/s 每秒鐘傳送出去的壓縮包數目。
rxmcst/s 每秒鐘接收到的多播包的包數目。

2.5- 平均負載

sar -q

sar -q 1 3

[root@openshift ~]# sar -q 1 3
Linux 3.10.0-1062.el7.x86_64 (openshift)        10/12/2020      _x86_64_       (2 CPU)

12:39:16 AM   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
12:39:17 AM         0       147      0.01      0.04      0.05         0
12:39:18 AM         0       147      0.01      0.04      0.05         0
12:39:19 AM         0       147      0.01      0.04      0.05         0
Average:            0       147      0.01      0.04      0.05         0
[root@openshift ~]#

runq-sz 執行佇列的長度(等待執行的程序數,每核的CP不能超過3個)

plist-sz 程序列表中的程序(processes)和執行緒數(threads)的數量

ldavg-1 最後1分鐘的CPU平均負載,即將多核CPU過去一分鐘的負載相加再除以核心數得出的平均值,5分鐘和15分鐘以此類推

ldavg-5 最後5分鐘的CPU平均負載

ldavg-15 最後15分鐘的CPU平均負載

blocked

2.6- 系統swap分割槽統計情況

sar -W

sar -W 1 3

[root@openshift ~]# sar -q 1 3
Linux 3.10.0-1062.el7.x86_64 (openshift)        10/12/2020      _x86_64_       (2 CPU)

12:39:16 AM   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
12:39:17 AM         0       147      0.01      0.04      0.05         0
12:39:18 AM         0       147      0.01      0.04      0.05         0
12:39:19 AM         0       147      0.01      0.04      0.05         0
Average:            0       147      0.01      0.04      0.05         0
[root@openshift ~]# sar -W 1 3
Linux 3.10.0-1062.el7.x86_64 (openshift)        10/12/2020      _x86_64_       (2 CPU)

12:39:41 AM  pswpin/s pswpout/s
12:39:42 AM      0.00      0.00
12:39:43 AM      0.00      0.00
12:39:44 AM      0.00      0.00
Average:         0.00      0.00

pswpin/s 每秒從交換分割槽到系統的交換頁面(swap page)數量

pswpott/s 每秒從系統交換到swap的交換頁面(swap page)的數量

2.7- IO和傳遞速率

sar -b

sar -b 1 3

[root@openshift ~]# sar -b 1 3
Linux 3.10.0-1062.el7.x86_64 (openshift)        10/12/2020      _x86_64_       (2 CPU)

12:40:52 AM       tps      rtps      wtps   bread/s   bwrtn/s
12:40:53 AM      0.99      0.00      0.99      0.00      9.90
12:40:54 AM      0.00      0.00      0.00      0.00      0.00
12:40:55 AM      7.00      0.00      7.00      0.00    115.00
Average:         2.65      0.00      2.65      0.00     41.39

tps 磁碟每秒鐘的IO總數,等於iostat中的tps

rtps 每秒鐘從磁碟讀取的IO總數

wtps 每秒鐘從寫入到磁碟的IO總數

bread/s 每秒鐘從磁碟讀取的塊總數

bwrtn/s 每秒鐘此寫入到磁碟的塊總數

2.8- 網路裝置通訊失敗資訊

sar -n EDVE

sar -n EDEV 1 1

[root@openshift ~]# sar -n EDEV 1 1
Linux 3.10.0-1062.el7.x86_64 (openshift)        10/12/2020      _x86_64_       (2 CPU)

12:41:22 AM     IFACE   rxerr/s   txerr/s    coll/s  rxdrop/s  txdrop/s  txcarr/s  rxfram/s  rxfifo/s  txfifo/s
12:41:23 AM     ens37      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
12:41:23 AM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
12:41:23 AM     ens33      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
12:41:23 AM   docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

Average:        IFACE   rxerr/s   txerr/s    coll/s  rxdrop/s  txdrop/s  txcarr/s  rxfram/s  rxfifo/s  txfifo/s
Average:        ens37      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:           lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:        ens33      0.00      0.00      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      0.00      0.00

IFACE 網絡卡名稱

rxerr/s 每秒鐘接收到的損壞的資料包

txerr/s 每秒鐘傳送的資料包錯誤數

coll/s 當傳送資料包時候,每秒鐘發生的衝撞(collisions)數,這個是在半雙工模式下才有

rxdrop/s 當由於緩衝區滿的時候,網絡卡裝置接收端每秒鐘丟掉的網路包的數目

txdrop/s 當由於緩衝區滿的時候,網路裝置傳送端每秒鐘丟掉的網路包的數目

txcarr/s 當傳送資料包的時候,每秒鐘載波錯誤發生的次數

rxfram/s 在接收資料包的時候,每秒鐘發生的幀對其錯誤的次數

rxfifo/s 在接收資料包的時候,每秒鐘緩衝區溢位的錯誤發生的次數

txfifo/s 在發生資料包 的時候,每秒鐘緩衝區溢位的錯誤發生的次數

2.9- socket連線資訊

sar -n SOCK

sar -n SOCK 1 1

[root@openshift ~]# sar -n SOCK 1 1
Linux 3.10.0-1062.el7.x86_64 (openshift)        10/12/2020      _x86_64_       (2 CPU)

12:41:58 AM    totsck    tcpsck    udpsck    rawsck   ip-frag    tcp-tw
12:41:59 AM       579         4         2         0         0         0
Average:          579         4         2         0         0         0

totsck 當前被使用的socket總數

tcpsck 當前正在被使用的TCP的socket總數

udpsck 當前正在被使用的UDP的socket總數

rawsck 當前正在被使用於RAW的skcket總數

if-frag 當前的IP分片的數目

tcp-tw TCP套接字中處於TIME-WAIT狀態的連線數量

2.10- TCP連線的統計

sar -n TCP

sar -n TCP 1 1

[root@openshift ~]# sar -n TCP 1 1
Linux 3.10.0-1062.el7.x86_64 (openshift)        10/12/2020      _x86_64_       (2 CPU)

12:44:20 AM  active/s passive/s    iseg/s    oseg/s
12:44:21 AM      0.00      0.00      1.00      1.00
Average:         0.00      0.00      1.00      1.00

active/s 新的主動連線

passive/s 新的被動連線

iseg/s 接受的段

oseg/s 輸出的段

2.11- 其他

預設監控: sar 1 1 // CPU和IOWAIT統計狀態

(1) sar -b 1 1 // IO傳送速率

(2) sar -B 1 1 // 頁交換速率

(3) sar -c 1 1 // 程序建立的速率

(4) sar -d 1 1 // 塊裝置的活躍資訊

(5) sar -n DEV 1 1 // 網路裝置的狀態資訊

(6) sar -n SOCK 1 1 // SOCK的使用情況

(7) sar -n ALL 1 1 // 所有的網路狀態資訊

(8) sar -P ALL 1 1 // 每顆CPU的使用狀態資訊和IOWAIT統計狀態

(9) sar -q 1 1 // 佇列的長度(等待執行的程序數)和負載的狀態

(10) sar -r 1 1 // 記憶體和swap空間使用情況

(11) sar -R 1 1 // 記憶體的統計資訊(記憶體頁的分配和釋放、系統每秒作為BUFFER使用記憶體頁、每秒被cache到的記憶體頁)

(12) sar -u 1 1 // CPU的使用情況和IOWAIT資訊(同預設監控)

(13) sar -v 1 1 // inode, file and other kernel tablesd的狀態資訊

(14) sar -w 1 1 // 每秒上下文交換的數目

(15) sar -W 1 1 // SWAP交換的統計資訊(監控狀態同iostat 的si so)

(16) sar -x 2906 1 1 // 顯示指定程序(2906)的統計資訊,資訊包括:程序造成的錯誤、使用者級和系統級使用者CPU的佔用情況、執行在哪顆CPU上

(17) sar -y 1 1 // TTY裝置的活動狀態

(18) 將輸出到檔案(-o)和讀取記錄資訊(-f)

3- uptime

[root@openshift ~]# uptime
 00:44:39 up 37 min,  2 users,  load average: 0.00, 0.01, 0.05

#當前伺服器時間:  ``08``:``21``:``34
#當前伺服器執行時長 ``36` `min
#當前使用者數     ``2` `users
#當前的負載均衡   load average ``0.00``, ``0.00``, ``0.00``,分別取1min,5min,15min的均值

系統平均負載是指在特定時間間隔內執行佇列中的平均程序數。

如果每個CPU核心的當前活動程序數不大於3的話,那麼系統的效能是良好的。如果每個CPU核心的任務數大於5,那麼這臺機器的效能有嚴重問題。如果你的linux主機是1個雙核CPU的話,當Load Average 為6的時候說明機器已經被充分使用了。

4- w

w命令是一個在linux系統中用來顯示當前登入使用者及這些使用者正在做什麼的命令。它同時也能顯示系統執行時長,當前系統時間和系統平均負載情況。

命令語法格式:

w [OPTIONS] [USER]
21:41:07 up 12 days, 10:08,  2 users,  load average: 0.28, 0.20, 0.10
USER      TTY      FROM        LOGIN@   IDLE   JCPU   PCPU WHAT
root      pts/0    10.10.0.2   20:59    1.00s  0.02s  0.00s w
linux265  pts/1    10.10.0.8   21:41    7.00s  0.00s  0.00s bash

第一行:

  • 21:41:07- 當前系統時間.
  • up 12 days, 10:08 - 系統執行時長.
  • 2 users - 登入使用者數.
  • load average: 0.28, 0.20, 0.10 - 系統過去1,5,15分鐘的平均負載資訊。平均系統負載是對當前正在執行或正在等待磁碟I/O的作業數的度量。 它基本上告訴您系統在給定間隔內的繁忙程度。

第二行:

  • USER – 登入使用者名稱.
  • TTY – 登入使用者使用的終端名.
  • FROM –登入使用者來源的主機名或IP地址.
  • LOGIN@ – 使用者登入時長.
  • IDLE – 自使用者上一次與終端進行互動以來的空閒時間.
  • JCPU – 附加到tty的所有程序使用的時間.
  • PCPU –使用者當前程序所用的時間。 顯示在“ WHAT”欄位中的那個.
  • WHAT – 使用者當前的程序及選項/引數。

4.1- 檢視指定使用者

w root

22:08:55 up 12 days, 10:35,  2 users,  load average: 0.00, 0.06, 0.12
USER      TTY      FROM        LOGIN@   IDLE   JCPU   PCPU WHAT
linux265  pts/1    10.10.0.8   21:41    27:55   0.00s  0.00s bash

4.2- 命令選項

w -h //--no-header 選項告訴 w命令不要列印標題頭部資訊:

w -f //--from選項用來決定是否顯示FROM欄位。 預設情況下,此檔案是顯示還是隱藏取決於您使用的發行版

w -o //--old-style選項告訴w使用舊樣式輸出。 使用此選項時,當IDLEJCPUPCPU時間少於一分鐘時,該命令將列印空白。

w -s //--short選項告訴w使用短樣式輸出。 使用此選項時,不會列印LOGIN @JCPUPCPU欄位。

w -i //--ip-addr選項強制wFROM欄位中始終顯示IP地址而不是主機名。

5- dmesg

dmesg 可以檢視linux 核心資訊.

命令選項:

dmesg --help

Usage:
 dmesg [options]

Display or control the kernel ring buffer.

Options:
 -C, --clear                 clear the kernel ring buffer
 -c, --read-clear            read and clear all messages
 -D, --console-off           disable printing messages to console
 -E, --console-on            enable printing messages to console
 -F, --file <file>           use the file instead of the kernel log buffer
 -f, --facility <list>       restrict output to defined facilities
 -H, --human                 human readable output
 -k, --kernel                display kernel messages
 -L, --color[=<when>]        colorize messages (auto, always or never)
                               colors are enabled by default
 -l, --level <list>          restrict output to defined levels
 -n, --console-level <level> set level of messages printed to console
 -P, --nopager               do not pipe output into a pager
 -r, --raw                   print the raw message buffer
 -S, --syslog                force to use syslog(2) rather than /dev/kmsg
 -s, --buffer-size <size>    buffer size to query the kernel ring buffer
 -u, --userspace             display userspace messages
 -w, --follow                wait for new messages
 -x, --decode                decode facility and level to readable string
 -d, --show-delta            show time delta between printed messages
 -e, --reltime               show local time and time delta in readable format
 -T, --ctime                 show human readable timestamp (may be inaccurate!)
 -t, --notime                don't print messages timestamp
     --time-format <format>  show time stamp using format:
                               [delta|reltime|ctime|notime|iso]
Suspending/resume will make ctime and iso timestamps inaccurate.

 -h, --help     display this help and exit

5.1- 列出所有被檢測到的硬體

顯示所有被核心檢測到的硬碟裝置

dmesg |grep sda

在‘dmesg’命令後跟隨‘tail’命令(‘ dmesg | tail -fn20’)來輸出‘dmesg’命令的最後20行日誌,當你插入可移動裝置時它是非常有用的。

5.2- dmesg日誌

實時監控dmesg日誌輸出

tail -f /var/log/dmesg

5.2- 補充

dmesg -c 清除環形快取區,但/var/log/dmesg檔案中仍然有這些資訊。

dmesg | grep DMA 檢查硬碟是否執行在DMA模式,可以用在當發現硬碟效能低下時候檢查

dmesg | grep eth 當乙太網連線有問題時候可以使用他檢視,如果一切正常,那麼dmesg顯示每個網絡卡的硬體配置資訊。如果某項系統服務未能得到正確的配置,dmesg日誌很快就填滿錯誤訊息,這是診斷故障的良好起點

dmesg | tail 檢視尾部資訊

6- vmstat

用法:

vmstat [選項引數] [數字] [數字]

報告虛擬記憶體的統計資訊,關於程序、記憶體、I/O等系統整體執行狀態。

選項引數::

  1. -d:        顯示磁碟相關統計資訊。
  2. -a:       顯示活躍和非活躍記憶體
  3. -f:        顯示從系統啟動至今的fork數量。
  4. -p:       顯示指定磁碟分割槽統計資訊
  5. -s:       顯示記憶體相關統計資訊及多種系統活動數量。
  6. -m:       顯示slabinfo

6.1- 顯示虛擬記憶體使用情況

[root@openshift ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 2  0      0 7278636   2108 433012    0    0    69    18   47   93  0  0 99  0  0

欄位說明:

1. Procs(程序)

r: 執行佇列中程序數量,這個值也可以判斷是否需要增加CPU。(長期大於1)

b: 等待IO的程序數量。

2.Memory(記憶體)

swpd: 使用虛擬記憶體大小,如果swpd的值不為0,但是SI,SO的值長期為0,這種情況不會影響系統性能。

free: 空閒實體記憶體大小。

buff: 用作緩衝的記憶體大小。

cache: 用作快取的記憶體大小,如果cache的值大的時候,說明cache處的檔案數多,如果頻繁訪問到的檔案都能被cache處,那麼磁碟的讀IO bi會非常小。

3.Swap

si: 每秒從交換區寫到記憶體的大小,由磁碟調入記憶體。

so: 每秒寫入交換區的記憶體大小,由記憶體調入磁碟。

注意:

記憶體夠用的時候,這2個值都是0,如果這2個值長期大於0時,系統性能會受到影響,磁碟IO和CPU資源都會被消耗。有些朋友看到空閒記憶體(free)很少的或接近於0時,就認為記憶體不夠用了,不能光看這一點,還要結合si和so,如果free很少,但是si和so也很少(大多時候是0),那麼不用擔心,系統性能這時不會受到影響的。

4.IO(現在的Linux版本塊的大小為1kb)

bi: 每秒讀取的塊數

bo: 每秒寫入的塊數

注意:

隨機磁碟讀寫的時候,這2個值越大(如超出1024k),能看到CPU在IO等待的值也會越大。

5.system(系統)

in: 每秒中斷數,包括時鐘中斷。

cs: 每秒上下文切換數。

注意:

上面2個值越大,會看到由核心消耗的CPU時間會越大。

6.CPU(以百分比表示)

us: 使用者程序執行時間百分比(user time) us的值比較高時,說明使用者程序消耗的CPU時間多,但是如果長期超50%的使用,那麼我們就該考慮優化程式演算法或者進行加速。

sy: 核心系統程序執行時間百分比(system time) sy的值高時,說明系統核心消耗的CPU資源多,這並不是良性表現,我們應該檢查原因。

wa: IO等待時間百分比 wa的值高時,說明IO等待比較嚴重,這可能由於磁碟大量作隨機訪問造成,也有可能磁碟出現瓶頸(塊操作)。

id: 空閒時間百分比

6.2- 顯示磁碟的資訊

[root@openshift ~]# vmstat -d
disk- ------------reads------------ ------------writes----------- -----IO------
       total merged sectors      ms  total merged sectors      ms    cur    sec
sr0        0      0       0       0      0      0       0       0      0      0
sda     8948      3  671708    5171   1645    301  179448    1804      0      4
dm-0    6838      0  608076    4715   1930      0  175271    2335      0      4
dm-1      88      0    4408      19      0      0       0       0      0      0

第三列:merged:表示一次來自於合併的寫/讀請求,一般系統會把多個連線/鄰近的讀/寫請求合併到一起來操作

6.3- 顯示活躍記憶體與非活躍記憶體

[root@openshift ~]# vmstat -a
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free  inact active   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 7280472 223644 281768    0    0    59    16   43   87  0  0 99  0  0
[root@openshift ~]#

6.4- 檢視系統已經被fork多少次

[root@openshift ~]# vmstat -f
         2259 forks

6.5- 檢視特定磁碟裝置

[root@openshift ~]# vmstat -p /dev/sda1
sda1          reads   read sectors  writes    requested writes
                1918      51896         16       4177

這些資訊主要來自於/proc/diskstats。
reads:         來自於這個分割槽的讀的次數。
read sectors:     來自於這個分割槽的讀扇區的次數。
writes:        來自於這個分割槽的寫的次數。
requested writes:  來自於這個分割槽的寫請求次數

6.6- 顯示slabinfo(slab分配器)

[ less /proc/slabinfo ]

slab是一種記憶體管理演算法:

記憶體管理有兩個演算法:夥伴演算法(buddy system)和slab演算法。夥伴演算法是以頁為單位管理記憶體,slab演算法是以位元組為單位管理記憶體,是核心的小記憶體管理演算法。特點是基於物件進行管理。

slab分配演算法採用cache 儲存核心物件,把相同型別的物件歸為一類(如程序描述符就是一類),每當要申請這樣一個物件,slab分配器就從一個slab列表中分配一個這樣大小的單元出去,而當要釋放時,將其重新儲存在該列表中,而不是直接返回給夥伴系統,從而避免這些內碎片。

slab分配器並不丟棄已分配的物件,而是釋放並把它們儲存在記憶體中。當以後又要請求新的物件時,就可以從記憶體直接獲取而不用重複初始化。

[root@openshift ~]# vmstat -m
Cache                       Num  Total   Size  Pages
nf_conntrack_ffffffff8af12a40    102    102    320     51
ovl_inode                    96     96    680     48
kvm_vcpu                      0      0  14432      2
xfs_dqtrx                     0      0    528     62
xfs_dquot                     0      0    488     67
xfs_ili                    1872   1872    168     48
xfs_inode                  3094   3094    960     34
xfs_efd_item                117    117    416     39
xfs_log_ticket              132    132    184     44
bio-3                       153    153    320     51
kcopyd_job                    0      0   3312      9
dm_uevent                     0      0   2608     12
dm_rq_target_io               0      0    136     60
ip6_dst_cache               144    144    448     36
RAWv6                       312    312   1216     26
UDPLITEv6                     0      0   1216     26
UDPv6                        52     52   1216     26
tw_sock_TCPv6                 0      0    256     64
TCPv6                        30     30   2112     15
cfq_queue                     0      0    232     70
bsg_cmd                       0      0    312     52
mqueue_inode_cache           36     36    896     36
Cache                       Num  Total   Size  Pages
hugetlbfs_inode_cache        53     53    608     53
configfs_dir_cache            0      0     88     46
dquot                         0      0    256     64
kioctx                      112    112    576     56
userfaultfd_ctx_cache         0      0    192     42
pid_namespace                 0      0   2200     14
posix_timers_cache          132    132    248     66
UDP-Lite                      0      0   1088     30
flow_cache                    0      0    144     56
UDP                          60     60   1088     30
tw_sock_TCP                  64     64    256     64
TCP                          32     32   1984     16
dax_cache                    84     84    768     42
blkdev_queue                 39     39   2456     13
blkdev_ioc                   78     78    104     39
user_namespace              136    136    480     68
dmaengine-unmap-128          30     30   1088     30
sock_inode_cache           1071   1071    640     51
fsnotify_mark_connector     340    340     24    170
net_namespace                 6      6   5248      6
shmem_inode_cache          1824   1824    680     48
Acpi-State                  204    204     80     51
Cache                       Num  Total   Size  Pages
task_delay_info             324    324    112     36
taskstats                    98     98    328     49
proc_inode_cache           1666   1666    656     49
sigqueue                    102    102    160     51
bdev_cache                   78     78    832     39
kernfs_node_cache         48620  48620    120     68
mnt_cache                  1134   1134    384     42
inode_cache               22220  22220    592     55
dentry                   114156 114156    192     42
iint_cache                    0      0    128     64
avc_xperms_node             219    219     56     73
avc_node                  10472  10472     72     56
selinux_inode_security    26826  26826     40    102
buffer_head               17589  17589    104     39
vm_area_struct             4433   4551    216     37
mm_struct                    80     80   1600     20
files_cache                 255    255    640     51
signal_cache                308    308   1152     28
sighand_cache               269    300   2112     15
task_xstate                 351    351    832     39
task_struct                 286    301   4208      7
anon_vma                   2550   2550     80     51
Cache                       Num  Total   Size  Pages
shared_policy_node         2975   2975     48     85
numa_policy                 186    186    264     62
radix_tree_node            2856   2856    584     56
idr_layer_cache             255    255   2112     15
dma-kmalloc-8192              0      0   8192      4
dma-kmalloc-4096              0      0   4096      8
dma-kmalloc-2048              0      0   2048     16
dma-kmalloc-1024              0      0   1024     32
dma-kmalloc-512              64     64    512     64
dma-kmalloc-256               0      0    256     64
dma-kmalloc-128               0      0    128     64
dma-kmalloc-64                0      0     64     64
dma-kmalloc-32                0      0     32    128
dma-kmalloc-16                0      0     16    256
dma-kmalloc-8                 0      0      8    512
dma-kmalloc-192               0      0    192     42
dma-kmalloc-96                0      0     96     42
kmalloc-8192                 40     44   8192      4
kmalloc-4096                273    304   4096      8
kmalloc-2048               8378   8448   2048     16
kmalloc-1024               3441   3520   1024     32
kmalloc-512               11200  11200    512     64
Cache                       Num  Total   Size  Pages
kmalloc-256               12361  12736    256     64
kmalloc-192               14641  14910    192     42
kmalloc-128                2176   2176    128     64
kmalloc-96                 9030   9030     96     42
kmalloc-64                18910  19328     64     64
kmalloc-32                 7680   7680     32    128
kmalloc-16                13056  13056     16    256
kmalloc-8                  9728   9728      8    512
kmem_cache_node             192    192     64     64
kmem_cache                  192    192    256     64

6.7 實時顯示核心slab核心快取資訊

slabtop:

slabtop –delay=n, -d n 每隔n秒重新整理資訊
slabtop –sort=S, -s S 按照S排序,其中S為排序標準
–once, -o 顯示一次並退出

 Active / Total Objects (% used)    : 460418 / 463071 (99.4%)
 Active / Total Slabs (% used)      : 9555 / 9555 (100.0%)
 Active / Total Caches (% used)     : 69 / 98 (70.4%)
 Active / Total Size (% used)       : 105917.41K / 106927.14K (99.1%)
 Minimum / Average / Maximum Object : 0.01K / 0.23K / 14.09K

  OBJS ACTIVE  USE OBJ SIZE  SLABS OBJ/SLAB CACHE SIZE NAME
151032 151032 100%    0.19K   3596       42     28768K dentry
 58734  58734 100%    0.10K   1506       39      6024K buffer_head
 48620  48620 100%    0.12K    715       68      5720K kernfs_node_cache
 26826  26826 100%    0.04K    263      102      1052K selinux_inode_security
 22495  22386  99%    0.58K    409       55     13088K inode_cache
 19392  18829  97%    0.06K    303       64      1212K kmalloc-64
 15456  14701  95%    0.19K    368       42      2944K kmalloc-192
 13504  13168  97%    0.25K    211       64      3376K kmalloc-256
 13056  13056 100%    0.02K     51      256       204K kmalloc-16
 11328  11266  99%    0.50K    177       64      5664K kmalloc-512
 10472  10472 100%    0.07K    187       56       748K avc_node
  9728   9728 100%    0.01K     19      512        76K kmalloc-8
  9618   9618 100%    0.09K    229       42       916K kmalloc-96
  8576   8492  99%    2.00K    536       16     17152K kmalloc-2048
  7680   7680 100%    0.03K     60      128       240K kmalloc-32
  5217   5217 100%    0.21K    141       37      1128K vm_area_struct
  3528   3528 100%    0.57K     63       56      2016K radix_tree_node

7- iostat

用於輸出CPU和磁碟I/O相關的統計資訊

用法: iostat [ 選項 ] [ <時間間隔> [ <次數> ]]

-c:只顯示系統CPU統計資訊,即單獨輸出avg-cpu結果,不包括device結果
-d:單獨輸出Device結果,不包括cpu結果
-k/-m:輸出結果以kB/mB為單位,而不是以扇區數為單位
-x:輸出更詳細的io裝置統計資訊
interval/count:每次輸出間隔時間,count表示輸出次數,不帶count表示迴圈輸出

7.1- 從系統開機到當前執行時刻的統計資訊

[root@openshift ~]# iostat
Linux 3.10.0-1062.el7.x86_64 (openshift)        10/12/2020      _x86_64_       (2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.15    0.00    0.27    0.01    0.00   99.57

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               1.82        50.75        40.24     336018     266438
dm-0              1.57        45.94        39.93     304202     264349
dm-1              0.01         0.33         0.00       2204          0

avg-cpu: 總體cpu使用情況統計資訊,對於多核cpu,這裡為所有cpu的平均值。重點關注iowait值,表示CPU用於等待io請求的完成時間。

Device: 各磁碟裝置的IO統計資訊。各列含義如下:

Device: 以sdX形式顯示的裝置名稱
tps: 每秒程序下發的IO讀、寫請求數量
KB_read/s: 每秒從驅動器讀入的資料量,單位為K。
KB_wrtn/s: 每秒從驅動器寫入的資料量,單位為K。
KB_read: 讀入資料總量,單位為K。
KB_wrtn: 寫入資料總量,單位為K。

7.2- 檢視裝置使用率(%util)、響應時間(await)

每隔1S輸出磁碟IO的詳細詳細,總共取樣2次

[root@openshift ~]# iostat -x -k -d 1 2 
##引數 -d 表示,顯示裝置(磁碟)使用狀態;-k某些使用block為單位的列強制使用Kilobytes為單位

Linux 3.10.0-1062.el7.x86_64 (openshift)        10/12/2020      _x86_64_       (2 CPU)

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.06    1.34    0.46    50.07    39.71    99.73     0.00    1.40    0.59    3.73   0.43   0.08
dm-0              0.00     0.00    1.02    0.53    45.33    39.40   109.49     0.00    1.65    0.70    3.49   0.47   0.07
dm-1              0.00     0.00    0.01    0.00     0.33     0.00    50.09     0.00    0.22    0.22    0.00   0.10   0.00

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_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   0.00   0.00
dm-0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

rrqm/s: 每秒對該裝置的讀請求被合併次數,檔案系統會對讀取同塊(block)的請求進行合併
wrqm/s: 每秒對該裝置的寫請求被合併次數
r/s: 每秒完成的讀次數
w/s: 每秒完成的寫次數
rkB/s: 每秒讀資料量(kB為單位)
wkB/s: 每秒寫資料量(kB為單位)
avgrq-sz:平均每次IO操作的資料量(扇區數為單位)
avgqu-sz: 平均等待處理的IO請求佇列長度
await: 平均每次IO請求等待時間(包括等待時間和處理時間,毫秒為單位)
svctm: 平均每次IO請求的處理時間(毫秒為單位)
%util: 採用週期內用於IO操作的時間比率,即IO佇列非空的時間比率

重點關注引數:

1、iowait% 表示CPU等待IO時間佔整個CPU週期的百分比,如果iowait值超過50%,或者明顯大於%system、%user以及%idle,表示IO可能存在問題。

2、avgqu-sz 表示磁碟IO佇列長度,即IO等待個數。

3、await 表示每次IO請求等待時間,包括等待時間和處理時間

4、svctm 表示每次IO請求處理的時間

5、%util 表示磁碟忙碌情況,一般該值超過80%表示該磁碟可能處於繁忙狀態。

7.3- 檢視TPS和吞吐量資訊

[root@openshift ~]# iostat -d -k 1 2
Linux 3.10.0-1062.el7.x86_64 (openshift)        10/12/2020      _x86_64_       (2 CPU)

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               1.76        48.67        38.66     336018     266881
dm-0              1.51        44.06        38.35     304202     264792
dm-1              0.01         0.32         0.00       2204          0

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               0.00         0.00         0.00          0          0
dm-0              0.00         0.00         0.00          0          0
dm-1              0.00         0.00         0.00          0          0

tps:該裝置每秒的傳輸次數(Indicate the number of transfers per second that were issued to the device.)。“一次傳輸”意思是“一次I/O請求”。多個邏輯請求可能會被合併為“一次I/O請求”。“一次傳輸”請求的大小是未知的。

kB_read/s:每秒從裝置(drive expressed)讀取的資料量;kB_wrtn/s:每秒向裝置(drive expressed)寫入的資料量;kB_read:讀取的總資料量;kB_wrtn:寫入的總數量資料量;這些單位都為Kilobytes。

7.4- 獲取CPU狀態值

[root@openshift ~]# iostat -c 1 2
Linux 3.10.0-1062.el7.x86_64 (openshift)        10/12/2020      _x86_64_       (2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.14    0.00    0.26    0.01    0.00   99.59

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.00    0.00    0.00    0.00    0.00  100.00