CN108304306A - 一种基于blktrace的磁盘I/O性能故障定位分析方法 - Google Patents
一种基于blktrace的磁盘I/O性能故障定位分析方法 Download PDFInfo
- Publication number
- CN108304306A CN108304306A CN201810046301.6A CN201810046301A CN108304306A CN 108304306 A CN108304306 A CN 108304306A CN 201810046301 A CN201810046301 A CN 201810046301A CN 108304306 A CN108304306 A CN 108304306A
- Authority
- CN
- China
- Prior art keywords
- blktrace
- performance
- magnetic disc
- iops
- terminal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3485—Performance evaluation by tracing or monitoring for I/O devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2273—Test methods
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及磁盘测试分析技术领域,提供了一种基于blktrace的磁盘I/O性能故障定位分析方法,包括(10)安装和调试blktrace;(20)收集目标分区的I/O性能数据;(30)对目标分区的性能值IOPS分析;(40)确定fio访问磁盘位置轨迹图,并得出结论。本申请所要保护的方案既可以精确分析磁盘的I/O性能,也可以定位发生I/O性能故障的位置。该方法一方面丰富了I/O性能分析方法;另一方面可以定位I/O故障发生位置,可结合实际应用分析出问题产生的原因,最终减少不必要的I/O干扰,提升磁盘性能。
Description
技术领域
本发明属于磁盘测试分析技术领域,具体涉及一种基于blktrace的磁盘I/O性能故障定位分析方法。
背景技术
在Linux环境下对硬盘进行性能测试时,发现对某批硬盘的系统盘内某分区进行随机写性能测试时,性能结果几率性无法达标。对于此问题,硬盘厂商认为原因在于系统安装占据了磁盘的外圈,将该分区限制在了内圈,因此对该分区做FIO读写测试时,磁头摆距过大,磁盘性能下降。即:测试方法本身就存在问题,测试结果失真,不能反映磁盘的真实性能。
要验证硬盘厂商的观点,需要提供一种新的验证方法,能够在I/O发生性能问题时进行故障定位分析。
Blktrace一个针对Linux内核中块设备I/O的跟踪工具,是由linux内核块设备层的维护者开发的。通过这个工具,使用者可以获取I/O请求队列的各种详细的情况,包括进行读写的进程名称、进程号、执行时间、读写的物理块号、块大小等等。它可以跟踪发生在块设备层的很多事件,甚至可以做到整个块设备层事件的回放。基于此,本发明提供一种基于blktrace的磁盘I/O性能故障定位分析方法,获得I/O请求队列的各种详细情况,以便精确分析I/O性能,定位I/O性能故障位置。
发明内容
本发明的目的在于解决上述现有技术中存在的难题,提供一种基于blktrace的磁盘I/O性能故障定位分析方法。
本发明是通过以下技术方案实现的:
一种基于blktrace的磁盘I/O性能故障定位分析方法,包括:
(10)安装和调试blktrace;
(20)收集目标分区的I/O性能数据;
(30)对目标分区的性能值IOPS分析;
(40)确定fio访问磁盘位置轨迹图,并得出结论。
进一步的,所述步骤(10)包括:
(101)使用yum install blktrace–y命令安装blktrace;
(102)使用#mount-t debugfs debugfs/sys/kernel/debug命令挂载debugfs。
进一步的,所述步骤(20)包括:
(201)打开第一终端、第二终端;
(202)在第一终端运行指令启动blktrace,准备记录设备的访问模式;
(203)在第二终端运行测试应用程序;
(204)返回第一终端,终止blktrace运行,输出blktrace记录进行查看。
进一步的,所述步骤(30)包括:
(301)使用blkparse将(204)中所获得的对应不同CPU的多个文件聚合为一个文件;
(302)使用btt命令分析(301)所获得的文件中记录的IOPS值,输出IOPS分析图。
进一步的,所述步骤(40)包括:
(401)使用bbt命令分析fio访问的开始扇区(offset),得到读操作和/或写操作的offset和size信息。
(402)查看所需硬盘分区的信息情况包括时间、开始扇区和结束扇区,输出文件;
(403)根据(403)的输出文件绘制fio访问扇区的轨迹图,所分析的硬盘分区是否存在故障。
与现有技术相比,本发明的有益效果是:
本申请所设计的基于blktrace的磁盘I/O性能故障定位分析方法,既可以精确分析磁盘的I/O性能,也可以定位发生I/O性能故障的位置。该方法一方面丰富了I/O性能分析方法;另一方面可以定位I/O故障发生位置,可结合实际应用分析出问题产生的原因,最终减少不必要的I/O干扰,提升磁盘性能。
此外,本发明方法原理可靠,步骤简单,具有非常广泛的应用前景。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。
附图说明
图1是本发明实施例提供的磁盘I/O性能故障定位分析方法的流程图。
图2是本发明实施例所提供的IOPS分析图。
图3是本发明实施例所提供的fio访问扇区的轨迹图。
具体实施方式
下面结合附图对本发明作进一步详细描述:
实施例1
如图1所示,本发明所提供的一种基于blktrace的磁盘I/O性能故障定位分析方法,包括:
(10)安装和调试blktrace;
(20)收集目标分区的I/O性能数据;
(30)对目标分区的性能值IOPS分析;
(40)确定fio访问磁盘位置轨迹图,并得出结论。
在本实施例中,所述步骤(10)包括:
(101)使用yum install blktrace–y命令安装blktrace;
(102)使用#mount-t debugfs debugfs/sys/kernel/debug命令挂载debugfs。
blktrace测试的时候,会分配物理机上逻辑cpu个数个线程,并且每一个线程绑定一个逻辑cpu来收集数据,然后,它会在debugfs中产生和每个线程对应的文件,然后调用ioctl函数,产生系统调用和内核交互。内核就会往文件中写入数据。
在本实施例中,所述步骤(20)包括:
(201)打开第一终端、第二终端;
(202)在第一终端运行指令启动blktrace,准备记录设备的访问模式;
(203)在第二终端运行测试应用程序;
(204)返回第一终端,终止blktrace运行,输出blktrace记录进行查看。
在本实施例中,所述步骤(30)包括:
(301)使用blkparse将(204)中所获得的对应不同CPU的多个文件聚合为一个文件;
(302)使用btt命令分析(301)所获得的文件中记录的IOPS值,输出IOPS分析图。
blkparse仅仅是将blktrace输出的信息转化成人可以阅读和理解的输出,但是,信息太多,太杂,开发者完全没法得到关键信息。使用bbt工具可以将blktrace采集回来的数据,进行分析,得到对开发者更有用的信息。
在本实施例中,所述步骤(40)包括:
(401)使用bbt命令分析fio访问的开始扇区(offset),得到读操作和/或写操作的offset和size信息。
(402)查看所需硬盘分区的信息情况包括时间、开始扇区和结束扇区,输出文件;
(403)根据(403)的输出文件绘制fio访问扇区的轨迹图,所分析的硬盘分区是否存在故障。
在步骤(40)中,可根据开始扇区和结束山区来计算size,绘制fio访问轨迹图是根据不同时间里访问磁盘的位置及访问扇区的个数来进行的。
本申请所设计的基于blktrace的磁盘I/O性能故障定位分析方法,既可以精确分析磁盘的I/O性能,也可以定位发生I/O性能故障的位置。该方法一方面丰富了I/O性能分析方法;另一方面可以定位I/O故障发生位置,可结合实际应用分析出问题产生的原因,最终减少不必要的I/O干扰,提升磁盘性能。
实施例2
本实施例以申请人所服务客户遇到的实际情况为实施例,针对系统盘sda4分区进行4k随机读写性能测试时,性能结果机率性无法达标的情况,进行分析。
1.安装和调试blktrace;
1.1:使用yum install blktrace–y命令安装blktrace;
1.2:使用命令
#mount-t debugfs debugfs/sys/kernel/debug挂载debugfs;
2.收集目标分区的I/O性能数据;
2.1:打开两个终端,第一终端和第二终端;
2.2:在第一终端,运行命令#blktrace-d/dev/sda4-o–|blkparse-i–,启动blktrace,准备记录设备的访问模式;
2.3:在第二终端,运行以下应用程序。
2.4:回到第一终端,按CTRL+C终止blktrace的运行,缺省的输出文件名是sda4.blktrace.<cpu>,每个CPU对应输出一个文件。
在本实施例中输出格式如下:
3.对目标分区的性能值IOPS分析;4k随机读写的性能的关注指标是IOPS。以下操作是分析sda4分区randwrite-4k的IOPS值。
3.1:运行指令#blkparse–I sda4–d sda4.blktrace.bin,将对应不同cpu的多个文件聚合成一个文件
3.2:使用btt分析sda4.blktrace.bin记录的iops值;
输入指令:#btt-i sdb.blktrace.bin-q sda4.q2c_latency/*生成q2c文件(q2c:整个IO请求所消耗的时间)
后输出如下文件:
其中,sys_mbps_fs.dat中是本次统计中所有设备吞吐量,sys_iops_fp.dat中是本次统计中所有设备的IOPS,q2c.lat_8,16_q2c.dat中是每个请求的q2c的latency。
在本实施例中,我们只需关注sda4,通过sys_iops_fp.dat和sys_mbps_fp.dat指令获取对应的IOPS和MBPS信息。
而对于randwrite-4k的随机读性能,我们需要关注IOPS值,IOPS值通过以下命令获取:
#cat sys_iops_fp.dat|tee–a iops.txt
在本实施例中,iops.txt的记录结果如下:
依据iops.txt的结果,绘制iops分析图如图2所示,该图可以直观的反应IOPS的波动,也可以观测到在某一时间点的IOPS的性能值。
4.确定fio访问磁盘位置轨迹图。
4.1:使用bbt命令分析fio访问的开始扇区(offset)。
输入指令:#btt-i sda4.blktrace.bin-B sda4.offset,命令执行完毕,使用ls命令查看会得到以下三个文件
其中r表示读操作的offset和size信息,w表示写操作的offset和size信息,c表示读操作的信息和写操作的信息。
4.2:查看dsa4randwrite-4k情况
输入指令:#cat sda4.offset_8,16_w.dat
后输出如下:
其中,第一个字段是时间,第二个字段是开始扇区即offset,第三个字段为结束扇区。
4.3:绘制fio访问的扇区轨迹图
依据4.2的输出结果,绘制fio访问扇区的轨迹图如图3所示。
可以看出,fio访问的扇区大部分分布在1x108扇区号以内,sda4并没有分布在磁盘的内圈,硬盘厂商所认定的原因——测试方法有问题,不能反映磁盘的性能,是不成立的。这也意味着,sda4的4k随机写性能低由其他原因导致,这需要结合服务器的实际应用场景,对I/O性能干扰因素进行排除。分析方向可以锁定在其他因素如磁盘振动或者磁盘散热上。使用本方法,解决了最初分析方向偏离的问题,避免了大量的时间和人力浪费。
上述技术方案只是本发明的一种实施方式,对于本领域内的技术人员而言,在本发明公开了应用方法和原理的基础上,很容易做出各种类型的改进或变形,而不仅限于本发明上述具体实施方式所描述的方法,因此前面描述的方式只是优选的,而并不具有限制性的意义。
Claims (5)
1.一种基于blktrace的磁盘I/O性能故障定位分析方法,其特征在于,包括:
(10)安装和调试blktrace;
(20)收集目标分区的I/O性能数据;
(30)对目标分区的性能值IOPS分析;
(40)确定fio访问磁盘位置轨迹图,并得出结论。
2.如权利要求1所述的一种基于blktrace的磁盘I/O性能故障定位分析方法,其特征在于,所述步骤(10)包括:
(101)使用 yum install blktrace –y 命令安装blktrace;
(102)使用 #mount -t debugfs debugfs /sys/kernel/debug 命令挂载debugfs。
3.如权利要求1所述的一种基于blktrace的磁盘I/O性能故障定位分析方法,其特征在于,所述步骤(20)包括:
(201)打开第一终端、第二终端;
(202)在第一终端运行指令启动blktrace,准备记录设备的访问模式;
(203)在第二终端运行测试应用程序;
(204)返回第一终端,终止blktrace运行,输出blktrace记录进行查看。
4.如权利要求1所述的一种基于blktrace的磁盘I/O性能故障定位分析方法,其特征在于,所述步骤(30)包括:
(301)使用blkparse将(204)中所获得的对应不同CPU的多个文件聚合为一个文件;
(302)使用btt命令分析(301)所获得的文件中记录的IOPS值,输出IOPS分析图。
5.如权利要求1所述的一种基于blktrace的磁盘I/O性能故障定位分析方法,其特征在于,所述步骤(40)包括:
(401)使用bbt命令分析fio访问的开始扇区(offset),得到读操作和/或写操作的offset和size信息;
(402)查看所需硬盘分区的信息情况包括时间、开始扇区和结束扇区,输出文件;
(403)根据(403)的输出文件绘制fio访问扇区的轨迹图,所分析的硬盘分区是否存在故障。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810046301.6A CN108304306A (zh) | 2018-01-17 | 2018-01-17 | 一种基于blktrace的磁盘I/O性能故障定位分析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810046301.6A CN108304306A (zh) | 2018-01-17 | 2018-01-17 | 一种基于blktrace的磁盘I/O性能故障定位分析方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108304306A true CN108304306A (zh) | 2018-07-20 |
Family
ID=62865504
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810046301.6A Pending CN108304306A (zh) | 2018-01-17 | 2018-01-17 | 一种基于blktrace的磁盘I/O性能故障定位分析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108304306A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109448777A (zh) * | 2018-11-12 | 2019-03-08 | 郑州云海信息技术有限公司 | 一种nvme固态硬盘的测试方法及装置 |
CN110413227A (zh) * | 2019-06-22 | 2019-11-05 | 华中科技大学 | 一种硬盘设备的剩余使用寿命在线预测方法和系统 |
CN111190777A (zh) * | 2019-12-20 | 2020-05-22 | 曙光信息产业(北京)有限公司 | 一种磁盘i/o性能测试方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102750213A (zh) * | 2012-06-18 | 2012-10-24 | 深圳市锐明视讯技术有限公司 | 磁盘检测、处理方法及检测、处理系统 |
US20140095907A1 (en) * | 2012-10-01 | 2014-04-03 | College Of William And Mary | Method of Conserving Power Based on Electronic Device's I/O Pattern |
CN104503909A (zh) * | 2014-12-18 | 2015-04-08 | 浪潮(北京)电子信息产业有限公司 | 一种磁盘io性能的测试方法和装置 |
CN105068917A (zh) * | 2015-08-11 | 2015-11-18 | 浪潮(北京)电子信息产业有限公司 | 一种输入输出io特性分析方法和系统 |
-
2018
- 2018-01-17 CN CN201810046301.6A patent/CN108304306A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102750213A (zh) * | 2012-06-18 | 2012-10-24 | 深圳市锐明视讯技术有限公司 | 磁盘检测、处理方法及检测、处理系统 |
US20140095907A1 (en) * | 2012-10-01 | 2014-04-03 | College Of William And Mary | Method of Conserving Power Based on Electronic Device's I/O Pattern |
CN104503909A (zh) * | 2014-12-18 | 2015-04-08 | 浪潮(北京)电子信息产业有限公司 | 一种磁盘io性能的测试方法和装置 |
CN105068917A (zh) * | 2015-08-11 | 2015-11-18 | 浪潮(北京)电子信息产业有限公司 | 一种输入输出io特性分析方法和系统 |
Non-Patent Citations (1)
Title |
---|
企业存储技术: "blktrace分析IO", 《搜狐》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109448777A (zh) * | 2018-11-12 | 2019-03-08 | 郑州云海信息技术有限公司 | 一种nvme固态硬盘的测试方法及装置 |
CN110413227A (zh) * | 2019-06-22 | 2019-11-05 | 华中科技大学 | 一种硬盘设备的剩余使用寿命在线预测方法和系统 |
CN111190777A (zh) * | 2019-12-20 | 2020-05-22 | 曙光信息产业(北京)有限公司 | 一种磁盘i/o性能测试方法及装置 |
CN111190777B (zh) * | 2019-12-20 | 2023-12-08 | 曙光信息产业(北京)有限公司 | 一种磁盘i/o性能测试方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7797585B1 (en) | System and method for handling trace data for analysis | |
Worthington et al. | On-line extraction of SCSI disk drive parameters | |
US7243046B1 (en) | System and method for preparing trace data for analysis | |
CN102568522B (zh) | 硬盘性能的测试方法和装置 | |
CN104850480B (zh) | 高密度存储服务器硬盘性能测试的方法及装置 | |
US7464114B2 (en) | Method and apparatus to capture and transmit dense diagnostic data of a file system | |
US5953689A (en) | Benchmark tool for a mass storage system | |
CN108304306A (zh) | 一种基于blktrace的磁盘I/O性能故障定位分析方法 | |
US7461104B2 (en) | Method and system for rapid data-fragmentation analysis of a New Technology File System | |
CN115966247B (zh) | 一种zns固态硬盘性能测试方法 | |
CN110825569B (zh) | 一种硬盘稳定性测试方法及测试系统 | |
CN106126421A (zh) | 一种自动测试并对比pcie‑ssd性能的方法 | |
CN102915270B (zh) | 用于存储i/o需求录制与压力模拟验证的方法 | |
US6971046B1 (en) | System and method for performing input/output diagnostics | |
CN108563540A (zh) | 服务器与红旗操作系统兼容性测试方法、系统及存储介质 | |
CN107273251A (zh) | 一种在生产环境下Rack机柜JBOD存储的测试方法 | |
CN105138293A (zh) | 一种基于数据库的磁盘性能评估方法 | |
KR20060113551A (ko) | 하드 디스크들 상에서 발견된 결함들을 시간 상관시키기위한 방법 및 장치 | |
CN111625407B (zh) | Ssd性能测试方法及相关组件 | |
CN108038031A (zh) | 一种实时监控硬盘在线状态的方法及装置 | |
CN105446658A (zh) | 一种风扇震动对raid性能影响的分析方法 | |
CN116663490A (zh) | 一种异步存储芯片的验证方法、平台、装置及介质 | |
WO2022267438A1 (zh) | 性能参数记录方法、装置、变频器、空调设备及存储介质 | |
US20070088810A1 (en) | Apparatus, system, and method for mapping a storage environment | |
US20070028218A1 (en) | Apparatus, system, and method for a software test coverage analyzer using embedded hardware |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180720 |