CN114706719A - 一种基于fio测试工具的磁盘测试方法及装置 - Google Patents
一种基于fio测试工具的磁盘测试方法及装置 Download PDFInfo
- Publication number
- CN114706719A CN114706719A CN202210508602.2A CN202210508602A CN114706719A CN 114706719 A CN114706719 A CN 114706719A CN 202210508602 A CN202210508602 A CN 202210508602A CN 114706719 A CN114706719 A CN 114706719A
- Authority
- CN
- China
- Prior art keywords
- test
- disk
- tested
- write
- read
- 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
Images
Classifications
-
- 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/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/2221—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test input/output devices or peripheral units
-
- 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/2268—Logging of test results
-
- 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
-
- 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/2289—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by configuration test
-
- 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/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本申请提供了一种基于FIO测试工具的磁盘测试方法及装置,其中,该方法包括:接收在人机交互界面上输入的针对服务器中的待测试磁盘的测试参数;在第一目标文件夹下创建与多个文件块大小对应的多个测试文件夹;使用磁盘标识、可用线程数和多个测试文件夹的存储路径,分别更新基准运行脚本中的测试磁盘标志位、可用线程数标志位和测试数据读写路径,以获得测试运行脚本;判断磁盘标识所指示的待测试磁盘是否包括服务器的系统盘;若待测试磁盘不包括系统盘,则运行测试运行脚本对待测试磁盘进行磁盘读写测试,生成待检测磁盘的磁盘测试结果。达到根据人机交互界面上的测试参数的输入,快速、准确、安全地对待检测磁盘进行测试的效果。
Description
技术领域
本申请涉及服务器测试技术领域,具体而言,涉及一种基于FIO测试工具的磁盘测试方法及装置。
背景技术
目前,随着存储服务器的发展,对存储服务器的硬件要求不断增加。随着CPU,内存,总线性能的提升,磁盘性能成为制约读写速率的关键,对磁盘性能的测试也越来越重要。目前对磁盘性能进行测试的方法有以下两种:
第一种对磁盘性能进行测试的方法为,手动进行测试命令输入,而手动进行命令输入的方法不仅耗时长,工作繁琐且容易在人工输入命令时出现错误,对磁盘造成损坏。
第二种对磁盘性能进行测试的方法为,根据预设脚本和配置文件自动执行磁盘检测。这种方法虽然不会出现命令出现错误,但无法对预设的脚本和配置文件进行修改,且存在对系统盘的误判风险,容易造成系统崩溃等一系列问题。
发明内容
有鉴于此,本申请的目的在于提供一种基于FIO测试工具的磁盘测试方法及装置,能够通过在人机界面上输入多种测试参数更新运行脚本,并对系统盘进行判断的方法解决现有技术中存在的在无法对运行脚本中的命令进行修改和手动修改容易出现错误以及容易对系统盘造成误检测的问题,达到快速、准确、安全地对待检测磁盘进行测试的效果。
第一方面,本申请实施例提供了一种基于FIO测试工具的磁盘测试方法,所述磁盘测试方法包括:接收在人机交互界面上输入的针对服务器中的待测试磁盘的测试参数,所述测试参数包括用于指示待测试磁盘的磁盘标识、针对待测试磁盘进行磁盘测试时的可用线程数和进行磁盘测试时所使用的文件块的多个文件块大小;在第一目标文件夹下创建与所述多个文件块大小对应的多个测试文件夹,所述第一目标文件夹为用于存储基准配置文件的文件夹;使用所述磁盘标识、可用线程数和所述多个测试文件夹的存储路径,分别更新基准运行脚本中的测试磁盘标志位、可用线程数标志位和测试数据读写路径,以获得测试运行脚本;判断磁盘标识所指示的待测试磁盘是否包括服务器的系统盘;若所述待测试磁盘不包括系统盘,则运行所述测试运行脚本对所述待测试磁盘进行磁盘读写测试,生成所述待检测磁盘的磁盘测试结果。
可选地,所述待测试磁盘包括多个,所述磁盘测试结果包括针对多个待测试磁盘的多个磁盘测试结果,其中,所述磁盘测试方法还包括:根据所述测试运行脚本中的测试磁盘标志位,对所述多个磁盘测试结果进行归类;将归类后的所述多个磁盘测试结果,存储至预设的目标存储路径下的第一目标文件夹中;针对每个磁盘测试结果,对与该磁盘测试结果对应的待测试磁盘的读写运行参数进行修改。
可选地,所述基准运行脚本包括以下项中的至少一个单个测试项:顺序读测试、顺序写测试、随机读测试、随机写测试,所述基准运行脚本还记载了进行磁盘测试时所使用的文件块的数量,每个文件块对应的文件块大小是不同的,其中,通过以下方式接收所述多个文件块大小:根据所述基准运行脚本中记载的文件块的数量,在所述人机交互界面上显示与所述数量对应的文件块大小输入框;针对每个文件块大小输入框,根据在该文件块大小输入框内输入的数值,确定与该文件块大小输入框对应的文件块的文件块大小。
可选地,所述基准运行脚本还包括用于混合读写测试的混合测试项,所述磁盘测试方法还包括:根据所述基准运行脚本中的混合测试项,在所述人机交互界面上显示混合读写比例输入框;接收在所述混合读写比例输入框内输入的比例值,所述比例值用于表征每个单个测试项对应的测试数据与混合读写测试的总测试数量的占比;根据所述比例值,更新所述测试运行脚本中的混合读写测试对应的单项混合读写比例。
可选地,待测试磁盘包括磁盘缓存,所述待测试磁盘在进行顺序读测试或随机读测试时,所述测试运行脚本从待检测磁盘中读取的数据存储至磁盘缓存中,再通过磁盘缓存将读取数据存储至与磁盘测试项对应的测试数据存储文件块中,其中,运行所述测试运行脚本对所述待测试磁盘进行磁盘读写测试的步骤包括:判断所述测试运行脚本是否运行完成顺序读测试或随机读测试;若所述测试运行脚本运行完成顺序读测试或随机读测试,则清除磁盘缓存中的数据;若所述测试运行脚本未运行完成顺序读测试或随机读测试,则停止执行测试运行脚本。
可选地,所述待测试磁盘在进行顺序写测试或随机写测试时,所述测试运行脚本从与磁盘测试项对应的测试数据存储文件块中读取数据存储至磁盘缓存中,再将磁盘缓存中存储的所述数据存储至待检测磁盘中,其中,运行所述测试运行脚本对所述待测试磁盘进行磁盘读写测试的步骤包括:判断所述测试运行脚本是否运行完成顺序写测试或随机写测试;若所述测试运行脚本运行完成顺序写测试或随机读写测试,则清除磁盘缓存中的数据;若所述测试运行脚本未运行完成顺序写测试或随机写测试,则停止执行测试运行脚本。
可选地,对所述测试运行脚本的磁盘测试进程进行日志记录,并将所述日志记录存储至预设的日志存储路径下的第二目标文件夹中。
第二方面,本申请实施例还提供了一种基于FIO测试工具的磁盘测试装置,所述装置包括:
测试参数接收模块,用于接收在人机交互界面上输入的针对服务器中的待测试磁盘的测试参数,所述测试参数包括用于指示待测试磁盘的磁盘标识、针对待测试磁盘进行磁盘测试时的可用线程数和进行磁盘测试时所使用的文件块的多个文件块大小;
文件块创建模块,用于在第一目标文件夹下创建与所述多个文件块大小对应的多个测试文件夹,所述第一目标文件夹为用于存储基准配置文件的文件夹;
基准运行脚本更新模块,用于使用所述磁盘标识、可用线程数和所述多个测试文件夹的存储路径,分别更新基准运行脚本中的测试磁盘标志位、可用线程数标志位和测试数据读写路径,以获得测试运行脚本;
系统盘判断模块,用于判断磁盘标识所指示的待测试磁盘是否包括服务器的系统盘;
磁盘读写测试模块,用于若所述待测试磁盘不包括系统盘,则运行所述测试运行脚本对所述待测试磁盘进行磁盘读写测试,生成所述待检测磁盘的磁盘测试结果。
第三方面,本申请实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如上述的基于FIO测试工具的磁盘测试方法的步骤。
第四方面,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上述的基于FIO测试工具的磁盘测试方法的步骤。
本申请实施例提供的一种基于FIO测试工具的磁盘测试方法及装置,能够通过在人机界面上输入多种测试参数更新运行脚本和配置文件,并对系统盘进行判断。解决了现有技术中存在的无法对运行脚本中的命令进行修改和手动修改容易出现错误以及容易对系统盘造成误检测的问题,达到快速、准确、安全地对待检测磁盘进行测试的效果。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例所提供的一种基于FIO测试工具的磁盘测试方法的流程图;
图2为本申请实施例所提供的另一种基于FIO测试工具的磁盘测试方法的流程图;
图3为本申请实施例所提供的一种基于FIO测试工具的磁盘测试装置的结构示意图;
图4为本申请实施例所提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的每个其他实施例,都属于本申请保护的范围。
首先,对本申请可适用的应用场景进行介绍。本申请可应用于服务器磁盘测试。
经研究发现,随着存储服务器的发展,对存储服务器的硬件要求不断增加。随着CPU,内存,总线性能的提升,磁盘性能成为制约读写速率的关键,对磁盘性能的测试也越来越重要。目前对磁盘性能进行测试的方法有以下两种:
第一种对磁盘性能进行测试的方法为,手动进行测试命令输入,而手动进行命令输入的方法不仅耗时长,工作繁琐且容易在人工输入命令时出现错误,对磁盘造成损坏。
第二种对磁盘性能进行测试的方法为,根据预设脚本和配置文件自动执行磁盘检测,不会出现命令出现错误但无法对预设的脚本和配置文件进行修改,且存在对系统盘的误判风险,容易造成系统崩溃等一系列问题。
基于此,本申请实施例提供了一种基于FIO测试工具的磁盘测试方法,以达到准确、快速安全地对磁盘进行检测的效果。
请参阅图1,图1为本申请实施例所提供的一种基于FIO测试工具的磁盘测试方法的流程图。
FIO测试工具包括基准配置文件和基准运行脚本,这里,基准运行脚本和基准配置文件中的测试参数可以根据指令进行更新。
如图1中所示,本申请实施例提供的磁盘测试方法,包括:
S101、接收在人机交互界面上输入的针对服务器中的待测试磁盘的测试参数。
其中,测试参数包括用于指示待测试磁盘的磁盘标识、针对待测试磁盘进行磁盘测试时的可用线程数和进行磁盘测试时所使用的文件块的多个文件块大小。
这里,待测试磁盘可以为多个,例如,可以在人机交互界面中输入磁盘标识的位置输入C、E、D表示对服务器中的C、E、D,三个磁盘进行测试。其中,C、E、D分别表示在服务器中的sdc、sde和sdd三个磁盘设备。磁盘的可用线程数与服务器的处理器的可用线程数有关,例如,服务器的处理器为四核处理器,其可用线程数应小于4。多个文件块大小应为不同大小的文件块大小数值。
这样,测试工程师就可以根据需求和所测试的服务器的硬件设备在人机交互界面中输入多种测试参数。
其中,基准运行脚本包括以下至少一个单个测试项:顺序读测试、顺序写测试、随机读测试、随机写测试,基准运行脚本还记载了进行磁盘测试时所使用的文件块的数量,每个文件块对应的文件块大小是不同的。
具体的,通过以下方式接收多个文件块的大小:根据基准运行脚本中记载的文件块的数量,在人机交互界面上显示与数量对应的文件块大小输入框;针对每个文件块大小输入框,根据在该文件块大小输入框内输入的数值,确定与该文件块大小输入框对应的文件块的文件块大小。
示例性的,基准运行脚本中记载了需要四种不同大小的文较块进行读写测试,此时,人机交互界面基于基准运行脚本在人机交互界面上显示四个文件块大小输入框。针对每个文件块大小输入的数值,可以自动生成与输入的文件块大小对应的文件块。
这样,就可以在人机交互界面中显示出与基准运行脚本中需要使用的文件块对应数量的待输入的文件块大小。
可选地,在人机交互界面中还可以对磁盘测试的种类进行选择,所述磁盘测试的种类包括:磁盘性能测试和磁盘压力测试,在选择了不同的磁盘测试种类后,可以根据不同的测试种类和所述测试参数,生成与所述测试种类对应的基准运行脚本。
可选地,在人机交互界面中还可以设置多个参数输入框,例如:IO位深度、脚本运行时间,脚本的运行模式和文件的读写方式等,其中,IO位深度用于对内核调用时IO排队的队列深度进行设置,所述脚本的运行模式用于指示该脚本采用串行或并行的方式对磁盘进行测试。
S102、在第一目标文件夹下创建与所述多个文件块大小对应的多个测试文件夹。
其中,第一目标文件夹为用于存储基准配置文件的文件夹。
示例性的,测试工程师在人机交互界面中输入的文件块大小为1,3,5,7(兆字节),则在第一目标文件夹下创建四个测试文件夹。
这样,就可以根据人机交互界面中的输入在基准配置文件下创建分类进行磁盘测试的测试结果文件。
S103、使用所述磁盘标识、可用线程数和所述多个测试文件夹的存储路径,分别更新基准运行脚本中的测试磁盘标志位、可用线程数标志位和测试数据读写路径,以获得测试运行脚本。
其中,测试数据读写路径在测试文件夹存储至第一文件夹之后自动生成测试文件夹中的测试数据所对应的测试数据读写路径。
这样,就可以根据测试工程师在人机交互界面中对测试数据的设置,对基准运行脚本进行更新,得到进行测试的测试运行脚本。
需要说明的是,在磁盘测试脚本中,可以通过人机界面输入或直接修改代码等方式对所述基准运行脚本中的读写模式进行定义,所述读写模式包括:sync、libaio、vsync、psync等读写模式。
例如,sync模式对存储磁盘进行测试的步骤为:对待检测磁盘写入数据时先存储至磁盘缓存中,再通过磁盘缓存强制将读取数据存储至磁盘,再返回读写成功标志给内核,防止突然掉电导致的数据丢失。
libaio模式对存储磁盘进行测试的方式为异步读写,也就是说,可以一次从待测试磁盘向处理器提交一批IO读写请求,减少交互,降低阻塞。
S104、判断磁盘标识所指示的待测试磁盘是否包括服务器的系统盘。
这里,对磁盘标识所指示的待测试磁盘是否包括服务器的系统盘的判断可以在步骤S101接收到输入的磁盘标识之后即可进行判断,也可以在更新基准运行脚本后进行判断。
这样,通过对待测试磁盘的判断就可以杜绝由于对系统盘进行测试而导致的服务器系统崩溃的问题。
S105、若所述待测试磁盘不包括系统盘,则运行所述测试运行脚本对所述待测试磁盘进行磁盘读写测试,生成所述待检测磁盘的磁盘测试结果。
其中,待测试磁盘包括多个,磁盘测试结果包括针对多个待测试磁盘的多个磁盘测试结果。
具体的,待测试磁盘包括磁盘缓存,待测试磁盘在进行顺序读测试或随机读测试时,测试运行脚本从待检测磁盘中读取的数据存储至磁盘缓存中,再通过磁盘缓存将读取数据存储至与磁盘测试项对应的测试数据存储文件块中,其中,运行所述测试运行脚本对所述待测试磁盘进行磁盘读写测试的步骤包括:判断所述测试运行脚本是否运行完成顺序读测试或随机读测试;若所述测试运行脚本运行完成顺序读测试或随机读测试,则清除磁盘缓存中的数据;若所述测试运行脚本未运行完成顺序读测试或随机读测试,则停止执行测试运行脚本。
待测试磁盘在进行顺序写测试或随机写测试时,所述测试运行脚本从与磁盘测试项对应的测试数据存储文件块中读取数据存储至磁盘缓存中,再将磁盘缓存中存储的所述数据存储至待检测磁盘中,其中,运行所述测试运行脚本对所述待测试磁盘进行磁盘读写测试的步骤包括:判断所述测试运行脚本是否运行完成顺序写测试或随机写测试;若所述测试运行脚本运行完成顺序写测试或随机读写测试,则清除磁盘缓存中的数据;若所述测试运行脚本未运行完成顺序写测试或随机写测试,则停止执行测试运行脚本。
具体的,测试结果包括对待测试磁盘进行不同线程、不同读写压力(读写时长)、不同大小的文件块测试条件下的磁盘读写速度和稳定性的数据。
这样,就可以得到服务器中的磁盘在不同读写情况下的读写速度和稳定性。
可选地,所述基准运行脚本还可以对待检测的磁盘进行识别,并判断待检测磁盘是否为多磁盘环境,若待检测磁盘为多磁盘环境,则对所述待检测磁盘进行串并行读写判断;若待检测磁盘为单磁盘环境,则不对串并行读写进行判断。
可选地,若待测试磁盘中包括系统盘,则不对系统盘进行读写测试,并在人机交互界面中显示系统盘无法进行测试的提示信息。
可选地,基准运行脚本中还包括:测试方式标志位,人机交互界面中还包括对串行测试、并行测试和串行并行同时测试的测试方式选择项。
具体的,磁盘测试方法还包括:根据接收到的人机交互界面中的测试方式选择项的选择,更新基准运行脚本中的测试方式标志位,以获得测试运行脚本。
可选地,在对待测试磁盘进行磁盘测试时,还需要进行磁盘类型的判断,以在磁盘测试结果中对待测试磁盘的类型进行标识。
可选地,所述基准运行脚本还包括用于混合读写测试的混合测试项,所述磁盘测试方法还包括:根据所述基准运行脚本中的混合测试项,在所述人机交互界面上显示混合读写比例输入框;接收在所述混合读写比例输入框内输入的比例值,所述比例值用于表征每个单个测试项对应的测试数据与混合读写测试的总测试数量的占比;根据所述比例值,更新所述测试运行脚本中的混合读写测试对应的单项混合读写比例。
可选地,若基准运行脚本中不包括混合读写测试,则不在人机交互界面中上显示混合读写比例输入框。
示例性的,混合读写的总测试数量为100兆字节,接收到的混合读写比例值为1:2:3:4,则更新后的测试运行脚本控制混合读写测试顺序进行10兆字节的顺序读测试、20兆字节的顺序写测试、30兆字节的随机读测试、40兆字节的随机读测试。
这样,就可以根据人机交互界面中的输入对混合读写测试的多种混合读写测试比例进行控制。
可选地,在人机交互界面中,还包括混合读写类型选项,所述混合读写类型包括随机读写或顺序读写,根据在所述人机交互界面中输入的混合读写类型的选择,更新所述测试运行脚本中的混合读写类型。
可选地,磁盘测试方法还包括:对所述测试运行脚本的磁盘测试进程进行日志记录,并将所述日志记录存储至预设的日志存储路径下的第二目标文件夹中。
其中,日志记录记录的为脚本的执行进程,例如,脚本控制服务器从第一目标文件夹中读取第一文件块,将第一文件块中的数据存储至D磁盘中。
这里,预设的日志存储路径可以为待检测磁盘所在的服务器中的存储地址,也可以为与待检测磁盘所在的服务器连接的其他存储设备的存储地址。在对日志记录进行存储前,还可以对所述日志记录进行分析和归类,将不同种类的日志存储在不同的日志记录文件夹下。
本申请实施例提供的一种基于FIO测试工具的磁盘测试方法,通过在人机界面上输入多种测试参数更新运行脚本和配置文件,并对系统盘进行判断的方法解决了现有技术中存在的在无法对运行脚本中的命令进行修改和手动修改容易出现错误以及容易对系统盘造成误检测的问题,达到根据人机交互界面上的测试参数的输入,快速、准确、安全地对待检测磁盘进行测试的效果。
请参阅图2,图2为本申请另一实施例提供的基于FIO测试工具的磁盘测试方法的流程图。如图2中所示,本申请实施例提供的基于FIO测试工具的磁盘测试方法,包括:
S201、接收在人机交互界面上输入的针对服务器中的待测试磁盘的测试参数。
S202、在第一目标文件夹下创建与所述多个文件块大小对应的多个测试文件夹。
S203、使用所述磁盘标识、可用线程数和所述多个测试文件夹的存储路径,分别更新基准运行脚本中的测试磁盘标志位、可用线程数标志位和测试数据读写路径,以获得测试运行脚本。
S204、判断磁盘标识所指示的待测试磁盘是否包括服务器的系统盘。
S205、若所述待测试磁盘不包括系统盘,则运行所述测试运行脚本对所述待测试磁盘进行磁盘读写测试,生成所述待检测磁盘的磁盘测试结果。
其中,S201至S205的描述可以参照S101至S105的描述,并且能达到相同的技术效果,对此不做赘述。
S206、根据所述测试运行脚本中的测试磁盘标志位,对所述多个磁盘测试结果进行归类。
示例性的,在测试运行脚本运行完成后会得到多个待测试磁盘的全部测试数据,可以分别将与多个磁盘的测试结果有关的所有测试数据归类至一起。
S207、将归类后的所述多个磁盘测试结果,存储至预设的目标存储路径下的第一目标文件夹中。
这里,所述目标存储路径用于指示存储多个磁盘测试结果的存储地址。
S208、针对每个磁盘测试结果,根据与该磁盘测试结果对应的所述日志记录和该磁盘测试结果,对与该磁盘测试结果对应的待测试磁盘的读写运行参数进行修改。
其中,磁盘测试结果包括磁盘在不同线程、不同读写压力(读写时长)、不同大小的文件块测试条件下的磁盘读写速度和稳定性的数据。
其中,读写运行参数包括系统的内核参数和IO调度方式。
示例性的,D盘的测试结果为在单线程,进行500秒顺序读20兆字节的文件块的平均速度为2兆每秒,稳定性波动为正负0.1兆每秒;在单线程,进行600秒顺序读20兆字节的文件块的平均速度为1.8兆每秒,稳定性波动为0.2兆每秒等等。
根据每个磁盘的不同读写测试结果可以得到在不同线程下,读写不同大小的文件块的读写时间和读写稳定性的稳定性变化曲线、读写时间与读写速度变化曲线。
根据在不同线程下,读写不同文件块的速度变化曲线和稳定性变化曲线可以得到该磁盘在不同线程数,读写不同大小的文件块的最佳的速度和稳定性的值。
根据多个最佳速度值和最佳稳定性值可以得出在几线程下读写多大的文件块的速度和稳定性最好。例如,在四线程下顺序读40兆字节的文件块的速度为4兆每秒和稳定性为正负0.03最好,则调整磁盘的顺序读运行参数在进行顺序读进程时,将待读取文件分成40兆字节的文件块,以4兆每秒的速度进行读取。
这样,就可以根据磁盘测试的结果对磁盘参数进行调整,是磁盘达到最佳运行状态。
本申请实施例提供的另一种基于FIO测试工具的磁盘测试方法,能够通过在人机界面上输入多种测试参数更新运行脚本和配置文件,并对系统盘进行判断的方法。解决了现有技术中存在的在无法对运行脚本中的命令进行修改和手动修改容易出现错误以及容易对系统盘造成误检测的问题,达到根据人机交互界面上的测试参数的输入,快速、准确、安全地对待检测磁盘进行测试,并对磁盘的运行参数进行优化的效果。
基于同一发明构思,本申请实施例中还提供了与基于FIO测试工具的磁盘测试方法对应的基于FIO测试工具的磁盘测试装置,由于本申请实施例中的装置解决问题的原理与本申请实施例上述基于FIO测试工具的磁盘测试方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
请参阅图3,图3为本申请实施例所提供的一种基于FIO测试工具的磁盘测试装置的结构示意图,如图3中所示,所述磁盘测试装置300包括:
测试参数接收模块301,用于接收在人机交互界面上输入的针对服务器中的待测试磁盘的测试参数,所述测试参数包括用于指示待测试磁盘的磁盘标识、针对待测试磁盘进行磁盘测试时的可用线程数和进行磁盘测试时所使用的文件块的多个文件块大小。
文件块创建模块302,用于在第一目标文件夹下创建与所述多个文件块大小对应的多个测试文件夹,所述第一目标文件夹为用于存储基准配置文件的文件夹。
基准运行脚本更新模块303,用于使用所述磁盘标识、可用线程数和所述多个测试文件夹的存储路径,分别更新基准运行脚本中的测试磁盘标志位、可用线程数标志位和测试数据读写路径,以获得测试运行脚本。
系统盘判断模块304,用于判断磁盘标识所指示的待测试磁盘是否包括服务器的系统盘。
磁盘读写测试模块305,用于若所述待测试磁盘不包括系统盘,则运行所述测试运行脚本对所述待测试磁盘进行磁盘读写测试,生成所述待检测磁盘的磁盘测试结果。
本申请实施例提供的基于FIO测试工具的磁盘测试装置,能够通过在人机界面上输入多种测试参数更新运行脚本和配置文件,并对系统盘进行判断的方法。解决了现有技术中存在的在无法对运行脚本中的命令进行修改和手动修改容易出现错误以及容易对系统盘造成误检测的问题,达到根据人机交互界面上的测试参数的输入,快速、准确、安全地对待检测磁盘进行测试,并对磁盘的运行参数进行优化的效果。
请参阅图4,图4为本申请实施例所提供的一种电子设备的结构示意图。如图4中所示,所述电子设备400包括处理器410、存储器420和总线430。
所述存储器420存储有所述处理器410可执行的机器可读指令,当电子设备400运行时,所述处理器410与所述存储器420之间通过总线430通信,所述机器可读指令被所述处理器410执行时,可以执行如上述图1以及图2所示方法实施例中的基于FIO测试工具的磁盘测试方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时可以执行如上述图1以及图2所示方法实施例中的磁盘测试方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种基于FIO测试工具的磁盘测试方法,其特征在于,所述FIO测试工具包括基准配置文件和基准运行脚本,所述方法包括:
接收在人机交互界面上输入的针对服务器中的待测试磁盘的测试参数,所述测试参数包括用于指示待测试磁盘的磁盘标识、针对待测试磁盘进行磁盘测试时的可用线程数和进行磁盘测试时所使用的文件块的多个文件块大小;
在第一目标文件夹下创建与所述多个文件块大小对应的多个测试文件夹,所述第一目标文件夹为用于存储基准配置文件的文件夹;
使用所述磁盘标识、可用线程数和所述多个测试文件夹的存储路径,分别更新基准运行脚本中的测试磁盘标志位、可用线程数标志位和测试数据读写路径,以获得测试运行脚本;
判断磁盘标识所指示的待测试磁盘是否包括服务器的系统盘;
若所述待测试磁盘不包括系统盘,则运行所述测试运行脚本对所述待测试磁盘进行磁盘读写测试,生成所述待测试磁盘的磁盘测试结果。
2.根据权利要求1所述的方法,其特征在于,所述磁盘测试方法还包括:
对所述测试运行脚本的磁盘测试进程进行日志记录,并将所述日志记录存储至预设的日志存储路径下的第二目标文件夹中。
3.根据权利要求2所述的方法,其特征在于,所述待测试磁盘包括多个,所述磁盘测试结果包括针对多个待测试磁盘的多个磁盘测试结果,
其中,所述方法还包括:
根据所述测试运行脚本中的测试磁盘标志位,对所述多个磁盘测试结果进行归类;
将归类后的所述多个磁盘测试结果,存储至预设的目标存储路径下的第一目标文件夹中;
针对每个磁盘测试结果,根据与该磁盘测试结果对应的所述日志记录和该磁盘测试结果,对与该磁盘测试结果对应的待测试磁盘的读写运行参数进行修改。
4.根据权利要求1所述的方法,其特征在于,所述基准运行脚本包括以下项中的至少一个单个测试项:顺序读测试、顺序写测试、随机读测试、随机写测试,所述基准运行脚本还记载了进行磁盘测试时所使用的文件块的数量,每个文件块对应的文件块大小是不同的,
其中,通过以下方式接收所述多个文件块大小:
根据所述基准运行脚本中记载的文件块的数量,在所述人机交互界面上显示与所述数量对应的文件块大小输入框;
针对每个文件块大小输入框,根据在该文件块大小输入框内输入的数值,确定与该文件块大小输入框对应的文件块的文件块大小。
5.根据权利要求4所述的方法,其特征在于,所述基准运行脚本还包括用于混合读写测试的混合测试项,所述磁盘测试方法还包括:
根据所述基准运行脚本中的混合测试项,在所述人机交互界面上显示混合读写比例输入框;
接收在所述混合读写比例输入框内输入的比例值,所述比例值用于表征每个单个测试项对应的测试数据与混合读写测试的总测试数量的占比;
根据所述比例值,更新所述测试运行脚本中的混合读写测试对应的单项混合读写比例。
6.根据权利要求4所述的方法,其特征在于,待测试磁盘包括磁盘缓存,所述待测试磁盘在进行顺序读测试或随机读测试时,所述测试运行脚本从待检测磁盘中读取的数据存储至磁盘缓存中,再通过磁盘缓存将读取数据存储至与磁盘测试项对应的测试数据存储文件块中,
其中,运行所述测试运行脚本对所述待测试磁盘进行磁盘读写测试的步骤包括:
判断所述测试运行脚本是否运行完成顺序读测试或随机读测试;
若所述测试运行脚本运行完成顺序读测试或随机读测试,则清除磁盘缓存中的数据;
若所述测试运行脚本未运行完成顺序读测试或随机读测试,则停止执行测试运行脚本。
7.根据权利要求4所述的方法,其特征在于,所述待测试磁盘在进行顺序写测试或随机写测试时,所述测试运行脚本从与磁盘测试项对应的测试数据存储文件块中读取数据存储至磁盘缓存中,再将磁盘缓存中存储的所述数据存储至待检测磁盘中,
其中,运行所述测试运行脚本对所述待测试磁盘进行磁盘读写测试的步骤包括:
判断所述测试运行脚本是否运行完成顺序写测试或随机写测试;
若所述测试运行脚本运行完成顺序写测试或随机读写测试,则清除磁盘缓存中的数据;
若所述测试运行脚本未运行完成顺序写测试或随机写测试,则停止执行测试运行脚本。
8.一种基于FIO测试工具的磁盘测试装置,其特征在于,所述FIO测试工具包括基准配置文件和基准运行脚本,所述磁盘测试装置包括:
测试参数接收模块,用于接收在人机交互界面上输入的针对服务器中的待测试磁盘的测试参数,所述测试参数包括用于指示待测试磁盘的磁盘标识、针对待测试磁盘进行磁盘测试时的可用线程数和进行磁盘测试时所使用的文件块的多个文件块大小;
文件块创建模块,用于在第一目标文件夹下创建与所述多个文件块大小对应的多个测试文件夹,所述第一目标文件夹为用于存储基准配置文件的文件夹;
基准运行脚本更新模块,用于使用所述磁盘标识、可用线程数和所述多个测试文件夹的存储路径,分别更新基准运行脚本中的测试磁盘标志位、可用线程数标志位和测试数据读写路径,以获得测试运行脚本;
系统盘判断模块,用于判断磁盘标识所指示的待测试磁盘是否包括服务器的系统盘;
磁盘读写测试模块,用于若所述待测试磁盘不包括系统盘,则运行所述测试运行脚本对所述待测试磁盘进行磁盘读写测试,生成所述待检测磁盘的磁盘测试结果。
9.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述处理器执行所述机器可读指令,以执行如权利要求1至7任一所述方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至7任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210508602.2A CN114706719A (zh) | 2022-05-10 | 2022-05-10 | 一种基于fio测试工具的磁盘测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210508602.2A CN114706719A (zh) | 2022-05-10 | 2022-05-10 | 一种基于fio测试工具的磁盘测试方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114706719A true CN114706719A (zh) | 2022-07-05 |
Family
ID=82176203
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210508602.2A Pending CN114706719A (zh) | 2022-05-10 | 2022-05-10 | 一种基于fio测试工具的磁盘测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114706719A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116520969A (zh) * | 2023-07-04 | 2023-08-01 | 四川弘仁财电科技有限公司 | 服务器功耗控制装置、系统及方法 |
-
2022
- 2022-05-10 CN CN202210508602.2A patent/CN114706719A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116520969A (zh) * | 2023-07-04 | 2023-08-01 | 四川弘仁财电科技有限公司 | 服务器功耗控制装置、系统及方法 |
CN116520969B (zh) * | 2023-07-04 | 2023-09-08 | 四川弘仁财电科技有限公司 | 服务器功耗控制装置、系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111756575B (zh) | 存储服务器的性能分析方法及装置、电子设备 | |
CN109583200B (zh) | 一种基于动态污点传播的程序异常分析方法 | |
TW201301137A (zh) | 虛擬機器影像分析 | |
JP2015507303A (ja) | コード網羅率決定方法およびシステム | |
EP2843537A1 (en) | Method and systems for simulating a workload of a storage system | |
CN111209206B (zh) | 一种软件产品的自动测试方法及系统 | |
US8572436B2 (en) | Computing device and method for managing motherboard test | |
WO2018070404A1 (ja) | マルウェア解析装置、マルウェア解析方法、及び、マルウェア解析プログラムが格納された記録媒体 | |
CN116340076B (zh) | 硬盘性能测试方法、装置及介质 | |
CN111552475B (zh) | 一种半导体存储器老化测试的Workload测试文件编译方法、测试方法及系统 | |
CN114706719A (zh) | 一种基于fio测试工具的磁盘测试方法及装置 | |
CA2811617C (en) | Commit sensitive tests | |
CN111783094A (zh) | 一种数据分析方法、装置、服务器及可读存储介质 | |
CN115017505A (zh) | 一种pe病毒检测方法、装置、电子设备及存储介质 | |
CN109542341B (zh) | 一种读写io监测方法、装置、终端及计算机可读存储介质 | |
US20040003326A1 (en) | Method, program, and storage medium for acquiring logs | |
US9507690B2 (en) | Method and device for analyzing an execution of a predetermined program flow on a physical computer system | |
CN106970851A (zh) | 用于分布式文件系统中磁盘检测处理的方法和设备 | |
CN114780421A (zh) | 基于虚拟指令集平台的异常测试方法、系统及存储介质 | |
CN111104334B (zh) | 基于eeprom模块接口软件的测试方法、装置及可读取存储介质 | |
CN110765493B (zh) | 一种基于Linux预链接的文件基线防御方法、装置及存储设备 | |
US6229743B1 (en) | Method of a reassign block processing time determination test for storage device | |
CN107742080B (zh) | 针对虚拟化环境的漏洞挖掘方法及装置 | |
US11294788B2 (en) | Predicting performance of a computer system | |
EP3557422A1 (en) | Method for accessing code sram, and electronic device |
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 |