CN112241394A - 一种索引节点io的统计方法、工具、设备及存储介质 - Google Patents
一种索引节点io的统计方法、工具、设备及存储介质 Download PDFInfo
- Publication number
- CN112241394A CN112241394A CN202011103401.1A CN202011103401A CN112241394A CN 112241394 A CN112241394 A CN 112241394A CN 202011103401 A CN202011103401 A CN 202011103401A CN 112241394 A CN112241394 A CN 112241394A
- Authority
- CN
- China
- Prior art keywords
- file
- index
- index node
- disk
- result
- 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.)
- Granted
Links
- 238000007619 statistical method Methods 0.000 title claims abstract description 33
- 238000000034 method Methods 0.000 claims abstract description 38
- 238000004590 computer program Methods 0.000 claims description 9
- 238000000605 extraction Methods 0.000 claims description 5
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
- G06F12/063—Address space extension for I/O modules, e.g. memory mapped I/O
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种索引节点IO的统计方法、工具、设备及存储介质,该方法包括:调用blktrace工具对进行读写的磁盘所有的IO进行捕获,将捕获结果记录到当前目录下的IOtrace文件中;遍历用户指定的目录下的所有子目录和文件,将相应的路径和索引节点编号记录到当前目录下的Index文件中;将获取的Index文件中的索引节点编号转换为磁盘物理地址;在IOtrace文件中对磁盘物理地址进行匹配,将匹配结果输出到当前目录下的Result文件中;根据Result文件和IOtrace文件,统计出索引节点的IO合并数目和索引节点IO数目在总IO数中所占的比例。这样实现对索引节点产生的磁盘IO的自动统计。
Description
技术领域
本发明涉及通信技术领域,特别是涉及一种索引节点IO的统计方法、工具、设备及存储介质。
背景技术
XFS文件系统是一种高性能的日志文件系统,是目前Linux系统中最常用的一种文件系统。在XFS文件系统中,除了对数据的保存,同时还要保存一些元数据信息,这些元数据信息作为数据的数据,主要用来表示文件在磁盘的存储位置、文件创建修改访问时间、文件访问权限等等。对于XFS文件系统来说,这些元数据信息非常重要,一旦元数据丢失,即使数据依然存在于物理设备中,这些数据也无法被访问。在元数据中有一部分数据是文件的索引节点信息。在XFS文件系统中,每一个目录和文件都有一个唯一对应的索引节点,在索引节点中,保存了这个文件或目录的一些属性信息。当读写这些文件和目录的时候,对应的索引节点也会被创建、修改或者读取,因此在用户读写目录和文件时,除了用户真实读写的数据带来的IO之外,还会产生一部分额外的IO。在真实的读写场景中,由索引节点数据产生的磁盘读写IO次数有多少,以及这部分IO占所有IO的比例是很难获取的。且在某些情况下,这些由索引节点带来的额外IO可能会很多且非常频繁,给磁盘带来了更高的读写压力。
目前,XFS文件系统中并没有提供用于统计索引节点IO的工具,如果需要统计索引节点带来的IO则需要手动进行IO的捕获和分析。这样手动统计的方式,对于少量IO操作可行,当存在成千上万的IO时,手动统计几乎不可能。
因此,如何自动对XFS文件系统的索引节点IO进行统计,是本领域技术人员亟待解决的技术问题。
发明内容
有鉴于此,本发明的目的在于提供一种索引节点IO的统计方法、工具、设备及存储介质,可以对索引节点产生的磁盘IO进行自动统计。其具体方案如下:
一种索引节点IO的统计方法,包括:
调用blktrace工具对进行读写的磁盘所有的IO进行捕获,将捕获结果记录到当前目录下的IOtrace文件中;
遍历用户指定的目录下的所有子目录和文件,将相应的路径和索引节点编号记录到当前目录下的Index文件中;
获取所述Index文件,并将所述Index文件中的索引节点编号转换为磁盘物理地址;
在所述IOtrace文件中对所述磁盘物理地址进行匹配,将匹配结果输出到当前目录下的Result文件中;
根据所述Result文件和所述IOtrace文件,统计出索引节点的IO合并数目和索引节点IO数目在总IO数中所占的比例。
优选地,在本发明实施例提供的上述索引节点IO的统计方法中,调用blktrace工具对进行读写的磁盘所有的IO进行捕获,具体包括:
解析用户传入的磁盘名参数和捕获时长参数;
根据所述磁盘名参数和捕获时长参数,调用Linux系统上的blktrace工具,以用户指定的磁盘名作为参数,对与该磁盘名对应的进行读写的磁盘在用户指定的操作时间间隔内的所有IO进行捕获。
优选地,在本发明实施例提供的上述索引节点IO的统计方法中,遍历用户指定的目录下的所有子目录和文件,将相应的路径和索引节点编号记录到当前目录下的Index文件中,具体包括:
解析用户传入的路径名参数;
根据所述路径名参数,遍历用户指定的目录下的所有子目录和文件,获取完整的目录结构、路径名和对应的索引节点编号;
将获取的所述路径名和对应的索引节点编号记录到当前目录下的Index文件中。
优选地,在本发明实施例提供的上述索引节点IO的统计方法中,将所述Index文件中的索引节点编号转换为磁盘物理地址,具体包括:
解析用户传入的磁盘名参数;
根据所述磁盘名参数,遍历所述Index文件中记录的索引节点编号,利用xfs提供的xfs_db工具查看索引节点信息;
根据索引节点的存储方式,判断该索引节点对应的是否是文件或local模式的目录;
若是,则获取索引节点编号对应的逻辑地址并转换为对应磁盘的第一物理地址,将所述第一物理地址存储添加到字典中;
若否,则除索引节点编号对应的逻辑地址之外,获取额外数据块的逻辑地址并转换为对应磁盘的第二物理地址,将所述第二物理地址存储到预先创建的sublist列表中,以及将所述sublist列表添加至所述字典中。
优选地,在本发明实施例提供的上述索引节点IO的统计方法中,所述字典的key为所述Index文件中对应索引节点的路径名,所述字典的value为该索引节点对应的磁盘的所述第一物理地址或所述sublist列表。
优选地,在本发明实施例提供的上述索引节点IO的统计方法中,在所述IOtrace文件中对所述磁盘物理地址进行匹配,将匹配结果输出到Result文件中,具体包括:
获取所述字典;
判断获取的所述字典的value是否为所述sublist列表;
若否,则在所述IOtrace文件中对所述字典的value进行匹配;
若是,则对所述sublist列表中的所有所述第二物理地址进行循环匹配;
当所述字典中所有的项均匹配完成后,将匹配结果记录到当前目录下的Result文件中。
优选地,在本发明实施例提供的上述索引节点IO的统计方法中,根据所述Result文件和所述IOtrace文件,统计出索引节点的IO合并数目和索引节点IO数目在总IO数中所占的比例,具体包括:
读取所述Result文件和所述IOtrace文件;
遍历所述Result文件,统计Result文件中出现IO合并阶段的次数作为索引节点的IO合并次数,并统计所有IO执行完成阶段出现的次数作为索引节点IO的次数;
遍历所述IOtrace文件,统计所有IO执行完成阶段出现的次数作为所有IO的次数,将索引节点IO的次数与所有IO的次数的比值作为索引节点IO数目在总IO数中所占的比例。
本发明实施例还提供了一种索引节点IO的统计工具,包括:磁盘IO捕获模块、索引提取模块、地址转换模块、匹配模块、统计输出模块;其中,
所述磁盘IO捕获模块,用于调用blktrace工具对进行读写的磁盘所有的IO进行捕获,将捕获结果记录到当前目录下的IOtrace文件中;
所述索引提取模块,用于遍历用户指定的目录下的所有子目录和文件,将相应的路径和索引节点编号记录到当前目录下的Index文件中;
所述地址转换模块,用于获取所述Index文件,并将所述Index文件中的索引节点编号转换为磁盘物理地址;
所述匹配模块,用于在所述IOtrace文件中对所述磁盘物理地址进行匹配,将匹配结果输出到当前目录下的Result文件中;
所述统计输出模块,用于根据所述Result文件和所述IOtrace文件,统计出索引节点的IO合并数目和索引节点IO数目在总IO数中所占的比例。
本发明实施例还提供了一种索引节点IO的统计设备,包括处理器和存储器,其中,所述处理器执行所述存储器中保存的计算机程序时实现如本发明实施例提供的上述索引节点IO的统计方法。
本发明实施例还提供了一种计算机可读存储介质,用于存储计算机程序,其中,所述计算机程序被处理器执行时实现如本发明实施例提供的上述索引节点IO的统计方法。
从上述技术方案可以看出,本发明所提供的一种索引节点IO的统计方法,包括:调用blktrace工具对进行读写的磁盘所有的IO进行捕获,将捕获结果记录到当前目录下的IOtrace文件中;遍历用户指定的目录下的所有子目录和文件,将相应的路径和索引节点编号记录到当前目录下的Index文件中;获取Index文件,并将Index文件中的索引节点编号转换为磁盘物理地址;在IOtrace文件中对磁盘物理地址进行匹配,将匹配结果输出到当前目录下的Result文件中;根据Result文件和IOtrace文件,统计出索引节点的IO合并数目和索引节点IO数目在总IO数中所占的比例。
本发明可以在XFS文件系统进行读写操作时,调用blktrace工具对磁盘IO进行记录,同时自动检测索引节点在磁盘的物理位置,最终根据索引节点的位置和blktrace的记录,筛选和统计出索引节点的IO次数以及索引节点IO在所有IO中所占的比例,进而实现对XFS文件系统的索引节点产生的磁盘IO的自动统计。此外,本发明还针对索引节点IO的统计方法提供了相应的工具、设备及计算机可读存储介质,进一步使得上述方法更具有实用性,该工具、设备及计算机可读存储介质具有相应的优点。
附图说明
为了更清楚地说明本发明实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的索引节点IO的统计方法的流程图;
图2为本发明实施例提供的索引节点IO的统计方法中步骤S101的流程图;
图3为本发明实施例提供的索引节点IO的统计方法中步骤S102的流程图;
图4为本发明实施例提供的索引节点IO的统计方法中步骤S103的流程图;
图5为本发明实施例提供的索引节点IO的统计方法中步骤S104的流程图;
图6为本发明实施例提供的索引节点IO的统计方法中步骤S105的流程图;
图7为本发明实施例提供的索引节点IO的统计工具的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供一种索引节点IO的统计方法,如图1所示,包括以下步骤:
S101、调用blktrace工具对进行读写的磁盘所有的IO进行捕获,将捕获结果记录到当前目录下的IOtrace文件中;需要说明的是,blktrace工具能够捕获每一个IO的流程的各个阶段并标记输出;
S102、遍历用户指定的目录下的所有子目录和文件,将相应的路径和索引节点编号记录到当前目录下的Index文件中;
S103、获取Index文件,并将Index文件中的索引节点编号转换为磁盘物理地址;
S104、在IOtrace文件中对磁盘物理地址进行匹配,将匹配结果输出到当前目录下的Result文件中;
S105、根据Result文件和IOtrace文件,统计出索引节点的IO合并数目和索引节点IO数目在总IO数中所占的比例。
在本发明实施例提供的上述索引节点IO的统计方法中,主要针对XFS文件系统索引节点带来的IO进行统计,分析由索引节点带来的IO数目在总IO数目中的比例以及索引节点IO的合并数目,具体可以在XFS文件系统进行读写操作时,调用blktrace工具对磁盘IO进行记录,同时自动检测索引节点在磁盘的物理位置,最终根据索引节点的位置和blktrace的记录,筛选和统计出索引节点的IO次数以及索引节点IO在所有IO中所占的比例,进而实现对XFS文件系统的索引节点产生的磁盘IO的自动统计。
在具体实施时,在本发明实施例提供的上述索引节点IO的统计方法中,步骤S101调用blktrace工具对进行读写的磁盘所有的IO进行捕获,将捕获结果记录到当前目录下的IOtrace文件中,如图2所示,具体可以包括:
S201、解析用户传入的磁盘名参数和捕获时长参数;
S202、根据磁盘名参数和捕获时长参数,调用Linux系统上的blktrace工具,以用户指定的磁盘名作为参数,对与该磁盘名对应的进行读写的磁盘在用户指定的操作时间间隔内的所有IO进行捕获;可以简单理解为,捕获指定磁盘IO;
S203、将捕获结果记录到当前目录下的IOtrace文件中。
在具体实施时,在本发明实施例提供的上述索引节点IO的统计方法中,步骤S102遍历用户指定的目录下的所有子目录和文件,将相应的路径和索引节点编号记录到当前目录下的Index文件中,如图3所示,具体可以包括:
S301、解析用户传入的路径名参数;
S302、根据路径名参数,遍历用户指定的目录下的所有子目录和文件,获取完整的目录结构、路径名和对应的索引节点编号;
S303、将获取的路径名和对应的索引节点编号记录到当前目录下的Index文件中。
在具体实施时,在本发明实施例提供的上述索引节点IO的统计方法中,步骤S103将Index文件中的索引节点编号转换为磁盘物理地址,如图4所示,具体可以包括:
S401、解析用户传入的磁盘名参数;
S402、根据磁盘名参数,遍历Index文件中记录的索引节点编号,利用xfs提供的xfs_db工具查看索引节点信息;
S403、根据索引节点的存储方式,判断该索引节点对应的是否是文件或local模式的目录;需要说明的是,对于文件,索引节点的存储方式只有一种,对于目录,索引节点的存储方式分为local、extents和btree模式;
若索引节点对应的是文件或者local模式的目录,则执行步骤S404至步骤S406;
S404、获取索引节点编号对应的逻辑地址;
S405、将获取的逻辑地址转换为对应磁盘的第一物理地址;
S406、将第一物理地址存储添加到字典dict中;需要注意的是,字典dict的key为Index文件中对应索引节点的路径名,字典的value为该索引节点对应的磁盘物理地址;
若索引节点是目录且为非local模式,则执行步骤S407至步骤S411;
S407、获取索引节点编号对应的逻辑地址;
S408、除索引节点编号对应的逻辑地址之外,获取额外数据块的逻辑地址;
S409、将获取的逻辑地址转换为对应磁盘的第二物理地址;
S410、将第二物理地址存储到预先创建的sublist列表中;
S411、将sublist列表添加至字典dict中;需要注意的是,以Index文件中对应的索引节点的路径名为key,sublist为value,存储到字典dict中。
S412、判断是否遍历完所有索引节点;
若是,则执行步骤S413;
S413、将字典进行输出。
在具体实施时,在本发明实施例提供的上述索引节点IO的统计方法中,步骤S104在IOtrace文件中对磁盘物理地址进行匹配,将匹配结果输出到Result文件中,如图5所示,具体可以包括:
S501、获取字典;
S502、判断获取的字典的value是否为sublist列表;
若否,则执行步骤S503和步骤S506;若是,则执行步骤S504和步骤S505;
S503、在IOtrace文件中对字典的value进行匹配,即匹配value表示的第一物理地址;
S504、对sublist列表中的所有第二物理地址进行循环匹配,即匹配列表中的第二物理地址;
S505、判断是否遍历完sublist列表;
若否,则重新执行步骤S504;若是,则执行步骤S506;
S506、判断是否遍历完字典;
若否,则重新执行步骤S502;若是,则执行步骤S507;
S507、将匹配结果记录到当前目录下的Result文件中。
在具体实施时,在本发明实施例提供的上述索引节点IO的统计方法中,步骤S105根据Result文件和IOtrace文件,统计出索引节点的IO合并数目和索引节点IO数目在总IO数中所占的比例,如图6所示,具体可以包括:
S601、读取Result文件和IOtrace文件;
S602、遍历Result文件,统计Result文件中出现IO合并阶段的次数作为索引节点的IO合并次数,并统计所有IO执行完成阶段出现的次数作为索引节点IO的次数;
S603、遍历IOtrace文件,统计所有IO执行完成阶段出现的次数作为所有IO的次数,将索引节点IO的次数与所有IO的次数的比值作为索引节点IO数目在总IO数中所占的比例。
在实际应用中,遍历Result文件,Result文件是blktrace工具的输出,其中对每个IO的阶段都有记录,标记为M的阶段为IO合并阶段,标记为C的阶段为IO执行完成阶段。统计Result文件中出现M阶段的次数即为索引节点的IO合并次数Mergecount,统计所有C阶段出现的次数即为索引节点IO的次数Indexcount。遍历IOtrace文件,统计所有C阶段出现的次数即为所有IO的次数count,计算ratio=Indexcount/count即为索引节点IO数目在总IO数中所占的比例,最后可以将count、Indexcount、Mergecount、ratio打印显示出来。
基于同一发明构思,本发明实施例还提供了一种索引节点IO的统计工具,由于该工具解决问题的原理与前述一种索引节点IO的统计方法相似,因此该工具的实施可以参见索引节点IO的统计方法的实施,重复之处不再赘述。
在具体实施时,本发明实施例提供的索引节点IO的统计工具,如图7所示,具体包括:磁盘IO捕获模块11、索引提取模块12、地址转换模块13、匹配模块14、统计输出模块15;其中,
磁盘IO捕获模块11,用于调用blktrace工具对进行读写的磁盘所有的IO进行捕获,将捕获结果记录到当前目录下的IOtrace文件中;
索引提取模块12,用于遍历用户指定的目录下的所有子目录和文件,将相应的路径和索引节点编号记录到当前目录下的Index文件中;
地址转换模块13,用于获取Index文件,并将Index文件中的索引节点编号转换为磁盘物理地址;
匹配模块14,用于在IOtrace文件中对磁盘物理地址进行匹配,将匹配结果输出到当前目录下的Result文件中;
统计输出模块15,用于根据Result文件和IOtrace文件,统计出索引节点的IO合并数目和索引节点IO数目在总IO数中所占的比例。
在本发明实施例提供的上述索引节点IO的统计工具中,主要由磁盘IO捕获模块、索引提取模块、地址转换模块、匹配模块、统计输出模块这五部分构成,磁盘IO捕获模块的主要工作是捕获磁盘IO,索引提取模块的主要工作是获取目录下所有子目录和文件的索引节点号,地址转换模块的主要工作是将索引节点号转换为对应磁盘的物理地址,匹配模块的主要工作是遍历地址转换模块输出的字典,统计输出模块的主要工作是读取Result文件和IOtrace文件并统计相关结果,这样通过上述五个模块的相互作用,可以在XFS文件系统进行读写操作时,实现对XFS文件系统的索引节点产生的磁盘IO的自动统计。
关于上述各个模块更加具体的工作过程可以参考前述实施例公开的相应内容,在此不再进行赘述。
相应的,本发明实施例还公开了一种索引节点IO的统计设备,包括处理器和存储器;其中,处理器执行存储器中保存的计算机程序时实现前述实施例公开的索引节点IO的统计方法。
关于上述方法更加具体的过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
进一步的,本发明还公开了一种计算机可读存储介质,用于存储计算机程序;计算机程序被处理器执行时实现前述公开的索引节点IO的统计方法。
关于上述方法更加具体的过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的工具、设备、存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
本发明实施例提供的一种索引节点IO的统计方法,包括:调用blktrace工具对进行读写的磁盘所有的IO进行捕获,将捕获结果记录到当前目录下的IOtrace文件中;遍历用户指定的目录下的所有子目录和文件,将相应的路径和索引节点编号记录到当前目录下的Index文件中;获取Index文件,并将Index文件中的索引节点编号转换为磁盘物理地址;在IOtrace文件中对磁盘物理地址进行匹配,将匹配结果输出到当前目录下的Result文件中;根据Result文件和IOtrace文件,统计出索引节点的IO合并数目和索引节点IO数目在总IO数中所占的比例。通过上述方法,在XFS文件系统进行读写操作时,能够调用blktrace工具对磁盘IO进行记录,同时自动检测索引节点在磁盘的物理位置,最终根据索引节点的位置和blktrace的记录,筛选和统计出索引节点的IO次数以及索引节点IO在所有IO中所占的比例,进而实现对XFS文件系统的索引节点产生的磁盘IO的自动统计。此外,本发明还针对索引节点IO的统计方法提供了相应的工具、设备及计算机可读存储介质,进一步使得上述方法更具有实用性,该工具、设备及计算机可读存储介质具有相应的优点。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的索引节点IO的统计方法、工具、设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种索引节点IO的统计方法,其特征在于,包括:
调用blktrace工具对进行读写的磁盘所有的IO进行捕获,将捕获结果记录到当前目录下的IOtrace文件中;
遍历用户指定的目录下的所有子目录和文件,将相应的路径和索引节点编号记录到当前目录下的Index文件中;
获取所述Index文件,并将所述Index文件中的索引节点编号转换为磁盘物理地址;
在所述IOtrace文件中对所述磁盘物理地址进行匹配,将匹配结果输出到当前目录下的Result文件中;
根据所述Result文件和所述IOtrace文件,统计出索引节点的IO合并数目和索引节点IO数目在总IO数中所占的比例。
2.根据权利要求1所述的索引节点IO的统计方法,其特征在于,调用blktrace工具对进行读写的磁盘所有的IO进行捕获,具体包括:
解析用户传入的磁盘名参数和捕获时长参数;
根据所述磁盘名参数和捕获时长参数,调用Linux系统上的blktrace工具,以用户指定的磁盘名作为参数,对与该磁盘名对应的进行读写的磁盘在用户指定的操作时间间隔内的所有IO进行捕获。
3.根据权利要求1所述的索引节点IO的统计方法,其特征在于,遍历用户指定的目录下的所有子目录和文件,将相应的路径和索引节点编号记录到当前目录下的Index文件中,具体包括:
解析用户传入的路径名参数;
根据所述路径名参数,遍历用户指定的目录下的所有子目录和文件,获取完整的目录结构、路径名和对应的索引节点编号;
将获取的所述路径名和对应的索引节点编号记录到当前目录下的Index文件中。
4.根据权利要求1所述的索引节点IO的统计方法,其特征在于,将所述Index文件中的索引节点编号转换为磁盘物理地址,具体包括:
解析用户传入的磁盘名参数;
根据所述磁盘名参数,遍历所述Index文件中记录的索引节点编号,利用xfs提供的xfs_db工具查看索引节点信息;
根据索引节点的存储方式,判断该索引节点对应的是否是文件或local模式的目录;
若是,则获取索引节点编号对应的逻辑地址并转换为对应磁盘的第一物理地址,将所述第一物理地址存储添加到字典中;
若否,则除索引节点编号对应的逻辑地址之外,获取额外数据块的逻辑地址并转换为对应磁盘的第二物理地址,将所述第二物理地址存储到预先创建的sublist列表中,以及将所述sublist列表添加至所述字典中。
5.根据权利要求4所述的索引节点IO的统计方法,其特征在于,所述字典的key为所述Index文件中对应索引节点的路径名,所述字典的value为该索引节点对应的磁盘的所述第一物理地址或所述sublist列表。
6.根据权利要求5所述的索引节点IO的统计方法,其特征在于,在所述IOtrace文件中对所述磁盘物理地址进行匹配,将匹配结果输出到Result文件中,具体包括:
获取所述字典;
判断获取的所述字典的value是否为所述sublist列表;
若否,则在所述IOtrace文件中对所述字典的value进行匹配;
若是,则对所述sublist列表中的所有所述第二物理地址进行循环匹配;
当所述字典中所有的项均匹配完成后,将匹配结果记录到当前目录下的Result文件中。
7.根据权利要求1至6任一项所述的索引节点IO的统计方法,其特征在于,根据所述Result文件和所述IOtrace文件,统计出索引节点的IO合并数目和索引节点IO数目在总IO数中所占的比例,具体包括:
读取所述Result文件和所述IOtrace文件;
遍历所述Result文件,统计Result文件中出现IO合并阶段的次数作为索引节点的IO合并次数,并统计所有IO执行完成阶段出现的次数作为索引节点IO的次数;
遍历所述IOtrace文件,统计所有IO执行完成阶段出现的次数作为所有IO的次数,将索引节点IO的次数与所有IO的次数的比值作为索引节点IO数目在总IO数中所占的比例。
8.一种索引节点IO的统计工具,其特征在于,包括:磁盘IO捕获模块、索引提取模块、地址转换模块、匹配模块、统计输出模块;其中,
所述磁盘IO捕获模块,用于调用blktrace工具对进行读写的磁盘所有的IO进行捕获,将捕获结果记录到当前目录下的IOtrace文件中;
所述索引提取模块,用于遍历用户指定的目录下的所有子目录和文件,将相应的路径和索引节点编号记录到当前目录下的Index文件中;
所述地址转换模块,用于获取所述Index文件,并将所述Index文件中的索引节点编号转换为磁盘物理地址;
所述匹配模块,用于在所述IOtrace文件中对所述磁盘物理地址进行匹配,将匹配结果输出到当前目录下的Result文件中;
所述统计输出模块,用于根据所述Result文件和所述IOtrace文件,统计出索引节点的IO合并数目和索引节点IO数目在总IO数中所占的比例。
9.一种索引节点IO的统计设备,其特征在于,包括处理器和存储器,其中,所述处理器执行所述存储器中保存的计算机程序时实现如权利要求1至7任一项所述的索引节点IO的统计方法。
10.一种计算机可读存储介质,其特征在于,用于存储计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的索引节点IO的统计方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011103401.1A CN112241394B (zh) | 2020-10-15 | 2020-10-15 | 一种索引节点io的统计方法、工具、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011103401.1A CN112241394B (zh) | 2020-10-15 | 2020-10-15 | 一种索引节点io的统计方法、工具、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112241394A true CN112241394A (zh) | 2021-01-19 |
CN112241394B CN112241394B (zh) | 2022-08-02 |
Family
ID=74168628
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011103401.1A Active CN112241394B (zh) | 2020-10-15 | 2020-10-15 | 一种索引节点io的统计方法、工具、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112241394B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113590088A (zh) * | 2021-07-21 | 2021-11-02 | 上海淇玥信息技术有限公司 | 一种自动分析组件使用情况的方法、装置和电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105068917A (zh) * | 2015-08-11 | 2015-11-18 | 浪潮(北京)电子信息产业有限公司 | 一种输入输出io特性分析方法和系统 |
CN105830059A (zh) * | 2014-11-28 | 2016-08-03 | 华为技术有限公司 | 文件访问方法、装置及存储设备 |
US20190042464A1 (en) * | 2017-06-30 | 2019-02-07 | Western Digital Technologies, Inc | Address range mapping for storage devices |
CN109800179A (zh) * | 2019-01-31 | 2019-05-24 | 维沃移动通信有限公司 | 获取数据的方法、发送数据的方法、主机和内嵌式存储器 |
CN109885257A (zh) * | 2019-01-31 | 2019-06-14 | 维沃移动通信有限公司 | 一种磁盘文件读写方法及装置 |
CN110352410A (zh) * | 2016-09-29 | 2019-10-18 | 华睿泰科技有限责任公司 | 跟踪索引节点的访问模式以及预提取索引节点 |
CN111190777A (zh) * | 2019-12-20 | 2020-05-22 | 曙光信息产业(北京)有限公司 | 一种磁盘i/o性能测试方法及装置 |
-
2020
- 2020-10-15 CN CN202011103401.1A patent/CN112241394B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105830059A (zh) * | 2014-11-28 | 2016-08-03 | 华为技术有限公司 | 文件访问方法、装置及存储设备 |
CN105068917A (zh) * | 2015-08-11 | 2015-11-18 | 浪潮(北京)电子信息产业有限公司 | 一种输入输出io特性分析方法和系统 |
CN110352410A (zh) * | 2016-09-29 | 2019-10-18 | 华睿泰科技有限责任公司 | 跟踪索引节点的访问模式以及预提取索引节点 |
US20190042464A1 (en) * | 2017-06-30 | 2019-02-07 | Western Digital Technologies, Inc | Address range mapping for storage devices |
CN109800179A (zh) * | 2019-01-31 | 2019-05-24 | 维沃移动通信有限公司 | 获取数据的方法、发送数据的方法、主机和内嵌式存储器 |
CN109885257A (zh) * | 2019-01-31 | 2019-06-14 | 维沃移动通信有限公司 | 一种磁盘文件读写方法及装置 |
CN111190777A (zh) * | 2019-12-20 | 2020-05-22 | 曙光信息产业(北京)有限公司 | 一种磁盘i/o性能测试方法及装置 |
Non-Patent Citations (2)
Title |
---|
沈玉良等: "一种基于虚拟机的高效磁盘I/O特征分析方法", 《软件学报》 * |
焦利宝等: "浅谈XFS文件系统", 《电子商务》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113590088A (zh) * | 2021-07-21 | 2021-11-02 | 上海淇玥信息技术有限公司 | 一种自动分析组件使用情况的方法、装置和电子设备 |
CN113590088B (zh) * | 2021-07-21 | 2023-07-21 | 上海淇玥信息技术有限公司 | 一种自动分析组件使用情况的方法、装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112241394B (zh) | 2022-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108847977B (zh) | 一种业务数据的监控方法、存储介质和服务器 | |
CN110134653B (zh) | 一种利用日志辅助数据库审计方法及系统 | |
US20140244582A1 (en) | Apparatus and Methods for Selective Location and Duplication of Relevant Data | |
CN110716739A (zh) | 一种代码变更信息统计方法、系统和可读存储介质 | |
CN112241394B (zh) | 一种索引节点io的统计方法、工具、设备及存储介质 | |
CN109902070B (zh) | 一种面向WiFi日志数据的解析存储搜索方法 | |
CN114925041A (zh) | 一种数据查询方法及装置 | |
CN110969547A (zh) | 一种文本生成方法及装置 | |
CN111176901B (zh) | 一种hdfs删除文件恢复方法、终端设备及存储介质 | |
CN111782589A (zh) | 一种用于操作历史重现的数据模型的构建方法及系统 | |
CN112527640A (zh) | 缺陷数据可视化处理方法、系统、装置及可读存储介质 | |
CN111078753A (zh) | 基于HBase数据库的时序数据的存储方法及装置 | |
CN111045994A (zh) | 一种基于kv数据库的文件分类检索方法及系统 | |
Park et al. | Advanced forensic procedure for the authentication of audio recordings generated by voice memos application of iOS14 | |
CN107315806B (zh) | 一种基于文件系统的嵌入式存储方法和装置 | |
CN110187385B (zh) | 地震数据获取方法、地震数据处理方法及装置 | |
CN106897465B (zh) | 一种文件审计方法及系统 | |
CN111984600A (zh) | 一种文件聚合方法、装置、设备及可读存储介质 | |
CN112612805A (zh) | 一种hbase数据索引到查询引擎的方法和相关装置 | |
CN117575172B (zh) | 一种多层级统分结合的一体化社会治理信息化系统 | |
CN113392628A (zh) | 一种文本解析结果的核查方法及装置 | |
CN117389980B (zh) | 日志文件分析方法及装置、计算机设备和可读存储介质 | |
Booker | Data Carving Against Known File Obfuscation Techniques: A Proposed Data Carving Algorithm | |
CN112380174B (zh) | 含删除文件的xfs文件系统解析方法、终端设备及存储介质 | |
CN117632876B (zh) | 基于gpfs文件系统的文件和目录统计分析方法及装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |