栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 系统运维 > 运维 > Linux > Linux命令手册 > 磁盘管理

blktrace命令 – 分析磁盘IO

磁盘管理 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

blktrace命令 – 分析磁盘IO

在Linux系统上,查看磁盘的负载情况,咱们一般使用iostat监控工具。其中很重要的参数就是await,await表示单个I/O所需的平均时间,但它同时包含了I/O Scheduler所消耗的时间和硬件所消耗的时间,所以不能作为硬件性能的指标。那如何才能分辨一个io从下发到返回整个时间上,是硬件层耗时多还是在io调度上耗时多呢?如何查看io在各个时间段所消耗的时间呢?那么,blktrace在这种场合就能派上用场,因为它能记录I/O所经历的各个步骤,从中可以分析是IO Scheduler慢还是硬件响应慢,以及各个时间段所用时间。

blktrace的原理:

一个I/O请求进入block layer之后,可能会经历下面的过程:

  • Remap: 可能被DM(Device Mapper)或MD(Multiple Device, Software RAID) remap到其它设备
  • Split: 可能会因为I/O请求与扇区边界未对齐、或者size太大而被分拆(split)成多个物理I/O
  • Merge: 可能会因为与其它I/O请求的物理位置相邻而合并(merge)成一个I/O
  • 被IO Scheduler依照调度策略发送给driver
  • 被driver提交给硬件,经过HBA、电缆(光纤、网线等)、交换机(SAN或网络)、最后到达存储设备,设备完成IO请求之后再把结果发回。

语法格式:blktrace [参数]

常用参数:

-A hex-mask设置过滤信息mask成十六进制mask
-a mask添加mask到当前的过滤器
-b size指定缓存大小for提取的结果,默认为512KB
-d dev添加一个设备追踪
-k杀掉正在运行的追踪
-n num-sub指定缓冲池大小,默认为4个子缓冲区
-o file指定输出文件的名字
-r rel-path指定的debugfs挂载点
-w seconds设置运行的时间

参考实例

centos7安装blktrace(会自动生成blktrace blkparse btt 3个工具,其中,blktrace收集数据,blkparce分析数据,btt汇总数据):

[root@linuxcool ~]# yum install blktrace -y

使用blktrace需要挂载debugfs:

[root@linuxcool ~]# mount -t debugfs debugfs /sys/kernel/debug

利用blktrace查看实时数据的方法,比如要看的硬盘是sdb:

[root@linuxcool ~]# blktrace -d /dev/sdb -o – | blkparse -i –

分析磁盘/dev/sdc的IO情况:

[root@linuxcool ~]# blktrace -d /dev/sdc

生成数据: 应用结束后,手动终止监控,会生成cpu数量的文件

[root@linuxcool ~]# blkparse -i sdc -d sdc.blktrace.bin
转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/858.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号