以下内容来自于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》

IO和文件系统性能分析工具相关推荐

  1. sar 找出系统瓶颈的利器 目前Linux上最为全面的系统性能分析工具之一 直接 sar -dur 1 30 即可看内存 CPU和IO占用...

    12. sar 找出系统瓶颈的利器 sar是System Activity Reporter(系统活动情况报告)的缩写.sar工具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行 ...

  2. 利用shell脚本写一个系统性能分析工具

    项目实战1.系统性能分析 1.利用select循环实现系统工具箱 select格式和for格式一致,但是select 变量名 in xxx xxx都将打印成菜单 #!/bin/bash PS3=&qu ...

  3. Linux 实操 —— Linux 系统性能分析

    引言 最近配合解决压测(性能测试)方面的问题,了解到了一些可以监控 Linux 系统性能指标,如CPU.IO.内存等的工具. 此篇博客主要讲解 Linux 系统监控的一些重点内容以及 sar 命令的使 ...

  4. 服务器文件的备份工具,文件服务器备份工具

    文件服务器备份工具 内容精选 换一换 建议不要在分析任务执行过程中卸载,否则可能出现异常.没有正在运行中的任务.配置参数后单击"检测连接".若工具提示连接检测失败,可根据提示修改参 ...

  5. Android/Linux系统性能分析及工具

    1. CPU 1.1 CPU架构 CPU推动了所有软件的运行,因此通常是系统性能分析的首要目标.现代系统一般有多颗CPU,通过内核调度器共享给所有运行软件.当需求的CPU资源超过了系统力所能及的范围时 ...

  6. Web应用性能分析工具—HAR文件

    Web应用性能分析工具-HAR文件 来源 https://raynorli.com/2018/06/11/web-performance-analysis-har-file/ 客户经常有的一个问题就是 ...

  7. 系统性能分析从入门到进阶

    简介:本文以系统为中心, 结合日常工作和用例, 由浅入深地介绍了性能分析的一些方法和体会, 希望对想了解系统性能分析的同学有所帮助. 作者 | 勿非 来源 | 阿里技术公众号 本文以系统为中心, 结合 ...

  8. SAP 系统性能分析 Tcode

    原文转载 http://blog.chinaunix.net/uid-20607558-id-1916144.html  感谢原作者的总结及归纳. /nSMLT language management ...

  9. spring boot 文件上传工具类(bug 已修改)

    以前的文件上传都是之前前辈写的,现在自己来写一个,大家可以看看,有什么问题可以在评论中提出来. 写的这个文件上传是在spring boot 2.0中测试的,测试了,可以正常上传,下面贴代码 第一步:引 ...

  10. java中文件操作的工具类

    代码: package com.lky.pojo;import java.io.BufferedReader; import java.io.BufferedWriter; import java.i ...

最新文章

  1. 高性能IO设计中的Reactor模式与Proactor模式
  2. 新浪股票接口AndroidSDK
  3. Android下发布正式包注意事项
  4. java中常见的几种内部类,你会几个?(未完)
  5. php 生成验证码干扰元素,PHP生成指定位数验证码与可控干扰元素第二篇
  6. 爬山法实现 八皇后问题 (Python 实现)
  7. Bootstrap CSS 编码规范之不要使用 @import
  8. 关于svn的安装配置开启服务过程和 eclipse安装SVN插件的方法
  9. GIF 太大?用 GIFSicle
  10. 谁在使用我的网站——用户行为分析
  11. 【Linux】VMware虚拟机中如何配置静态IP
  12. easyui学习笔记3—在展开行内的增删改操作
  13. 网易教程python_麻瓜编程Python Web 开发工程师微专业基础教程 - 网易云课堂
  14. 2020年第六届 美亚杯电子取证 团体赛 wp
  15. Python网络爬虫--项目实战--scrapy爬取贝壳网
  16. 网页编程基础第一章知识点总结——Web基础知识
  17. 关于AP3211KTR-G1
  18. 什么是漏洞?最全的漏洞分类!
  19. CentOS 6.5安装Nvidia显卡驱动
  20. VPP DPDK,不是翻墙!!

热门文章

  1. Linux:openssl创建CA及颁发证书
  2. AAC 高质量编码 (ffmpeg) aac-he,aac-he-v2
  3. (更新时间)2021年3月28日 python基础知识(深拷贝和浅拷贝)
  4. python 从方差/协方差到协方差矩阵
  5. 苹果手机可以做到应用分身双开?如何在iPhone上做到同时登陆呢?
  6. PBOOTCMS城市分站分地区插件 可自定义SEO优化+添加地区 支持3.2/3.16/3.1.4
  7. PTA—包装机(队列)
  8. v$open_cursor与session_cached_cursors
  9. 前端工程师--系统学习文档
  10. IT面试:三十六计之(5)