當前位置: 妍妍網 > 碼農

和它比起來,其他 Linux 命令都是猹!

2024-01-29碼農

戳下方名片 ,關註並 星標

回復「 1024 」獲取 2TB 學習資源!

👉 體系化學習:

特色專欄

/ /

/ /

/ /

/ /

/ /

大家好,我是民工哥!

玩 Linux 系統的,都應該知道想要玩轉它,就得必須玩轉 Linux 的小黑框,簡單來說就是必須搞懂 Linux 的常用命令!

所以,完全搞懂一個命令及其參數的用法,你會發現它是非常強大且牛逼的,Linux 系統就有這麽一個命令:sar,功能非常強大且牛逼,但是,很多人都沒能完全搞懂它。

今天,民工哥就和大家一起來聊一聊這個強大且牛掰的命令: sar

簡介

sar(System Activity Reporter 系統活動情況報告)是目前 Linux 上最為全面的系統效能分析工具之一。

它可以從多方面對系統的資源使用情況進行監控,包括:檔的讀寫情況、系統呼叫的使用情況、磁盤 I/O、CPU 效率、記憶體使用狀況、行程活動及 IPC 有關的活動等,然後將系統中的各種效能數據收集起來並顯示給使用者。

安裝

sar 命令來自於 sysstat 這個工具包,如果系統提示 sar 命令不存在,需先安裝 sysstat。

[root@CentOS7-1 ~]# sar
-bash: sar: command not found
[root@CentOS7-1 ~]# yum install sysstat -y

[root@CentOS7-1 ~]# sar

語法格式

sar -[ options ] time_interval number_of_tines_to_display

常用參數說明

-A #匯總所有的報告
-a #檢視檔讀寫使用情況
-B #檢視附加的緩存的使用情況
-b #檢視緩存的使用情況
-c #檢視系統呼叫的使用情況
-d #檢視磁盤的使用情況
-g #檢視串口的使用情況
-h #檢視關於buffer使用的統計數據
-m #檢視IPC訊息佇列和號誌的使用情況
-n #檢視命名cache的使用情況
-p #檢視調頁活動的使用情況
-q #檢視平均負載
-R #檢視行程的活動情況
-r #檢視沒有使用的記憶體頁面和硬碟塊
-u #檢視CPU的利用率
-v #檢視行程、i節點、檔和鎖表狀態
-w #檢視系統交換活動狀況
-y #檢視TTY裝置活動狀況

常用功能介紹

sar 命令的一些常用選項和功能如下:

  • CPU使用統計:使用「-u」選項可以輸出整體CPU的使用情況,包括使用者模式下的時間百分比、系統模式下的時間百分比等。

  • 記憶體使用情況:使用「-r」選項可以檢視沒有使用的記憶體頁面和硬碟塊的情況。

  • 磁盤使用情況:使用「-d」選項可以檢視每個塊裝置的活動情況,包括讀取和寫入的塊數等。

  • 網路活動情況:使用「-n」選項可以檢視網路連線、傳輸速率等網路活動情況。

  • 行程活動情況:使用「-P」選項可以檢視行程的建立、終止等行程活動情況。

  • 上下文切換情況:使用「-w」選項可以檢視系統上下文切換情況,了解系統中的行程排程情況。

  • 系統負載情況:使用「-q」選項可以檢視系統負載情況,包括佇列長度和負載資訊等。

  • 緩沖區使用情況:使用「-b」選項可以檢視緩沖區的使用情況,了解系統的I/O效能。

  • 檔讀寫情況:使用「-a」選項可以檢視檔讀寫情況,了解磁盤的讀寫負載。

  • sar命令和top命令區別

    兩者都是可以用於監控系統效能的工具,但它們之間存在一些區別。

  • sar命令是一個系統監視和記錄工具,它可以收集、報告和保存系統活動資訊,包括CPU使用情況、記憶體使用情況、磁盤活動、網路活動等。sar命令可以將收集到的數據以表格或圖形方式顯示,並支持對歷史數據的查詢和分析。因此,sar命令更適合用於系統效能的長期監控和數據記錄。

  • top命令則是一個動態的監視工具,它可以即時顯示系統中各個行程的資源占用情況,包括CPU使用率、記憶體占用、行程優先級等。top命令還可以根據使用者的需要動態地調整顯示的行程資訊,並提供了一個互動式的界面供使用者進行操作。因此,top命令更適合用於短期的即時效能監控和行程管理。

  • 套用舉例

    統計網路資訊

    [root@CentOS7-1 ~]# sar -n DEV 1 3

    檢視記憶體交換空間的使用率資訊

    [root@CentOS7-1 ~]# sar -r
    Linux 3.10.0-1127.18.2.el7.x86_64 (CentOS7-1) 01/18/2024 _x86_64_ (1 CPU)
    04:28:37 AM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty
    04:28:55 AM 127328 868356 87.21 0 542496 679228 21.96 350504 364784 24
    04:29:00 AM 127328 868356 87.21 0 542516 679228 21.96 350504 364784 44
    04:30:01 AM 126700 868984 87.28 0 542644 680828 22.01 350956 364680 0
    Average: 127119 868565 87.23 0 542552 679761 21.98 350655 364749 23

    輸出的結果欄位說明

    kbmemfree #空閑實體記憶體量
    kbmemused #使用中的實體記憶體量
    %memused #實體記憶體量使用率
    kbbuffers #內核中作為緩沖區使用的實體記憶體容量
    kbcacheed #內核中作為緩存使用的實體記憶體容量
    kbswpfree #交換區的空閑容量
    kbswpused #使用中的交換區容量

    檢視CPU使用率

    [root@centos7 ~]# sar -u
    Linux 3.10.0-1127.18.2.el7.x86_64 (centos7) 03/28/2021 _x86_64_ (1 CPU)
    11:10:02 AM CPU %user %nice %system %iowait %steal %idle
    11:20:01 AM all 0.03 0.00 0.18 0.02 0.00 99.77
    11:30:01 AM all 0.03 0.00 0.17 0.02 0.00 99.78
    Average: all 0.03 0.00 0.18 0.02 0.00 99.77

    檢視平均負載

    [root@centos7 ~]# sar -q
    Linux 3.10.0-1127.18.2.el7.x86_64 (centos7) 03/28/2021 _x86_64_ (1 CPU)
    11:10:02 AM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked
    11:20:01 AM 1 108 0.00 0.01 0.05 0
    11:30:01 AM 1 108 0.00 0.01 0.05 0
    Average: 1 108 0.00 0.01 0.05 0

    檢視頁面交換發生狀況

    [root@centos7 ~]# sar -w
    Linux 3.10.0-1127.18.2.el7.x86_64 (centos7) 03/28/2021 _x86_64_ (1 CPU)
    11:10:02 AM proc/s cswch/s
    11:20:01 AM 0.02 19.10
    11:30:01 AM 0.03 19.92
    11:40:01 AM 0.02 19.45
    Average: 0.02 19.49

    檢視I/O和傳送速率的統計資訊

    [root@centos7 ~]# sar -b
    Linux 3.10.0-1127.18.2.el7.x86_64 (centos7) 03/28/2021 _x86_64_ (1 CPU)
    11:10:02 AM tps rtps wtps bread/s bwrtn/s
    11:20:01 AM 0.06 0.00 0.06 0.00 0.74
    11:30:01 AM 0.03 0.00 0.03 0.00 0.40
    Average: 0.05 0.00 0.05 0.00 0.57

    輸出欄位說明

    tps #每秒鐘物理裝置的 I/O 傳輸總量
    rtps #每秒鐘從物理裝置讀入的數據總量
    wtps #每秒鐘向物理裝置寫入的數據總量
    bread/s #每秒鐘從物理裝置讀入的數據量,單位為 塊/s
    bwrtn/s #每秒鐘向物理裝置寫入的數據量,單位為 塊/s

    檢視塊裝置

    [root@CentOS7-1 ~]# sar -d 1 2
    Linux 3.10.0-1127.18.2.el7.x86_64 (CentOS7-1) 01/18/2024 _x86_64_ (1 CPU)
    04:42:51 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
    04:42:52 AM dev8-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
    04:42:52 AM dev11-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
    04:42:52 AM dev253-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
    04:42:52 AM dev253-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
    04:42:52 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
    04:42:53 AM dev8-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
    04:42:53 AM dev11-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
    04:42:53 AM dev253-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
    04:42:53 AM dev253-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
    04:42:53 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
    04:42:54 AM dev8-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
    04:42:54 AM dev11-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
    04:42:54 AM dev253-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
    04:42:54 AM dev253-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

    輸出的資訊說明

    tps #每秒從物理磁盤 I/O 的次數。
    rd_sec/s #每秒讀磁區的次數。
    wr_sec/s #每秒寫磁區的次數。
    avgrq-sz #平均每次裝置 I/O 操作的數據大小(磁區)。
    avgqu-sz #磁盤請求佇列的平均長度。
    await #從請求操作到系統完成處理,每次請求的平均消耗時間,包括請求佇列等待時間,單位是毫秒(1 秒=1000 毫秒)。
    svctm #系統處理每次請求的平均時間,不包括在請求佇列中消耗的時間。
    %util #I/O 請求占 CPU 的百分比,比率越大,說明越飽和。

    高級功能

    多系統監控

    sar命令可以在多個系統之間進行分布式監控,並匯總各個系統的效能數據。使用者可以使用「-A」選項來指定要監控的系統,並使用「-f」選項指定數據檔。

    生成自訂報告

    sar 命令可以將收集到的數據以表格或圖形方式顯示,並支持生成自訂報告。使用者可以使用「-o」選項指定報告檔名,並使用「-f」選項指定數據檔。

    報警和通知

    sar命令可以配置報警和通知功能,當系統資源使用超過預設閾值時,自動發送警報或通知給相關人員。

    數據匯出和匯入

    sar 命令可以將收集到的數據匯出為檔,以便在其他工具中進行進一步分析。同時,使用者也可以從檔中匯入數據,以進行歷史數據比較或其他用途。

    與其他工具整合

    sar命令可以與其他系統管理工具整合,如Nagios、Zabbix等,以實作自動化監控和報警功能。

    總結

    總之,sar 命令是一個功能強大的監控工具,具有、報告生成、多系統監控、自訂監控選項、報警和通知、數據匯出和匯入以及與其他工具整合等高級功能。透過合理使用這些功能,使用者可以更好地了解系統效能狀況並進行相應的最佳化和調整。

    這麽牛逼的命令列工具,你確定不整一下?

    公眾號讀者專屬技術群

    構建高品質的技術交流社群,歡迎從事後端開發、運維技術進群( 備註崗位,已在技術交流群的請勿重復添加微信好友 )。主要以技術交流、內推、行業探討為主,請文明發言。 廣告人士勿入,切勿輕信私聊,防止被騙。

    掃碼加我好友,拉你進群

    PS:因為公眾號平台更改了推播規則,如果不想錯過內容,記得讀完點一下 在看 ,加個 星標 ,這樣每次新文章推播才會第一時間出現在你的訂閱列表裏。 在看 支持我們吧!