Linux性能監控-sar

来源:https://www.cnblogs.com/ayic/archive/2022/09/05/16656558.html
-Advertisement-
Play Games

最近工作需要,研究了一些Liunx性能工具,發現sar這個工具非常優秀。sar是一個非常全面的一個分析工具,對文件的讀寫,系統調用的使用情況,磁碟IO,CPU相關使用情況,記憶體使用情況,進程活動等都可以進行有效的分析。sar工具將對系統當前的狀態進行取樣,然後通過計算數據和比例來表達系統的當前運行狀 ...


  最近工作需要,研究了一些Liunx性能工具,發現sar這個工具非常優秀。sar是一個非常全面的一個分析工具,對文件的讀寫,系統調用的使用情況,磁碟IO,CPU相關使用情況,記憶體使用情況,進程活動等都可以進行有效的分析。sar工具將對系統當前的狀態進行取樣,然後通過計算數據和比例來表達系統的當前運行狀態。它的特點是可以連續對系統取樣,獲得大量的取樣數據。取樣數據和分析的結果都可以存入文件,使用它時消耗的系統資源很小。 

  --help查看一下:

[root@iZuf657isp1alim7einvk6Z ~]# sar --help
用法: sar [ 選項 ] [ <時間間隔> [ <次數> ] ]
Options are:
[ -A ] [ -b ] [ -B ] [ -C ] [ -d ] [ -h ] [ -m ] [ -p ] [ -q ] [ -r ] [ -R ]
[ -S ] [ -t ] [ -u [ ALL ] ] [ -v ] [ -V ] [ -w ] [ -W ] [ -y ]
[ -I { <int> [,...] | SUM | ALL | XALL } ] [ -P { <cpu> [,...] | ALL } ]
[ -j { ID | LABEL | PATH | UUID | ... } ] [ -n { <keyword> [,...] | ALL } ]
[ -o [ <filename> ] | -f [ <filename> ] ] [ --legacy ]
[ -i <interval> ] [ -s [ <hh:mm:ss> ] ] [ -e [ <hh:mm:ss> ] ]
-A:所有報告的總和
-u:輸出CPU使用情況的統計信息
-v:輸出inode、文件和其他內核表的統計信息
-d:輸出每一個塊設備的活動信息
-r:輸出記憶體和交換空間的統計信息
-b:顯示I/O和傳送速率的統計信息-R:輸出記憶體頁面的統計信息
-y:終端設備活動情況
-w:輸出系統交換活動信息
-B:顯示換頁狀態;
-e:設置顯示報告的結束時間
-f:從指定文件提取報告
-i:設狀態信息刷新的間隔時間
-p:報告每個CPU的狀態
-q:平均負載分析

下麵介紹幾個常用的:

1、統計CPU使用情況

命令:sar -u 1 3,統計CPU的使用情況,每間隔1秒鐘統計一次總共統計三次。

[root@iZuf657isp1alim7einvk6Z ~]# sar -u 1 3
Linux 2.6.32-754.23.1.el6.x86_64 (iZuf657isp1alim7einvk6Z)     2022年09月04日     _x86_64_    (8 CPU)

23時55分22秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
23時55分23秒     all     14.81      0.00      1.14      8.35      0.00     75.70
23時55分24秒     all     14.34      0.00      1.26      7.42      0.00     76.98
23時55分25秒     all     14.18      0.00      1.01      7.47      0.00     77.34
平均時間:     all     14.44      0.00      1.14      7.75      0.00     76.67

%user #用戶空間的CPU使用
%nice 改變過優先順序的進程的CPU使用率
%system 內核空間的CPU使用率
%iowait CPU等待IO的百分比 
%steal 虛擬機的虛擬機CPU使用的CPU
%idle 空閑的CPU

在以上的顯示當中,主要看%iowait和%idle,%iowait過高表示存在I/O瓶頸,即磁碟IO無法滿足業務需求,如果%idle過低表示CPU使用率比較嚴重,需要結合記憶體使用等情況判斷CPU是否瓶頸。

2、記憶體統計分析

命令:sar -r 1 3,查看記憶體使用情況,每間隔1秒鐘統計一次總共統計三次。

[root@iZuf657isp1alim7einvk6Z ~]# sar -r 1 3
Linux 2.6.32-754.23.1.el6.x86_64 (iZuf657isp1alim7einvk6Z)     2022年09月05日     _x86_64_    (8 CPU)

00時01分16秒 kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit
00時01分17秒    369456  32510660     98.88    128704   7057296  20432776     62.14
00時01分18秒    365828  32514288     98.89    128704   7061612  20432776     62.14
00時01分19秒    359528  32520588     98.91    128704   7066180  20436368     62.15
平均時間:    364937  32515179     98.89    128704   7061696  20433973     62.15

kbmemfree 空閑的物理記憶體大小
kbmemused 使用中的物理記憶體大小
%memused 物理記憶體使用率
kbbuffers 內核中作為緩衝區使用的物理記憶體大小,kbbuffers和kbcached:這兩個值就是free命令中的buffer和cache. 
kbcached 緩存的文件大小
kbcommit 保證當前系統正常運行所需要的最小記憶體,即為了確保記憶體不溢出而需要的最少記憶體(物理記憶體+Swap分區)
commit 這個值是kbcommit與記憶體總量(物理記憶體+swap分區)的一個百分比的

3、平均負載統計分析

命令:sar -q 1 3,查看記憶體使用情況,每間隔1秒鐘統計一次總共統計三次。

[root@iZuf657isp1alim7einvk6Z ~]# sar -q 1 3
Linux 2.6.32-754.23.1.el6.x86_64 (iZuf657isp1alim7einvk6Z)     2022年09月05日     _x86_64_    (8 CPU)

00時04分57秒   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15
00時04分58秒         1       646      1.91      1.82      1.75
00時04分59秒         1       646      1.91      1.82      1.75
00時05分00秒         1       646      1.91      1.82      1.75
平均時間:         1       646      1.91      1.82      1.75

runq-sz 運行隊列的長度(等待運行的進程數,每核的CP不能超過3個)
plist-sz 進程列表中的進程(processes)和線程數(threads)的數量
ldavg-1 最後1分鐘的CPU平均負載,即將多核CPU過去一分鐘的負載相加再除以核心數得出的平均值,5分鐘和15分鐘以此類推
ldavg-5 最後5分鐘的CPU平均負載
ldavg-15 最後15分鐘的CPU平均負載

4、統計swap分區

命令:sar -W 1 3,查看系統swap分區的統計信息:每間隔1秒鐘統計一次總共統計三次。

[root@iZuf657isp1alim7einvk6Z ~]# sar -W 1 3
Linux 2.6.32-754.23.1.el6.x86_64 (iZuf657isp1alim7einvk6Z)     2022年09月05日     _x86_64_    (8 CPU)

00時07分01秒  pswpin/s pswpout/s
00時07分02秒      0.00      0.00
00時07分03秒      0.00      0.00
00時07分04秒      0.00      0.00
平均時間:      0.00      0.00

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

5、查看磁碟使用情況

命令:sar -d 1 3,磁碟使用詳情統計,每間隔1秒鐘統計一次總共統計三次。

[root@iZuf657isp1alim7einvk6Z ~]# sar -d 1 3
Linux 2.6.32-754.23.1.el6.x86_64 (iZuf657isp1alim7einvk6Z)     2022年09月05日     _x86_64_    (8 CPU)

00時09分05秒       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
00時09分06秒  dev252-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
00時09分06秒 dev252-16      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

00時09分06秒       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
00時09分07秒  dev252-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
00時09分07秒 dev252-16      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

00時09分07秒       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
00時09分08秒  dev252-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
00時09分08秒 dev252-16      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

平均時間:       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
平均時間:  dev252-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
平均時間: dev252-16      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

DEV 磁碟設備的名稱
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越慢

6、查看磁碟IO

命令:sar -b 1 3,查看I/O和傳遞速率的統計信息,每間隔1秒鐘統計一次總共統計三次。

[root@iZuf657isp1alim7einvk6Z ~]# sar -b 1 3
Linux 2.6.32-754.23.1.el6.x86_64 (iZuf657isp1alim7einvk6Z)     2022年09月05日     _x86_64_    (8 CPU)

00時12分08秒       tps      rtps      wtps   bread/s   bwrtn/s
00時12分09秒      0.00      0.00      0.00      0.00      0.00
00時12分10秒      2.08      0.00      2.08      0.00     41.67
00時12分11秒      7.00      0.00      7.00      0.00    144.00
平均時間:      3.07      0.00      3.07      0.00     62.80

tps 磁碟每秒鐘的IO總數,等於iostat中的tps
rtps 每秒鐘從磁碟讀取的IO總數
wtps 每秒鐘從寫入到磁碟的IO總數
bread/s 每秒鐘從磁碟讀取的塊總數
bwrtn/s 每秒鐘此寫入到磁碟的塊總數

 


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

-Advertisement-
Play Games
更多相關文章
  • 來源:cnblogs.com/jae-tech/p/15409340.html 寫在前面 此異常非彼異常,標題所說的異常是業務上的異常。 最近做了一個需求,消防的設備巡檢,如果巡檢發現異常,通過手機端提交,後臺的實時監控頁面實時獲取到該設備的信息及位置,然後安排員工去處理。 因為需要服務端主動向客戶 ...
  • 一、為什麼要進行類型別名優化 首先我們來看一下前面寫的UserMapper.xml配置文件: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "h ...
  • 在實際業務中,當後臺數據發生變化,客戶端能夠實時的收到通知,而不是由用戶主動的進行頁面刷新才能查看,這將是一個非常人性化的設計。有沒有那麼一種場景,後臺數據明明已經發生變化了,前臺卻因為沒有及時刷新,而導致頁面顯示的數據與實際存在差異,從而造成錯誤的判斷。那麼如何才能在後臺數據變更時及時通知客戶端呢... ...
  • 一、實驗目的 1.熟悉和掌握小型區域網的配置方法 2.掌握子網劃分中IP地址的分配方法 3.掌握DHCP的配置方法 4.掌握VLAN的配置方法 5.掌握路由的配置方法 6.掌握交換機、路由器的配置方法 二、設備與環境 微型電腦、Windows 系列操作系統 、ensp軟體 三、實驗內容 某公司的小 ...
  • 1.前言 往往一些剛接觸C#編程的初學者,對於泛型的認識就是直接跳到對泛型集合的使用上,雖然微軟為我們提供了很多內置的泛型類型,但是如果我們只是片面的瞭解調用方式,這會導致我們對泛型盲目的使用。至於為什麼要使用泛型,什麼情況下定義屬於自己的泛型,定義泛型又能為程式帶來哪些好處。要理清這些問題,我們就 ...
  • 使用asp.net core 開發應用系統過程中,基本上都會涉及到用戶身份的認證,及授權訪問控制,因此瞭解認證和授權流程也相當重要,下麵通過分析asp.net core 框架中的認證和授權的源碼來分析認證、授權的原理及認證和授權的關係。 認證是什麼? 認證是應用系統識別當前訪問者的身份的一個過程,當 ...
  • 題目 中文 實現一個以 T 作為泛型參數的 IsNever類型. 如果 T 是never, 返回 true, 否則返回 false. 示例: type A = IsNever<never>; // expected to be true type B = IsNever<undefined>; // ...
  • 拉取一個centos鏡像 docker pull centos:centos7 運行一個容器 docker run -i -t -d --restart=always --name baota -p 1870:8888 -p 1871:3306 -p 1872:22 -p 1873:443 -p 1 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...