用 sar 命令監控系統狀態
sar 命令很強大,它可以監控系統幾乎所有資源狀態,比如平均負載、網卡流量、磁盤狀態、內存使用等。與其他系統狀態監控工具不同,它可以打印歷史信息,可以顯示當天從零點開始到當前時刻的系統狀態信息。如果你的系統沒有安裝這個命令,請使用 yum install -y sysstat 安裝。初次使用 sar 命令會報錯,那是因爲 sar 工具還沒有生成相應的數據庫文件(無需實時監控,因爲不用去查詢那個庫文件)它的數據庫文件在 /var/log/sa 目錄下。因爲這個命令太複雜,所以只介紹以下兩個方面。
安裝 sar 包
[root@evan-01 ~]# sar
-bash: sar: command not found
[root@evan-01 ~]# yum install -y sysstat
初次使用 sar
[root@evan-01 ~]# sar
Cannot open /var/log/sa/sa20: No such file or directory
[root@evan-01 ~]#
沒有加任何的選項,它就會到生成的歷史文件查找。初次使用 sar 命令會報錯,那是因爲 sar 工具還沒有生成相應的數據庫文件(無需實時監控,因爲不用去查詢那個庫文件)它的數據庫文件在 /var/log/sa 目錄下,每隔10分鐘會生成一下,因爲我們剛安裝的 sar 所以還沒有,不過不用擔心,不影響我們加上其他選項使用
查看網卡流量 sar -n DEV
[root@evan-01 ~]# sar -n DEV 1 5
Linux 3.10.0-693.el7.x86_64 (evan-01) 11/20/2019 _x86_64_ (1 CPU)
11:39:50 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
11:39:51 AM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:39:51 AM ens33 1.01 1.01 0.06 0.17 0.00 0.00 0.00
11:39:51 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
11:39:52 AM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:39:52 AM ens33 0.99 0.99 0.06 0.37 0.00 0.00 0.00
11:39:52 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
11:39:53 AM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:39:53 AM ens33 0.99 0.99 0.06 0.37 0.00 0.00 0.00
11:39:53 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
11:39:54 AM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:39:54 AM ens33 0.99 0.99 0.06 0.37 0.00 0.00 0.00
11:39:54 AM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
11:39:55 AM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:39:55 AM ens33 1.00 1.00 0.06 0.37 0.00 0.00 0.00
Average: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
Average: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Average: ens33 1.00 1.00 0.06 0.33 0.00 0.00 0.00
[root@evan-01 ~]#
這個命令會把當天記錄的網卡信息打印出來,每隔10分鐘記錄一次。IFACE這一列表示設備名稱,rxpck/s 這一列表示每秒進入收取的包的數量,txpck/s 這一列表示每秒發送出去的包的數量,rxkB/s這一列表示每秒收取的數據量(單位爲 KB),txkB/s 這一列表示每秒發送的數據量(後面幾列不需要關注)
如果有一天服務器丟包非常嚴重,那麼你就應該查一下網卡流量是否異常了。如果 rxpck/s 那一列的數值大於 4000,或者 rxkB/s 那一列的數值大於 5000000,很有可能是被攻擊了。正常的服務器網卡流量不會那麼高,除非是你自己在複製數據
再來執行下 sar
[root@evan-01 ~]# sar
Linux 3.10.0-693.el7.x86_64 (evan-01) 11/20/2019 _x86_64_ (1 CPU)
[root@evan-01 ~]# ls /var/log/sa/
sa20
[root@evan-01 ~]#
已經不再有報錯了,查看下發現 /var/log/sa/ 目錄下已經有了文件了,自動生成的,每隔10分鐘抓一次
查看某一天的網卡流量歷史
-f 選項查看某一天的網卡流量歷史,後面跟文件名。sar 的庫文件一定在 /var/log/sa/目錄下。包的名字很有意思,後面數字代表日期
[root@evan-01 ~]# sar -n DEV -f /var/log/sa/sa20
Linux 3.10.0-693.el7.x86_64 (evan-01) 11/20/2019 _x86_64_ (1 CPU)
[root@evan-01 ~]#
現在還沒數據,所以沒展示出來。
查看歷史負載 sar -q
[root@evan-01 ~]# sar -q
Linux 3.10.0-693.el7.x86_64 (evan-01) 11/20/2019 _x86_64_ (1 CPU)
11:40:01 AM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked
11:50:01 AM 1 121 0.00 0.01 0.05 0
12:00:01 PM 1 122 0.02 0.02 0.05 0
12:10:01 PM 1 122 0.01 0.02 0.05 0
12:20:01 PM 1 122 0.07 0.04 0.05 0
12:30:01 PM 1 123 0.00 0.01 0.05 0
12:40:01 PM 1 122 0.00 0.01 0.05 0
12:50:01 PM 1 122 0.00 0.01 0.05 0
01:00:01 PM 1 122 0.01 0.03 0.05 0
01:10:02 PM 1 121 0.00 0.01 0.05 0
01:20:01 PM 1 121 0.00 0.01 0.05 0
01:30:01 PM 1 122 0.00 0.01 0.05 0
01:40:01 PM 1 121 0.02 0.02 0.05 0
01:50:01 PM 1 121 0.00 0.01 0.05 0
02:00:01 PM 1 121 0.00 0.01 0.05 0
Average: 1 122 0.01 0.02 0.05 0
[root@evan-01 ~]#
這個命令有助於我們查看服務器在過去某個時間的負載情況
查看磁盤負載 sar -b
[root@evan-01 ~]# sar -b
Linux 3.10.0-693.el7.x86_64 (evan-01) 11/20/2019 _x86_64_ (1 CPU)
11:40:01 AM tps rtps wtps bread/s bwrtn/s
11:50:01 AM 0.08 0.00 0.08 0.00 1.12
12:00:01 PM 0.05 0.00 0.05 0.00 0.42
12:10:01 PM 0.09 0.02 0.08 0.31 1.07
12:20:01 PM 0.03 0.00 0.03 0.00 0.41
12:30:01 PM 0.92 0.37 0.55 10.83 13.99
12:40:01 PM 0.03 0.00 0.03 0.00 0.37
12:50:01 PM 0.06 0.00 0.06 0.00 0.87
01:00:01 PM 0.05 0.00 0.05 0.00 0.48
01:10:02 PM 0.10 0.00 0.10 0.00 1.34
01:20:01 PM 0.02 0.00 0.02 0.00 0.29
01:30:01 PM 0.07 0.00 0.07 0.00 0.86
01:40:01 PM 0.03 0.00 0.03 0.00 0.33
01:50:01 PM 0.02 0.00 0.02 0.00 0.29
02:00:01 PM 0.06 0.00 0.06 0.00 0.62
02:10:01 PM 0.06 0.00 0.06 0.00 0.51
Average: 0.11 0.03 0.08 0.74 1.53
[root@evan-01 ~]#
查看磁盤的讀和寫