Linux 系統性能分析工具 sar

来源:https://www.cnblogs.com/klvchen/archive/2018/04/25/8945991.html
-Advertisement-
Play Games

sar(System Activity Reporter系統活動情況報告)是目前 Linux 上最為全面的系統性能分析工具之一,可以 從多方面對系統的活動進行報告,包括:文件的讀寫情況、系統調用的使用情況、磁碟I/O、CPU效率、記憶體使用狀況、 進程活動及IPC有關的活動等。本文主要以CentOS ...


sar(System Activity Reporter系統活動情況報告)是目前 Linux 上最為全面的系統性能分析工具之一,可以
從多方面對系統的活動進行報告,包括:文件的讀寫情況、系統調用的使用情況、磁碟I/O、CPU效率、記憶體使用狀況、
進程活動及IPC有關的活動等。本文主要以CentOS 6.3 x64系統為例,介紹sar命令。

格式
sar [options] [-A] [-o file] t [n]

參數 說明
t 為採樣間隔,預設是秒
n 為採樣次數,預設是1
-o file 表示將命令結果以二進位格式存放在文件中,file是文件名
-A 所有報告的總和
-u 輸出CPU使用情況的統計信息
-v 輸出inode,文件和其他內核表的統計信息
-d 輸出每一個塊設備的活動信息
-r 輸出記憶體和交換空間的統計信息
-b 顯示I/O和傳送速率的統計信息
-a 文件讀寫情況
-c 輸出進程統計信息,每秒創建的進程數
-R 輸出記憶體頁面的統計信息
-y 終端設備活動情況
-w 輸出系統交換活動信息

CPU 資源監控

sar -u  -o test 8 4
Linux 2.6.32-358.el6.x86_64 (nagios_s1)         11/12/15        _x86_64_        (1 CPU)

16:07:18        CPU     %user     %nice   %system   %iowait    %steal     %idle
16:07:26        all      0.00      0.00      0.00      0.00      0.00    100.00
16:07:34        all      0.00      0.00      0.00      0.00      0.00    100.00
16:07:42        all      0.00      0.00      0.00      0.00      0.00    100.00
16:07:50        all      0.00      0.00      0.00      0.00      0.00    100.00
Average:        all      0.00      0.00      0.00      0.00      0.00    100.00

%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。

如果要查看二進位文件 test 中的內容,需鍵入如下sar命令:
sar -u -f test


監控inode、文件和其他內核表

sar -v 8 4
Linux 2.6.32-358.el6.x86_64 (nagios_s1)         11/12/15        _x86_64_        (1 CPU)

16:32:40    dentunusd   file-nr  inode-nr    pty-nr
16:32:48         5296       288      7672         2
16:32:56         5296       288      7672         2
16:33:04         5296       288      7672         2
16:33:12         5296       288      7672         2
Average:         5296       288      7672         2

dentunusd : 目錄高速緩存中未被使用的條目數量
file-nr   : 文件句柄(file handle) 的使用數量
inode-nr  : 索引節點句柄(inode handle) 的使用數量
pty-nr    : 使用的pty數量

監控記憶體和交換空間

sar -r 8 4
Linux 2.6.32-358.el6.x86_64 (nagios_s1)         11/12/15        _x86_64_        (1 CPU)

16:41:15    kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit
16:41:23       301116    200320     39.95     10688    147824     56648      2.77
16:41:31       301116    200320     39.95     10688    147824     56648      2.77
16:41:39       301116    200320     39.95     10688    147824     56648      2.77
16:41:47       301116    200320     39.95     10688    147824     56648      2.77
Average:       301116    200320     39.95     10688    147824     56648      2.77

-r     Report memory utilization statistics.  The following values are displayed:

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

記憶體分頁監控

sar -B 8 4
Linux 2.6.32-358.el6.x86_64 (nagios_s1)         11/13/15        _x86_64_        (1 CPU)

11:08:48   pgpgin/s pgpgout/s fault/s majflt/s pgfree/s pgscank/s pgscand/s pgsteal/s %vmeff
11:08:56    0.00     0.00      4.25    0.00      9.25      0.00     0.00      0.00     0.00
11:09:04    0.00     0.00      5.25    0.00     10.75      0.00     0.00      0.00     0.00
11:09:12    0.00     0.00      3.75    0.00      8.89      0.00     0.00      0.00     0.00
11:09:20    0.00     0.00      3.75    0.00     10.11      0.00     0.00      0.00     0.00
Average:    0.00     0.00      4.25    0.00      9.75      0.00     0.00      0.00     0.00

Report paging statistics.  The following values are displayed:

pgpgin/s:   表示每秒從磁碟或SWAP置換到記憶體的位元組數(KB)
pgpgout/s:  表示每秒從記憶體置換到磁碟或SWAP的位元組數(KB)
fault/s:    每秒鐘系統產生的缺頁數,即主缺頁與次缺頁之和(major + minor)
majflts/s:  每秒鐘產生的主缺頁數
pgfree/s:   每秒被放入空閑隊列中的頁個數
pgscank/s:  每秒被kswapd掃描的頁個數
pgscand/s:  每秒直接被掃描的頁個數
pgsteal/s:  每秒鐘從cache中被清除來滿足記憶體需要的頁個數
%vmeff:     每秒清除的頁(pgsteal)占總掃描頁(pgscank+pgscand)的百分比

什麼是缺頁
當CPU請求一個不在RAM中的記憶體頁時,會發生缺頁,比如我們從記憶體讀取/寫入數據,而數據未在記憶體,此時都會發生缺頁.

major表示主缺頁,主缺頁是要求輸入/輸出到磁碟的缺頁.
minor表示次缺頁,次缺頁是任何其它的缺頁.


I/O和傳送速率監控

 sar -b 8 4
Linux 2.6.18-308.el5xen (tlsgzsit01)    11/13/2015

12:04:30 PM       tps      rtps      wtps   bread/s   bwrtn/s
12:04:38 PM     10.92      0.00     10.92      0.00    116.44
12:04:46 PM      1.75      0.00      1.75      0.00     53.13
12:04:54 PM      2.23      0.00      2.23      0.00     61.46
12:05:02 PM      1.25      0.00      1.25      0.00     24.94
Average:         4.03      0.00      4.03      0.00     63.92


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

查看運行隊列中的進程數、系統上的進程大小、平均負載等

sar 與其它命令相比,它能查看各項指標隨時間變化的情況;

sar -q
Linux 3.10.0-123.el7.x86_64 (localhost.localdomain)     11/02/2017      _x86_64_        (2 CPU)

12:00:01 AM   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
12:10:01 AM         0       150      0.00      0.01      0.05         0
12:20:01 AM         0       150      0.00      0.01      0.05         0
12:30:01 AM         2       150      0.00      0.01      0.05         0
12:40:01 AM         0       150      0.00      0.01      0.05         0
12:50:01 AM         0       150      0.00      0.01      0.05         0
01:00:01 AM         1       150      0.00      0.01      0.05         0
01:10:01 AM         1       150      0.00      0.01      0.05         0
01:20:01 AM         0       150      0.00      0.01      0.05         0
01:30:01 AM         0       150      0.00      0.01      0.05         0
01:40:01 AM         1       150      0.00      0.01      0.05         0
01:50:01 AM         1       150      0.00      0.01      0.05         0
02:00:01 AM         0       150      0.00      0.01      0.05         0
02:10:01 AM         0       150      0.00      0.01      0.05         0
02:20:01 AM         0       150      0.00      0.01      0.05         0
02:30:01 AM         0       150      0.00      0.01      0.05         0

runq-sz:運行隊列的長度(等待運行的進程數)
plist-sz:進程列表中進程(processes)和線程(threads)的數量
ldavg-1:最後1分鐘的系統平均負載
ldavg-5:過去5分鐘的系統平均負載
ldavg-15:過去15分鐘的系統平均負載

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1.安裝Active Directory 架構,下載:adminpak.msi安裝。 2.以管理員運行cmd,執行:regsvr32 schmmgmt.dll(該命令將在電腦上註冊“schmmgmt.dll”) 3.開始,運行輸入:mmc /a,然後單擊確認,打開MMC控制台 4.在MMC【文件】 ...
  • 系統:centos7 LNMP(centos7, nginx, mysql, python3) 雲服務:騰訊雲 1、python3安裝 如果選擇公共鏡像安裝的話,centos內置python2,是不會安裝python3的,因此需要我們自己安裝python3。 第一步: 下載最新的python3安裝包 ...
  • 轉自:https://blog.csdn.net/valage/article/details/73332147 圖片中可以看到掛載點“/”的利用率移到100%,空間不夠,所以要對其進行分區。 1. 先進入虛擬機設置里增大磁碟空間 註意:將25改成50,以擴大空間。這裡一定要寫比25大的數,因為他是 ...
  • 1. 安裝環境 本文使用三台CentOS6.4虛擬機模擬完全分散式環境。前五個過程和hadoop1.x安裝相同 1.1. 安裝環境 1.2. 集群環境 集群包含三個節點:1個namenode、2個datanode 在我們的測試機上,我們使用三台虛擬機來模擬linux。我們下文中稱之為tiny01、t ...
  • 一、硬碟介面類型 硬碟的介面主要有IDE、SATA、SCSI 、SAS和光纖通道等五種類型。其中IDE和SATA介面硬碟多用於家用產品中,也有部分應用於伺服器,SATA是一種新生的硬碟介面類型,已經取代了大部分IDE介面應用。SCSI 、SAS主要應用於伺服器上,普通家用設備一般不支持SCSI和SA ...
  • ASCII、Unicode和UTF 8編碼的區別 摘要總結: ASCII的編碼是128個字元 GB2312編碼用來把中文編進去的,日本把日文編進Shift_JIS里... Unicode是為瞭解決各國亂碼的,但浪費存儲空間 UTF 8編碼把一個Unicode字元根據不同的數字大小編碼成1 6位元組,英 ...
  • DAC是STM32系列的一個基本外設,可以將數字信號轉化成模擬信號,這次我將使用DAC來輸出一個特定波形。 首先確定工作方法,由於我目前在做的簡易示波器在輸出波形的同時還需要顯示輸入信號,所以不能占用太多CPU時間,於是就選用了基於DMA的ADC。 使用DMA只需告訴DMA外設它要怎麼搬移數據就可以 ...
  • ps: 當第一次使用yum或yum資源庫有更新時,yum會自動下載所有所需的headers放置於 /var/cache /yum 目錄下,所需時間可能較長。 還可以使用 yum info 命令列出包信息,yum info 可用的參數與 yum list 的相同。 yum 命令還可以使用 -y 參數用 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...