0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Linux磁盘I/O的性能指标和查看性能工具

马哥Linux运维 来源:CSDN技术社区 作者:CSDN技术社区 2022-05-14 15:21 次阅读

在我之前的文章:《探讨 Linux 的磁盘 I/O》中,我谈到了 Linux 磁盘 I/O 的工作原理,我们了解到 Linux 存储系统 I/O 栈由文件系统层(file system layer)通用块层( general block layer)设备层(device layer)构成。

其中,通用块层是 Linux 磁盘 I/O 的核心。向上,它为访问文件系统和应用程序的块设备提供了标准接口;向下,它将各种异构磁盘设备抽象为一个统一的块设备,并响应文件系统和应用程序发送的 I/O。

在本文中,我们来看看磁盘的性能指标以及如何查看这些指标。

Linux 磁盘性能指标

在衡量磁盘性能时,我们经常提到五个常见指标:利用率、饱和度、IOPS、吞吐量和响应时间。这五个指标是衡量磁盘性能的基本指标。

  1. 利用率(Utilization):磁盘处理 I/O 的时间百分比。过度使用(如超过 80%)通常意味着磁盘 I/O 存在性能瓶颈。

  2. 饱和度(Saturation):指磁盘处理 I/O 的繁忙程度。过度饱和意味着磁盘存在严重的性能瓶颈。当饱和度为 100% 时,磁盘无法接受新的 I/O 请求。

  3. IOPS(Input/Output Per Second):指每秒 I/O 请求的数量。

  4. 吞吐量(Throughput):每秒 I/O 请求的大小。

  5. 响应时间(Response time):指发送 I/O 请求和接收响应之间的间隔时间。

这里需要注意的是,关于利用率,我们只考虑有无 I/O,而不考虑 I/O 的大小。也就是说,当利用率为 100% 时,磁盘仍有可能接受新的 I/O 请求。

一般来说,在为应用选择服务器时,首先要对磁盘的 I/O 性能进行基准测试,这样才能准确评估磁盘性能,以判断是否能够满足应用的需求。

当然,这需要你在随机读顺序读随机写顺序写等各种应用场景下测试不同 I/O 大小(通常是 512B ~ 1MB 之间)的性能。

磁盘 I/O 观察

首先要观察的是每个磁盘的使用情况。iostat 是最常用的磁盘 I/O 性能观察工具。它提供了各种常用性能指标,例如每个磁盘的利用率IOPS吞吐量。当然,这些指标实际上来自 /proc/diskstats

以下是 iostat 的输出示例:

#-d-xmeansdisplayalldiskI/Operformance
$iostat-d-x1
Devicer/sw/srkB/swkB/srrqm/swrqm/s%rrqm%wrqmr_awaitw_awaitaqu-szrareq-szwareq-szsvctm%util
loop00.000.000.000.000.000.000.000.000.000.000.000.000.000.000.00
loop10.000.000.000.000.000.000.000.000.000.000.000.000.000.000.00
sda0.000.000.000.000.000.000.000.000.000.000.000.000.000.000.00
sdb0.000.000.000.000.000.000.000.000.000.000.000.000.000.000.00

在上述指标中,您需要注意的是:

  • %util 是我们前面提到的磁盘 I/O 使用情况

  • r/sw/s 是 IOPS

  • rkB/swkB/s 是吞吐量

  • r_awaitw_await 是响应时间

您可能已经注意到 iostat 不能直接获取磁盘的饱和度。事实上,通常没有什么简单的方法可以测量饱和度。但是,您可以将观察到的平均请求队列长度完成读写请求的等待时间基准测试(例如通过 fio)的结果进行比较,以综合评估磁盘饱和度。

进程 I/O 观察

除了每个磁盘的 I/O 情况,每个进程的 I/O 情况也是大家关注的重点。

上面提到的 iostat 只提供了观察磁盘的整体 I/O 性能数据。缺点是无法知道哪些进程正在读写磁盘。要观察进程的 I/O,还可以使用 pidstatiotop 工具。

例如,要使用 pidstat

$pidstat-d1
1351UIDPIDkB_rd/skB_wr/skB_ccwr/siodelayCommand
13521029160.004.000.000rsyslogd

pidstat 的输出可以看出,它可以实时查看每个进程的 I/O 情况,这包括以下内容:

  • 用户 ID (UID) 和进程 ID (PID)。

  • 每秒读取的数据大小 (kB_rd/s),以 KB 为单位。

  • 每秒发出的写请求数据的大小(kB_wr/s),单位为KB。

  • 每秒取消写入请求的数据大小 (kB_ccwr/s),以 KB 为单位。

  • 块 I/O 延迟 (iodelay),包括等待同步块(synchronized block)I/O 和换入块(swap-in block)I/O 完成的时间,以时钟周期为单位。

除了使用 pidstat 实时查看进程磁盘 I/O 外,还有一个磁盘性能分析的常用方法是根据 I/O 大小对进程进行排序。为此,我推荐 iotop 工具。它是一个类似于 top 的工具,您可以按 I/O 大小对进程进行排序,并找到具有更大 I/O 的进程。

$iotop
TotalDISKREAD:0.00B/s|TotalDISKWRITE:7.85K/s
ActualDISKREAD:0.00B/s|ActualDISKWRITE:0.00B/s
TIDPRIOUSERDISKREADDISKWRITESWAPINIO>COMMAND
15055be/3root0.00B/s7.85K/s0.00%0.00%systemd-journald

从该输出可以看到,前两行分别代表进程的磁盘读写总大小磁盘的实际读写总大小。由于缓存缓冲区I/O 合并等因素,它们可能不相等。

剩下的部分从各个角度代表了进程的 I/O 情况,包括 线程 IDI/O 优先级每秒磁盘读取大小每秒磁盘写入大小换入百分比等待 I/O 时钟百分比

结论

在本文中,我介绍了 Linux 磁盘 I/O 的性能指标和查看性能工具。我们通常使用 IOPS吞吐量利用率饱和度响应时间等几个指标来评估磁盘的 I/O 性能。

可以使用 iostat 获取磁盘的 I/O 情况,也可以使用 pidstatiotop 等观察进程的 I/O 情况。但在分析这些性能指标时,要注意结合读写比率I/O 类型I/O 大小等综合分析。

原文标题:如何监测 Linux 的磁盘 I/O 性能

文章出处:【微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11219

    浏览量

    208872
  • 磁盘
    +关注

    关注

    1

    文章

    365

    浏览量

    25174
  • 性能指标
    +关注

    关注

    0

    文章

    14

    浏览量

    7892

原文标题:如何监测 Linux 的磁盘 I/O 性能

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    性能指标测试

    性能指标测试
    发表于 08-17 14:51

    系统时间响应的性能指标

    控制系统性能的评价分为动态性能指标和稳态性能指标两类.为了求解系统时间响应,必须了解输入信号(即外作用)的解析表达式。然而,在一般情况下,控制系统的外加输入信号具有随机性而无法预先确定,因此需要选择
    发表于 10-12 09:49

    ML无线音响性能指标

    ML无线音响性能指标 Model NO.  MLT/R Audio Technique  4:1 compression Audio Input  USB,I
    发表于 04-11 10:30 1445次阅读

    频率响应法-- 频域性能指标和时域性能指标的关系

    频率响应法-- 频域性能指标和时域性能指标的关系  频域性能指标和时域性能指标的关系
    发表于 07-27 14:28 1.2w次阅读
    频率响应法-- 频域<b class='flag-5'>性能指标</b>和时域<b class='flag-5'>性能指标</b>的关系

    传感器性能指标

    传感器-性能指标        
    发表于 11-07 09:31 2932次阅读

    放大电路的性能指标

    放大电路的性能指标 性能指标可以分为三种类型: 第一种是对应于一个赋值已定,频率已定的信号输入时的性能,这是放大电路的基
    发表于 12-14 10:58 1.5w次阅读

    比较器的性能指标/分类/应用

    比较器的性能指标/分类/应用 比较器 - 性能指标  滞回电压:比较器两个输入端之间的电压在过零时输出状态将发生改变,由于
    发表于 03-22 13:53 1864次阅读

    检测系统的性能指标

    2.1 静态特性及性能指标 2.1.1 静态特性 2.1.2 静态性能指标 2.2 动态特性及性能指标 2.2.1 传递函数 2.2.2 阶跃响应和时域动态性能指标 2.2.3 正弦响
    发表于 03-13 20:15 0次下载

    硬盘性能指标概述

    硬盘性能指标概述,硬盘的主要性能指标包括主轴转速,外部数据传输率,最大内部数据传输率,高速缓存等性能指标
    发表于 05-03 17:59 5101次阅读

    动态性能指标定义

    动态性能指标定义
    发表于 12-30 15:04 0次下载

    计算机的主要性能指标

    本视频主要详细介绍了计算机的主要性能指标,分别是运算速度、字长、内存储器的容量、外存储器的容量、I/O的速度、显存、硬盘转速以及主频。
    的头像 发表于 12-25 16:05 18.1w次阅读

    电气性能指标的具体分析

    1.2电气性能指标
    的头像 发表于 04-22 06:37 6673次阅读
    电气<b class='flag-5'>性能指标</b>的具体分析

    数控机床的规格和性能指标

    数控机床主要性能指标包括:定位精度、移动精度、主轴控制、运动性能四项性能指标
    发表于 05-30 14:52 1.1w次阅读

    电缆性能指标测试方法

    熟悉电缆电性能指标种类及定义; 掌握电缆电性能指标的测试方法; 建立电缆重要性能指标的检验常态化机制。
    发表于 06-22 10:19 15次下载

    瞬态响应的性能指标包括哪些

    瞬态响应性能指标是衡量电子系统、电路或信号处理系统在响应瞬态输入信号时的性能指标。这些指标对于确保系统在实际应用中的稳定性、可靠性和性能至关重要。 瞬态响应的定义 瞬态响应是指系统在受
    的头像 发表于 07-29 11:11 848次阅读