IO和文件系統性能分析工具

以下內容來自于RHEL 官方文檔。以下工具可以用來分析磁盤 IO 和文件系統性能瓶頸。
分析方法見 《性能分析方法-《性能之巔》筆記》,USE 法必須要使用相關性能分析工具。

影響 IO 和文件系統性能的主要因素:

數據寫入或讀取特征
順序或隨機
buffered 或 Direct IO
數據與底層 geometry 保持一致
塊大小
文件系統大小
日志大小和位置
記錄訪問時間
確保數據可靠性
預抓取數據
預分配磁盤空間
文件碎片
資源爭用

vmstat

vmstat 工具報告整個系統的進程、內存、分頁、塊 I/O、中斷和 CPU 活動。它可幫助管理員確定 I/O 子系統是否負責任何性能問題。如果使用 vmstat 進行分析顯示,I/O 子系統負責降低性能,管理員可以使用 iostat 工具來確定負責的 I/O 設備。
常用命令:
vmstat 1 每1秒采集一次。

# vmstat 1
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st0  0      0 14492940  93516 1050928    0    0     0     0    0    2  0  0 100  0  00  0      0 14492940  93516 1050928    0    0     0     0    7   40  0  0 100  0  00  0      0 14492940  93516 1050928    0    0     0     0    4   36  0  0 100  0  0

vmstat 1 -t 每1秒采集一次,并打印時間戳。

# vmstat 1 -t
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- -----timestamp-----r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st                 CST0  0      0 14495244  93516 1050928    0    0     0     0    0    2  0  0 100  0  0 2023-08-17 17:14:350  0      0 14495244  93516 1050928    0    0     0     0    4   36  0  0 100  0  0 2023-08-17 17:14:360  0      0 14495244  93516 1050928    0    0     0     0    5   36  0  0 100  0  0 2023-08-17 17:14:370  0      0 14495244  93516 1050928    0    0     0     0   15   76  0  0 100  0  0 2023-08-17 17:14:380  0      0 14495244  93516 1050928    0    0     0     0    5   34  0  0 100  0  0 2023-08-17 17:14:390  0      0 14495244  93516 1050928    0    0     0    24    6   40  0  0 100  0  0 2023-08-17 17:14:400  0      0 14495244  93516 1050928    0    0     0     0    5   38  0  0 100  0  0 2023-08-17 17:14:41

iostat

iostat 報告您系統中的 I/O 設備負載。它由 sysstat 軟件包提供。
常用命令:
iostat -dxm 1 每1秒采集一次設備IO信息,并以MB為單位輸出。

# iostat -dxm 1
Linux 3.10.0-1160.42.2.el7.x86_64 (c1-121)      08/17/2023      _x86_64_        (2 CPU)Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.01    0.01    0.06     0.00     0.00    21.77     0.00    2.70    5.06    2.44   0.46   0.00
scd0              0.00     0.00    0.00    0.00     0.00     0.00   114.22     0.00    0.22    0.22    0.00   0.22   0.00
dm-0              0.00     0.00    0.01    0.07     0.00     0.00    19.87     0.00    2.77    5.94    2.50   0.44   0.00
dm-1              0.00     0.00    0.00    0.00     0.00     0.00    50.96     0.00    1.01    1.01    0.00   0.91   0.00Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
scd0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
scd0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-0              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
dm-1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00

blktrace

blktrace提供有關 I/O 子系統花費時間的詳細信息。
blkparse 讀取來自 blktrace 的原始輸出,并生成由 blktrace 記錄的輸入和輸出操作的人類可讀摘要。
btt 分析 blktrace 輸出并顯示 I/O 堆棧各個區域所花費的時間,從而更輕松地發現 I/O 子系統中的瓶頸。該實用程序作為 blktrace 軟件包的一部分提供。
使用方法:

blktrace /dev/sdb
blkparse -i sdb -d sdb.bin >>sdb.txt
btt -i sdb.bin

bpftrace

BPF Compiler Collection(BCC)是一個庫,可幫助創建擴展的 Berkeley Packet Filter(eBPF)程序。eBPF 程序在事件中觸發,如磁盤 I/O、TCP 連接和進程創建。BCC 工具安裝在 /usr/share/bcc/tools/ 目錄中。以下 bcc-tools 可幫助分析性能:

  • biolatency 總結了塊設備 I/O(磁盤 I/O)中延遲的問題。這允許研究發行版,包括用于設備緩存命中以及緩存未命中的兩種模式,以及延遲延遲。
  • biosnoop 是基本的塊 I/O 追蹤工具,用于顯示每個 I/O 事件以及發出的進程 ID,以及 I/O 延遲。使用這個工具,您可以調查磁盤 I/O 性能問題。
  • biotop 用于內核中的塊 i/o 操作。
  • filelife 工具跟蹤 stat() 系統調用。
  • fileslower 跟蹤文件同步的讀寫速度比較慢。 filetop 按進程顯示文件讀取和寫入。
  • ext4slowernfsslowerxfsslower 是顯示文件系統操作比特定閾值慢的工具,默認值為 10ms。

相關介紹見《bcc-tools Linux運維中的要你命3000》

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/40520.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/40520.shtml
英文地址,請注明出處:http://en.pswp.cn/news/40520.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

基于ssm+mysql智能圖書館導航系統設計與實現

摘 要 電腦的出現是一個時代的進步,不僅僅幫助人們解決了一些數學上的難題,如今電腦的出現,更加方便了人們在工作和生活中對于一些事物的處理。應用的越來越廣泛,通過互聯網我們可以更方便地進行辦公,也能夠在網上就能…

【Oracle 數據庫 SQL 語句 】積累1

Oracle 數據庫 SQL 語句 1、分組之后再合計2、顯示不為空的值 1、分組之后再合計 關鍵字: grouping sets ((分組字段1,分組字段2),()) select sylbdm ,count(sylbmc) a…

神經網絡基礎-神經網絡補充概念-20-激活函數

概念 激活函數是神經網絡中的一個重要組成部分,它引入了非線性性質,使得神經網絡可以學習和表示更復雜的函數關系。激活函數對于將輸入信號轉換為輸出信號起到了關鍵作用,它在神經元的計算過程中引入了非線性變換。 幾種常見的激活函數及其…

DR模式 LVS負載均衡群集

數據包流向分析: (1)客戶端發送請求到 Director Server(負載均衡器),請求的數據報文(源 IP 是 CIP,目標 IP 是 VIP)到達內核空間。 (2)Director Server 和 Re…

Docker 網絡

目錄 Docker 網絡實現原理 Docker 的網絡模式: 網絡模式詳解: 1.host模式 2.container模式 3.none模式 4.bridge模式 5.自定義網絡 Docker 網絡實現原理 Docker使用Linux橋接&#x…

Linux下如何修改CPU 電源工作模式

最近處理一起歷史遺留問題,感覺很爽。 現象: 背景:設備采用ARM,即rk3568處理器,采用Linux系統;主要用于視覺后端處理 現象:當軟件運行一段時間,大概1個小時(也不是很固定…

考研算法第46天: 字符串轉換整數 【字符串,模擬】

題目前置知識 c中的string判空 string Count; Count.empty(); //正確 Count ! null; //錯誤c中最大最小宏 #include <limits.h>INT_MAX INT_MIN 字符串使用發運算將字符加到字符串末尾 string Count; string str "liuda"; Count str[i]; 題目概況 AC代碼…

國內的PMP有多少含金量?

1.PMP是什么 PMP&#xff08;Project Management Professional&#xff09;指項目管理專業人士資格認證。它是由美國項目管理協會&#xff08;PMI&#xff09;舉辦的項目管理專業人員&#xff08;PMP&#xff09;認證考試&#xff0c;在全球190多個國家和地區推廣&#xff0c;…

vue 數字遞增(滾動從0到)

使用 html <Incremental :startVal"0" :endVal"1000" :duration"500" />js&#xff1a; import Incremental from /utils/num/numViewjs let lastTime 0 const prefixes webkit moz ms o.split( ) // 各瀏覽器前綴let requestAnimatio…

[C++] string類的介紹與構造的模擬實現,進來看吧,里面有空調

文章目錄 1、string類的出現1.1 C語言中的字符串 2、標準庫中的string類2.1 string類 3、string類的常見接口說明及模擬實現3.1 string的常見構造3.2 string的構造函數3.3 string的拷貝構造3.4 string的賦值構造 4、完整代碼 1、string類的出現 1.1 C語言中的字符串 C語言中&…

「Qt」文件讀寫操作

0、引言 我們知道 C 和 C 都提供了文件讀寫的類庫&#xff0c;不過 Qt 也有一套自己的文件讀寫操作&#xff1b;本文主要介紹 Qt 中進行文件讀寫操作的類 —— QFile。 1、QFileDialog 文件對話框 一般的桌面應用程序&#xff0c;當我們想要打開一個文件時&#xff0c;通常會彈…

php+echarts實現數據可視化實例

效果&#xff1a; 代碼&#xff1a; php <?php include(includes/session.inc); include(includes/SQL_CommonFunctions.inc); ?> <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv&quo…

OpenLayers入門,OpenLayers加載google街景地圖

專欄目錄: OpenLayers入門教程匯總目錄 前言 本章講解OpenLayers加載google街景地圖,無需科學上網,也可以正常訪問瓦片。 二、依賴和使用 "ol": "^6.15.1"使用npm安裝依賴npm install ol@6.15.1使用Yarn安裝依賴yarn add olvue中如何使用: vue項…

FastApi-1-結合sql 增/查demo

目錄 FastAPI學習記錄項目結構部分接口/代碼展示感受全部代碼 FastAPI學習記錄 fastapi已經學習有一段時間&#xff0c;今天抽時間簡單整理下。 官網介紹&#xff1a; FastAPI 是一個用于構建 API 的現代、快速&#xff08;高性能&#xff09;的 web 框架&#xff0c;使用 Py…

SpringBoot的配置文件以及日志設置

在使用SpringBoot開發的過程中我們通常會用到配置文件來設置配置信息 以及使用日志來進行記錄我們的操作&#xff0c;方便我們對錯誤的定位 配置文件的作用在于&#xff1a;設置端口&#xff0c;設置數據庫連接信息&#xff0c;設置日志等等 在SpringBoot中&#xff0c;配置…

Linux系統編程:通過System V共享內存實現進程間通信

目錄 一. 共享內存實現進程間通信的原理 二. 共享內存相關函數 2.1 共享內存的獲取 shmget / ftok 2.2 共享內存與進程地址空間相關聯 shmat 2.3 取消共享內存與進程地址空間的關聯 shmdt 2.4 刪除共享內存 shmctl 2.5 通信雙方創建共享內存代碼 三. 共享內存實現進程間…

承接各種設計

小弟985研究生畢業&#xff0c;目前攻讀讀博士&#xff0c;可做各種設計&#xff0c;包括但不限于Matlab 電力電子/電氣工程&#xff0c;matlab/simulink 電氣專業仿真MATLAB 電氣工程專業&#xff0c;matlab建模 電力電子&#xff0c;電氣工程&#xff0c;電力系統&#xff0c…

vue echarts macd指標 完整代碼

1 邏輯 給指定的series兩個對象 兩個對象有相同的xAxisIndex: 2,yAxisIndex: 2, 不同的data {name: "",type: "line",data: data1,xAxisIndex: 2,yAxisIndex: 2,},{name: "",type: "bar",data: data2,xAxisIndex: 2,yAxisIndex: 2,},…

Mac M2 Pro安裝使用Cocoapods

Mac Pro M2安裝使用Cocoapods 在新公司要做iOS開發&#xff0c;所以在新電腦上安裝Cocoapods 在升級gem&#xff0c;sudo gem update --system&#xff0c;和安裝cocoapods時都遇到如下的提示&#xff1a; ERROR: While executing gem ... (Errno::EPERM)Operation not per…

Linux下安裝nodejs

1、下載nodejs 點擊前往&#xff1a;Download | Node.js 2、解壓 tar -xvf node-v18.16.0-linux-x64.tar.xz mv node-v18.16.0-linux-x64/ /usr/local/nodejs 3、 建立軟鏈接 此時的bin文件夾中已經存在node以及npm&#xff0c;如果你進入到對應文件的中執行命令行一點問題…