每日Linux命令(3):sar
sar(System Activity Reporter系統活動情況報告)是目前Linux上最為全面的系統效能分析工具之一,可以從多方面對系統的活動進行報告,包括:檔案的讀寫情況、系統呼叫的使用情況、磁碟I/O、CPU效率、記憶體使用狀況、程式活動及IPC有關的活動等。它也是Linux下系統執行狀態統計工具,它將指定的作業系統狀態計數器顯示到標準輸出裝置。sar工具將對系統當前的狀態進行取樣,然後透過計算資料和比例來表達系統的當前執行狀態。它的特點是可以連續對系統取樣,獲得大量的取樣資料。取樣資料和分析的結果都可以存入檔案,使用它時消耗的系統資源很小。
個人習慣使用的命令是
:sar –r -f /var/log/sa/sa01
sar 既能報告當前資料,也能報告歷史資料;不帶選項執行會以10分鐘為間隔報告自午夜起當天的CPU利用率。sar把自已收集的資料以二進位制格式儲存在/var/log/sa裡;使用 sar -d 可以得到當天磁碟活動的情況彙總
1、命令格式
sar (選項)(引數)
2、選項引數
-A:顯示所有的報告資訊;
-b:顯示I/O速率;
-B:顯示換頁狀態;
-c:顯示程式建立活動;
-d:顯示每個塊裝置的狀態;
-e:設定顯示報告的結束時間;
-f:從指定檔案提取報告;
-i:設狀態資訊重新整理的間隔時間;
-P:報告每個CPU的狀態;
-R:顯示記憶體狀態;
-u:顯示CPU利用率;
-v:顯示索引節點,檔案和其他核心表的狀態;
-w:顯示交換分割槽狀態;
-x:顯示給定程式的狀態。
3、使用示例
示例一: CPU資源監控
每5秒取樣一次,連續取樣2次,觀察CPU 的使用情況,並將取樣結果以二進位制形式存入當前目錄下的檔案cpu.bin中
[root@wjq ~]# sar -u 5 2 -o cpu.bin
Linux 3.10.0-514.el7.x86_64 (wjq.comsys.com)
10/30/2017 _x86_64_ (1 CPU)
11:23:55 AM CPU %user
%nice %system %iowait
%steal %idle
11:24:00 AM all 0.61
0.00 0.61 0.00
0.00 98.78
11:24:05 AM all 0.41
0.00 0.41 0.20
0.00 98.98
Average: all 0.51
0.00 0.51 0.10
0.00 98.88
[root@ wjq ~]# ll
cpu.bin
-rw-r--r-- 1 root root 27556 Oct 30 11:24 cpu.bin
--檢視二進位制檔案cpu.bin中的內容,使用如下的命令
[root@wjq ~]# sar -u -f cpu.bin
Linux 3.10.0-514.el7.x86_64 (wjq.comsys.com)
10/30/2017 _x86_64_ (1 CPU)
11:23:55 AM CPU %user
%nice %system %iowait
%steal %idle
11:24:00 AM all 0.61
0.00 0.61 0.00
0.00 98.78
11:24:05 AM all 0.41
0.00 0.41 0.20
0.00 98.98
Average: all 0.51
0.00 0.51 0.10
0.00 98.88
說明:
CPU:all 表示統計資訊為所有 CPU 的平均值。
%user:顯示在使用者級別(application)執行使用 CPU 總時間的百分比。
%nice:顯示在使用者級別,用於nice操作,所佔用 CPU 總時間的百分比。
%system:在核心級別(kernel)執行所使用 CPU 總時間的百分比。
%iowait:顯示用於等待I/O操作佔用 CPU 總時間的百分比。
%steal:管理程式(hypervisor)為另一個虛擬程式提供服務而等待虛擬 CPU 的百分比。
%idle:顯示 CPU 空閒時間佔用 CPU 總時間的百分比。
備註:
1. 若 %iowait 的值過高,表示硬碟存在I/O瓶頸
2. 若 %idle 的值高但系統響應慢時,有可能是 CPU 等待分配記憶體,此時應加大記憶體容量
3. 若 %idle 的值持續低於1,則系統的 CPU 處理能力相對較低,表明系統中最需要解決的資源是 CPU 。
示例二: inode、檔案和其他核心表監控
每10秒取樣一次,連續取樣3次,觀察核心表的狀態
[root@wjq bin]# sar -v 5 3
Linux 3.10.0-514.el7.x86_64 (wjq.comsys.com)
10/30/2017 _x86_64_ (1 CPU)
11:22:57 AM dentunusd file-nr inode-nr
pty-nr
11:23:02 AM 66756 7424
63501 2
11:23:07 AM 66750 7232
63489 2
11:23:12 AM 66749 7200
63488 2
Average: 66752 7285
63493 2
說明:
dentunusd:目錄快取記憶體中未被使用的條目數量
file-nr:檔案控制程式碼(file handle)的使用數量
inode-nr:索引節點控制程式碼(inode handle)的使用數量
pty-nr:使用的pty數量
示例三:記憶體和交換空間監控
每5秒取樣一次,連續取樣3次,監控記憶體分頁
[root@wjq bin]# sar -r 5 3
Linux 3.10.0-514.el7.x86_64 (wjq.comsys.com)
10/30/2017 _x86_64_ (1 CPU)
11:21:47 AM kbmemfree kbmemused %memused
kbbuffers kbcached kbcommit
%commit kbactive kbinact
kbdirty
11:21:52 AM 653656 2415236
78.70 0 1632600
3353300 53.96 1216508
893016 0
11:21:57 AM 653656 2415236
78.70 0 1632600
3353300 53.96 1216516
893016 0
11:22:02 AM 659516 2409376
78.51 0 1632584
3338224 53.72 1211496
892996 0
Average: 655609 2413283 78.64 0
1632595 3348275 53.88
1214840 893009 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)的一個百分比.
Kbactive:活動記憶體量(以千位元組計算)(最近使用的記憶體,通常不會被收回,除非絕對必要)
kbinact:不活動記憶體量(以千位元組計算的記憶體(最近使用的記憶體),更有資格被用於其他目的)。
kbdirty:以KB為單位的記憶體量等待寫入磁碟
示例四:記憶體分頁監控
每5秒取樣一次,連續取樣3次,檢視記憶體分頁的使用情況
[root@wjq ~]# sar -B 5 3
Linux 3.10.0-514.el7.x86_64 (wjq.comsys.com) 10/30/2017 _x86_64_ (1 CPU)
11:35:00 AM pgpgin/s pgpgout/s fault/s
majflt/s pgfree/s pgscank/s
pgscand/s pgsteal/s %vmeff
11:35:05 AM 1.64 18.85
93.44 0.00 352.05
0.00 0.00 0.00
0.00
11:35:10 AM 0.00 6.53
7.35 0.00 9.18
0.00 0.00 0.00
0.00
11:35:15 AM 0.00 13.65
4.48 0.00 7.94
0.00 0.00 0.00
0.00
Average: 0.54 13.00
34.99 0.00 122.67
0.00 0.00 0.00
0.00
說明:
pgpgin/s:表示每秒從磁碟或SWAP置換到記憶體的位元組數(KB)
pgpgout/s:表示每秒從記憶體置換到磁碟或SWAP的位元組數(KB)
fault/s:每秒鐘系統產生的缺頁數,即主缺頁與次缺頁之和(major + minor)
majflt/s:每秒鐘產生的主缺頁數.
pgfree/s:每秒被放入空閒佇列中的頁個數
pgscank/s:每秒被kswapd掃描的頁個數
pgscand/s:每秒直接被掃描的頁個數
pgsteal/s:每秒鐘從cache中被清除來滿足記憶體需要的頁個數
%vmeff:每秒清除的頁(pgsteal)佔總掃描頁(pgscank+pgscand)的百分比
示例五:I/O和傳送速率監控
每5秒取樣一次,連續取樣3次,報告緩衝區的使用情況
[root@wjq ~]# sar -b 5 3
Linux 3.10.0-514.el7.x86_64 (wjq.comsys.com)
10/30/2017 _x86_64_ (1 CPU)
11:38:16 AM tps rtps
wtps bread/s bwrtn/s
11:38:21 AM 0.41
0.00 0.41 0.00
13.06
11:38:26 AM 0.82 0.00
0.82 0.00 26.23
11:38:31 AM 0.82 0.00
0.82 0.00 26.18
Average: 0.68 0.00
0.68 0.00 21.81
說明:
tps:每秒鐘物理裝置的 I/O 傳輸總量
rtps:每秒鐘從物理裝置讀入的資料總量
wtps:每秒鐘向物理裝置寫入的資料總量
bread/s:每秒鐘從物理裝置讀入的資料量,單位為 塊/s
bwrtn/s:每秒鐘向物理裝置寫入的資料量,單位為 塊/s
示例六:程式佇列長度和平均負載狀態監控
每5秒取樣一次,連續取樣3次,監控程式佇列長度和平均負載狀態
[root@wjq ~]# sar -q 5 3
Linux 3.10.0-514.el7.x86_64 (wjq.comsys.com) 10/30/2017 _x86_64_ (1 CPU)
11:39:52 AM runq-sz plist-sz
ldavg-1 ldavg-5 ldavg-15
blocked
11:39:57 AM 0 328
0.04 0.03 0.05 0
11:40:02 AM 0 328
0.04 0.03 0.05 0
11:40:07 AM 0 326
0.03 0.03 0.05 0
Average: 0 327
0.04 0.03 0.05 0
說明:
runq-sz:執行佇列的長度(等待執行的程式數)
plist-sz:程式列表中程式(processes)和執行緒(threads)的數量
ldavg-1:最後1分鐘的系統平均負載(System load average)
ldavg-5:過去5分鐘的系統平均負載
ldavg-15:過去15分鐘的系統平均負載
blocked:當前阻塞的任務數,等待I / O完成
示例七:系統交換活動資訊監控
每5秒取樣一次,連續取樣3次,監控系統交換活動資訊
[root@wjq ~]# sar -W 5 3
Linux 3.10.0-514.el7.x86_64 (wjq.comsys.com) 10/30/2017 _x86_64_ (1 CPU)
11:43:17 AM pswpin/s pswpout/s
11:43:22 AM 0.00 0.00
11:43:27 AM 0.00 0.00
11:43:32 AM 0.00 0.00
Average: 0.00 0.00
說明:
pswpin/s:每秒系統換入的交換頁面(swap page)數量
pswpout/s:每秒系統換出的交換頁面(swap page)數量
示例八:裝置使用情況監控
每5秒取樣一次,連續取樣3次,報告裝置使用情況
[root@wjq ~]# sar -d 5 3
Linux 3.10.0-514.el7.x86_64 (wjq.comsys.com)
10/30/2017 _x86_64_ (1 CPU)
11:44:43 AM DEV tps
rd_sec/s wr_sec/s avgrq-sz
avgqu-sz await svctm
%util
11:44:48 AM dev11-0 0.00
0.00 0.00 0.00
0.00 0.00 0.00
0.00
11:44:48 AM dev8-0 0.82
0.00 26.18 32.00
0.00 0.00 0.00
0.00
11:44:48 AM dev253-0 0.82
0.00 26.18 32.00
0.00 0.00 0.00
0.00
11:44:48 AM dev253-1 0.00
0.00 0.00 0.00
0.00 0.00 0.00
0.00
11:44:48 AM dev253-2 0.00
0.00 0.00 0.00
0.00 0.00 0.00
0.00
11:44:48 AM DEV tps
rd_sec/s wr_sec/s avgrq-sz
avgqu-sz await svctm
%util
11:44:53 AM dev11-0 0.00
0.00 0.00 0.00
0.00 0.00 0.00
0.00
11:44:53 AM dev8-0 0.81
0.00 26.07 32.00
0.00 0.50 0.50
0.04
11:44:53 AM dev253-0 0.81
0.00 26.07 32.00
0.00 0.50 0.50
0.04
11:44:53 AM dev253-1 0.00
0.00 0.00 0.00
0.00 0.00 0.00
0.00
11:44:53 AM dev253-2 0.00
0.00 0.00 0.00
0.00 0.00 0.00
0.00
11:44:53 AM DEV tps
rd_sec/s wr_sec/s avgrq-sz
avgqu-sz await svctm
%util
11:44:58 AM dev11-0 0.00
0.00 0.00 0.00
0.00 0.00 0.00
0.00
11:44:58 AM dev8-0 0.41
0.00 13.03 32.00
0.00 0.50 0.50
0.02
11:44:58 AM dev253-0 0.41
0.00 13.03 32.00
0.00 0.50 0.50
0.02
11:44:58 AM dev253-1 0.00
0.00 0.00 0.00
0.00 0.00 0.00
0.00
11:44:58 AM dev253-2 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: dev11-0 0.00
0.00 0.00 0.00
0.00 0.00 0.00
0.00
Average: dev8-0 0.68
0.00 21.75 32.00
0.00 0.30 0.30
0.02
Average: dev253-0 0.68
0.00 21.75 32.00
0.00 0.30 0.30
0.02
Average: dev253-1 0.00
0.00 0.00 0.00
0.00 0.00 0.00
0.00
Average: dev253-2 0.00
0.00 0.00 0.00
0.00 0.00 0.00
0.00
[root@wjq ~]# sar -d 5 3 -p
Linux 3.10.0-514.el7.x86_64 (wjq.comsys.com)
10/30/2017 _x86_64_ (1 CPU)
11:45:06 AM DEV tps
rd_sec/s wr_sec/s avgrq-sz
avgqu-sz await svctm
%util
11:45:11 AM sr0 0.00
0.00 0.00 0.00
0.00 0.00 0.00
0.00
11:45:11 AM sda 0.81
0.00 26.07 32.00
0.00 0.50 0.50
0.04
11:45:11 AM cl-root 0.81
0.00 26.07 32.00
0.00 0.50 0.50
0.04
11:45:11 AM cl-swap 0.00
0.00 0.00
0.00 0.00 0.00
0.00 0.00
11:45:11 AM cl-home 0.00
0.00 0.00 0.00
0.00 0.00 0.00
0.00
11:45:11 AM DEV tps
rd_sec/s wr_sec/s avgrq-sz
avgqu-sz await svctm
%util
11:45:16 AM sr0 0.00
0.00 0.00 0.00
0.00 0.00 0.00
0.00
11:45:16 AM sda 0.61
0.00 14.49 23.67
0.00 0.33 0.33
0.02
11:45:16 AM cl-root 0.61
0.00 14.49
23.67 0.00 0.33
0.33 0.02
11:45:16 AM cl-swap 0.00
0.00 0.00 0.00
0.00 0.00 0.00
0.00
11:45:16 AM cl-home 0.00
0.00 0.00 0.00
0.00 0.00 0.00
0.00
11:45:16 AM DEV tps
rd_sec/s wr_sec/s avgrq-sz
avgqu-sz await svctm
%util
11:45:21 AM sr0 0.00
0.00 0.00 0.00
0.00 0.00 0.00
0.00
11:45:21 AM sda 0.81
0.00 26.02 32.00
0.00 0.25 0.25
0.02
11:45:21 AM cl-root 0.81
0.00 26.02 32.00
0.00 0.25 0.25
0.02
11:45:21 AM cl-swap 0.00
0.00 0.00 0.00
0.00 0.00 0.00
0.00
11:45:21 AM cl-home 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: sr0 0.00
0.00 0.00 0.00
0.00 0.00 0.00
0.00
Average: sda 0.75
0.00 22.20 29.73
0.00 0.36 0.36
0.03
Average: cl-root 0.75
0.00 22.20 29.73
0.00 0.36 0.36
0.03
Average: cl-swap 0.00
0.00 0.00 0.00
0.00 0.00 0.00
0.00
Average: cl-home 0.00
0.00 0.00 0.00
0.00 0.00 0.00
0.00
說明:
引數-p可以列印出sda,hdc等磁碟裝置名稱,如果不用引數-p,裝置節點則有可能是dev8-0,dev22-0
tps:每秒從物理磁碟I/O的次數.多個邏輯請求會被合併為一個I/O磁碟請求,一次傳輸的大小是不確定的.
rd_sec/s:每秒讀扇區的次數.
wr_sec/s:每秒寫扇區的次數.
avgrq-sz:平均每次裝置I/O操作的資料大小(扇區).
avgqu-sz:磁碟請求佇列的平均長度.
await:從請求磁碟操作到系統完成處理,每次請求的平均消耗時間,包括請求佇列等待時間,單位是毫秒(1秒=1000毫秒).
svctm:系統處理每次請求的平均時間,不包括在請求佇列中消耗的時間.
%util:I/O請求佔CPU的百分比,比率越大,說明越飽和.
注意:
1. avgqu-sz 的值較低時,裝置的利用率較高。
2. 當%util的值接近 1% 時,表示裝置頻寬已經佔滿。
示例九:網路介面的統計資訊
每5秒取樣一次,連續取樣3次,報告裝置使用情況
[root@wjq
~]# sar 5 3 -n
DEV
Linux 3.10.0-514.el7.x86_64 (wjq.comsys.com)
10/30/2017 _x86_64_ (1 CPU)
12:07:51 PM IFACE rxpck/s
txpck/s rxkB/s txkB/s
rxcmp/s txcmp/s rxmcst/s
12:07:56 PM lo 0.82
0.82 0.05 0.05
0.00 0.00
0.00
12:07:56 PM virbr0-nic 0.00 0.00
0.00 0.00 0.00
0.00 0.00
12:07:56 PM virbr0 0.00
0.00 0.00 0.00
0.00 0.00 0.00
12:07:56 PM ens160 0.41
0.20 0.06 0.04
0.00 0.00 0.00
12:07:56 PM IFACE rxpck/s
txpck/s rxkB/s txkB/s
rxcmp/s txcmp/s rxmcst/s
12:08:01 PM lo 0.82
0.82 0.05 0.05
0.00 0.00 0.00
12:08:01 PM virbr0-nic 0.00 0.00
0.00 0.00 0.00
0.00 0.00
12:08:01 PM virbr0 0.00
0.00 0.00 0.00
0.00 0.00 0.00
12:08:01 PM ens160 7.17
0.20 0.63 0.12
0.00 0.00 0.00
12:08:01 PM IFACE rxpck/s
txpck/s rxkB/s txkB/s
rxcmp/s txcmp/s rxmcst/s
12:08:06 PM lo 1.43
1.43 0.26 0.26
0.00 0.00 0.00
12:08:06 PM virbr0-nic 0.00 0.00
0.00 0.00 0.00
0.00 0.00
12:08:06 PM virbr0 0.00
0.00 0.00 0.00
0.00 0.00 0.00
12:08:06 PM ens160 0.82
0.20 0.07 0.12
0.00 0.00 0.00
Average: IFACE rxpck/s
txpck/s rxkB/s txkB/s
rxcmp/s txcmp/s rxmcst/s
Average: lo 1.02
1.02 0.12 0.12
0.00 0.00 0.00
Average: virbr0-nic 0.00
0.00 0.00 0.00
0.00 0.00 0.00
Average: virbr0 0.00
0.00 0.00 0.00
0.00 0.00 0.00
Average: ens160 2.79
0.20 0.25 0.10
0.00 0.00 0.00
說明:
Possible keywords are DEV, EDEV, NFS, NFSD, SOCK, IP, EIP, ICMP, EICMP, TCP, ETCP, UDP, SOCK6, IP6,EIP6, ICMP6, EICMP6 and UDP6
IFACE:報告統計資訊的網路介面的名稱
rxpck/s:每秒接收的資料包總數
txpck/s:每秒傳輸的報文總數
rxkB/s:每秒接收的千位元組總數
txkB/s:每秒傳輸的總千位元組數
rxcmp/s:每秒接收的壓縮資料包數
txcmp/s:每秒傳輸的壓縮包數
rxmcst/s:每秒接收的組播資料包數
4、運維擴充:
要判斷系統瓶頸問題,有時需幾個 sar 命令選項結合起來
(1)懷疑CPU存在瓶頸,可用 sar -u 和 sar -q 等來檢視
(2)懷疑記憶體存在瓶頸,可用 sar -B、sar -r 和 sar -W 等來檢視
(3)懷疑I/O存在瓶頸,可用 sar -b、sar -u 和 sar -d 等來檢視
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31015730/viewspace-2146581/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux sar命令Linux
- Linux之sar命令Linux
- sar命令用法(轉)
- linux每日命令(32):gzip命令Linux
- linux每日命令(29):chown命令Linux
- linux每日命令(18):whereis命令Linux
- linux每日命令(36):wc命令Linux
- linux每日命令(35):grep命令Linux
- linux每日命令(37):top命令Linux
- linux每日命令(39):lsof命令Linux
- linux每日命令(5):mkdir命令Linux
- linux每日命令(2):cd命令Linux
- linux每日命令(10):touch命令Linux
- linux每日命令(12):nl命令Linux
- linux每日命令(11):cat命令Linux
- sar命令使用詳解
- sar命令詳解(轉)
- linux每日命令(38):iostat命令LinuxiOS
- Linux基礎命令---sar顯示系統活動資訊Linux
- linux系統維護常用命令之sarLinux
- 每日Linux命令(5):lsblkLinux
- 每日Linux命令(2):vmstatLinux
- 每日Linux命令(4):lsofLinux
- sar命令補充例項
- linux每日命令(20):find命令概覽Linux
- 每日Linux命令(1):iostatLinuxiOS
- sar命令的用法和詳解
- {HELP}sar命令的問題(轉)
- sar效能監視命令-實時監控CPU
- 每日3
- 在 UNIX中用sar命令進行系統維護
- 【3】Linux常見命令Linux
- Linux系統命令3Linux
- linux每日命令(25):Linux檔案型別與副檔名Linux型別
- linux系統活動情況報告-sarLinux
- 每天一個Linux命令(3):pwd命令Linux
- 每天一個 Linux 命令(3):pwd 命令Linux
- 設定 sar