CN111581041A - 一种磁盘性能测试的方法和设备 - Google Patents

一种磁盘性能测试的方法和设备 Download PDF

Info

Publication number
CN111581041A
CN111581041A CN202010377978.5A CN202010377978A CN111581041A CN 111581041 A CN111581041 A CN 111581041A CN 202010377978 A CN202010377978 A CN 202010377978A CN 111581041 A CN111581041 A CN 111581041A
Authority
CN
China
Prior art keywords
disk
cores
cpu
tested
total number
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.)
Withdrawn
Application number
CN202010377978.5A
Other languages
English (en)
Inventor
丁兆鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202010377978.5A priority Critical patent/CN111581041A/zh
Publication of CN111581041A publication Critical patent/CN111581041A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing

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)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本发明提供了一种磁盘性能测试的方法和设备,该方法包括以下步骤:获取系统中CPU的内核总数,并设置压力测试工具的参数;修改系统参数,将内核总数中的一部分内核指定为性能测试专用CPU内核,并将专用CPU内核与压力测试工具相关联;将待测磁盘循环分配给专用CPU内核中等待测试;响应于接收到测试的指令,执行系统命令进行磁盘性能测试。通过使用本发明的方案,能够充分利用系统资源,测出磁盘的最大性能及最大功耗,能够避免设置不当而引起系统的宕机。

Description

一种磁盘性能测试的方法和设备
技术领域
本领域涉及计算机领域,并且更具体地涉及一种磁盘性能测试的方法和设备。
背景技术
磁盘性能测试是针对存储子系统在执行关键业务应用时的性能表现。这些应用主要以随机IO操作为特点,包括查询和更新操作。这一类应用的例子包括OLTP、数据库操作和邮件服务器运作等。由于中高端存储系统往往在用户的系统环境中担当关键业务应用的数据基础平台。
目前在基于SMP(对称多处理器)架构下,系统默认配置下,为测出所有磁盘的最大功耗,对磁盘最大压力测试时,CPU会产生大量的中断数和上下文切换。容易导致CPU资源被耗尽,继而服务器会发生宕机等问题。当对磁盘的压力参数设置较小时,不能正确测出所有磁盘的最大功耗。当压力参数设置最大合理时,容易把服务器压死,即服务器资源耗尽产生宕机。
发明内容
有鉴于此,本发明实施例的目的在于提出一种磁盘性能测试的方法和设备,通过使用本发明的方法,够充分利用系统资源,测出磁盘的最大性能及最大功耗,能够避免设置不当而引起系统的宕机。
基于上述目的,本发明的实施例的一个方面提供了一种磁盘性能测试的方法,包括以下步骤:
获取系统中CPU的内核总数,并设置压力测试工具的参数;
修改系统参数,将内核总数中的一部分内核指定为性能测试专用CPU内核,并将专用CPU内核与压力测试工具相关联;
将待测磁盘循环分配给专用CPU内核中等待测试;
响应于接收到测试的指令,执行系统命令进行磁盘性能测试。
根据本发明的一个实施例,获取系统中CPU的内核总数包括:
使用系统命令LSCPU获取内核总数。
根据本发明的一个实施例,修改系统参数,将内核总数中的一部分内核指定为性能测试专用CPU内核包括:
修改系统参数IRQBALANCE_ONESHOT,将参数设置为需要使用的专用CPU内核的个数。
根据本发明的一个实施例,将待测磁盘循环分配给专用CPU内核中等待测试包括:
将每一个待测试磁盘一一对应的顺序分配到每一个专用CPU内核;
响应于在专用CPU内核本轮分配完毕后存在未分配的待测试磁盘,返回前一步骤以循环进行顺序分配。
根据本发明的一个实施例,系统命令包括taskset命令,压力测试工具包括fio工具(对磁盘的读和写进行压力测试的工具)。
本发明的实施例的另一个方面,还提供了一种磁盘性能测试的设备,设备包括:
获取模块,获取模块配置为获取系统中CPU的内核总数,并设置压力测试工具的参数;
指定模块,指定模块配置为修改系统参数,将内核总数中的一部分内核指定为性能测试专用CPU内核,并将专用CPU内核与压力测试工具相关联;
分配模块,分配模块配置为将待测磁盘循环分配给专用CPU内核中等待测试;
执行模块,执行模块配置为响应于接收到测试的指令,执行系统命令进行磁盘性能测试。
根据本发明的一个实施例,获取模块还配置为使用系统命令LSCPU获取内核总数。
根据本发明的一个实施例,指定模块还配置为修改系统参数IRQBALANCE_ONESHOT,将参数设置为需要使用的专用CPU内核的个数。
根据本发明的一个实施例,分配模块还配置为:
将每一个待测试磁盘一一对应的顺序分配到每一个专用CPU内核;
响应于在专用CPU内核本轮分配完毕后存在未分配的待测试磁盘,返回前一步骤以循环进行顺序分配。
根据本发明的一个实施例,系统命令包括taskset命令,压力测试工具包括fio工具。
本发明具有以下有益技术效果:本发明实施例提供的磁盘性能测试的方法,通过获取系统中CPU的内核总数,并设置压力测试工具的参数;修改系统参数,将内核总数中的一部分内核指定为性能测试专用CPU内核,并将专用CPU内核与压力测试工具相关联;将待测磁盘循环分配给专用CPU内核中等待测试;响应于接收到测试的指令,执行系统命令进行磁盘性能测试的技术方案,能够充分利用系统资源,测出磁盘的最大性能及最大功耗,能够避免设置不当而引起系统的宕机。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为根据本发明一个实施例的磁盘性能测试的方法的示意性流程图;
图2为根据本发明一个实施例的磁盘性能测试的设备的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
基于上述目的,本发明的实施例的第一个方面,提出了一种磁盘性能测试的方法的一个实施例。图1示出的是该方法的示意性流程图。
如图1中所示,该方法可以包括以下步骤:
S1获取系统中CPU的内核总数,并设置压力测试工具的参数;
S2修改系统参数,将内核总数中的一部分内核指定为性能测试专用CPU内核,并将专用CPU内核与压力测试工具相关联,将一部分CPU内核用作测试,另一部分用作系统运行使用,具体数量根据实际情况设定;
S3将待测磁盘循环分配给专用CPU内核中等待测试,根据一定的算法对磁盘进行分配,使得专用CPU内核中的每一个可以大体上平均的对磁盘进行测试;
S4响应于接收到测试的指令,执行系统命令进行磁盘性能测试,测试时会关联压力测试工具的参数。
本发明的方法通过将系统设置隔离出一定数量的CPU内核用作专用测试的CPU内核,通过一种算法策略,分配每个fio进程运行在指定CPU内核上,或多个fio进程运行到一个指定CPU内核上。
通过本发明的技术方案,能够充分利用系统资源,测出磁盘的最大性能及最大功耗,能够避免设置不当而引起系统的宕机。
在本发明的一个优选实施例中,获取系统中CPU的内核总数包括:
使用系统命令LSCPU获取内核总数。
在本发明的一个优选实施例中,修改系统参数,将内核总数中的一部分内核指定为性能测试专用CPU内核包括:
修改系统参数IRQBALANCE_ONESHOT,将参数设置为需要使用的专用CPU内核的个数。
在本发明的一个优选实施例中,将待测磁盘循环分配给专用CPU内核中等待测试包括:
将每一个待测试磁盘一一对应的顺序分配到每一个专用CPU内核;
响应于在专用CPU内核本轮分配完毕后存在未分配的待测试磁盘,返回前一步骤以循环进行顺序分配。例如,专用CPU内核为3个,待测试磁盘为7个,那么首先将前3个待测试磁盘依次分配到3个专用CPU内核,然后判断是否还有未分配的待测试磁盘,本示例中还有4个未分配的待测试磁盘,那么将这4个中的3个依次分配到3个专用CPU内核,然后判断是否还有未分配的待测试磁盘,本示例中还有1个未分配的待测试磁盘,那么将这1个分配到第一个专用CPU内核。
在本发明的一个优选实施例中,系统命令包括taskset命令,压力测试工具包括fio工具。也可以使用其他压力测试工具,相关参数相应的进行设置。
实施例1
首先,如下所示设置fio工具的参数:
--filename=/dev/XXX
--direct=1
--iodepth 32磁盘读写深度
--thread=1
--rw=randread压测类型
--ioengine=libaio
--bs=4k
--size=7000G
--numjobs=4控制压测线程数量
--runtime=900
--group_reporting
--name=mytest
--time_based=1
--end_fsync=1
--end_fsync=5
--norandommap=1
--randrepeat=0
--overwrite=1
--log_avg_msec=1000
--bwavgtime=1000
然后使用系统命令LSCPU获取内核总数,例如获取到内核总数为96个,设置4至95个内核指定为性能测试专用CPU内核的方法如下:
编辑/etc/sysconfig/irqbalance文件,设置参数IRQBALANCE_ONESHOT=为相应的值,该示例中的参数设置为IRQBALANCE_ONESHOT=ffffffff,ffffffff,fffffff0,设置完成后,重启服务使生效:systemctl restart irqbalance.service。
可以使用Python代码将待测磁盘分配给专用CPU内核中,参考算法如下:
Disks为所有待测磁盘数量;
Core_sum为系统所有内核总数;
Core_offset为预留给系统所使用的的CPU(除去压测要使用的CPU),如下设置为2;
core_N=num为每个进程所分配的CPU数量;
Figure BDA0002480939110000071
每个磁盘压测所分配的CPU数量,根据fio参考参数中与numjobs数量保持一致,可相应的调整,如参考numjobs=4,所以coreid+3,为每个磁盘压测分配4个CPU内核使用。
taskset-c(coreid'-'coreid+(core_N-1))command(comand为上述fio工具设置的参数)
例如:
core_sum=16
disks=76
如果每个进程分配一个cpu,预留2个CPU给系统使用:
Core_offset=2
core_N=1
0-1系统预留使用
参考上面算法:
Figure BDA0002480939110000072
结果如下:
taskset-c 2 command
taskset-c 3 command
...
taskset-c 13 command
taskset-c 6 command
taskset-c 7 command
...
如果每个进程分配2个cpu,预留2个CPU给系统使用:
Core_offset=2
core_N=2
0-1系统预留使用
Figure BDA0002480939110000081
结果如下:
taskset-c 2-3 command
taskset-c 4-5 command
...
taskset-c 13-14 command
taskset-c 6-7 command
...
如果每个进程分配4个cpu,预留2个CPU给系统使用:
Core_offset=2
core_N=4
0-1系统预留使用
Figure BDA0002480939110000091
结果如下:
taskset-c 2-5 command
taskset-c 6-9 command
taskset-c 10-13 command
taskset-c 2-5 command
taskset-c 6-9 command
taskset-c 10-13 command
.....
其他更多CPU分配,类似上述方法。
以上示例可以看出当磁盘数量较多时,进程可以较平均的分配到每个或多个CPU上,从而使系统发挥最大性能。
实施例2
使用该方法进行磁盘性能测试的过程如下:
1、使用lscpu|grep-w'CPU(s):'|head-1|awk'{print$2}'命令获取操作系统的内核数,例如获取到该操作系统CPU内核数为40个;
2、然后获取该系统中需要待测的磁盘总数,例如本次测试需要测试36个待测磁盘;
3、根据实际情况设置每个待测试磁盘需绑定的CPU内核数,例如本实施例中每个待测磁盘绑定4个CPU内核,预留4个CPU内核供系统运行使用;
4、将36个待测试磁盘循环绑定到用于测试的36个CPU内核,每个磁盘绑定4个CPU内核,即第1个磁盘绑定第1-4个CPU,第2个磁盘绑定第5-8个CPU,……,第9个磁盘绑定第33-36个CPU,第10个磁盘绑定第1-4个CPU,以此类推,直到所有的待测磁盘绑定完成。这样绑定的好处是可以将待测磁盘较均匀的绑定在CPU内核上,避免某些CPU内核上进行过多的测试而报错,能够减少用于测试的CPU内核的中断次数;
5、运行fio工具进行磁盘性能测试。
结果说明:
1、平均测试速度为21.5MB/s,相比于传统测试的平均测试速度17.5MB/s提升22.9%。
2、测试过程中CPU的平均中断次数为13426次,相比于传统测试的CPU的平均中断次数17152次有明显的减少,使CPU能够在测试过程中发挥最大的性能。
通过本发明的技术方案,能够充分利用系统资源,测出磁盘的最大性能及最大功耗,能够避免设置不当而引起系统的宕机。
需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,上述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中存储介质可为磁碟、光盘、只读存储器(Read-Only Memory,ROM)或随机存取存储器(Random AccessMemory,RAM)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
此外,根据本发明实施例公开的方法还可以被实现为由CPU执行的计算机程序,该计算机程序可以存储在计算机可读存储介质中。在该计算机程序被CPU执行时,执行本发明实施例公开的方法中限定的上述功能。
基于上述目的,本发明的实施例的第二个方面,提出了一种磁盘性能测试的设备,如图2所示,设备200包括:
获取模块,获取模块配置为获取系统中CPU的内核总数,并设置压力测试工具的参数;
指定模块,指定模块配置为修改系统参数,将内核总数中的一部分内核指定为性能测试专用CPU内核,并将专用CPU内核与压力测试工具相关联;
分配模块,分配模块配置为将待测磁盘循环分配给专用CPU内核中等待测试;
执行模块,执行模块配置为响应于接收到测试的指令,执行系统命令进行磁盘性能测试。
在本发明的一个优选实施例中,获取模块还配置为使用系统命令LSCPU获取内核总数。
在本发明的一个优选实施例中,指定模块还配置为修改系统参数IRQBALANCE_ONESHOT,将参数设置为需要使用的专用CPU内核的个数。
在本发明的一个优选实施例中,分配模块还配置为:
将每一个待测试磁盘一一对应的顺序分配到每一个专用CPU内核;
响应于在所述专用CPU内核本轮分配完毕后存在未分配的待测试磁盘,返回前一步骤以循环进行顺序分配。
在本发明的一个优选实施例中,系统命令包括taskset命令,压力测试工具包括fio工具。
需要特别指出的是,上述系统的实施例采用了上述方法的实施例来具体说明各模块的工作过程,本领域技术人员能够很容易想到,将这些模块应用到上述方法的其他实施例中。
此外,上述方法步骤以及系统单元或模块也可以利用控制器以及用于存储使得控制器实现上述步骤或单元或模块功能的计算机程序的计算机可读存储介质实现。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
上述实施例,特别是任何“优选”实施例是实现的可能示例,并且仅为了清楚地理解本发明的原理而提出。可以在不脱离本文所描述的技术的精神和原理的情况下对上述实施例进行许多变化和修改。所有修改旨在被包括在本公开的范围内并且由所附权利要求保护。

Claims (10)

1.一种磁盘性能测试的方法,其特征在于,包括以下步骤:
获取系统中CPU的内核总数,并设置压力测试工具的参数;
修改系统参数,将所述内核总数中的一部分内核指定为所述性能测试专用CPU内核,并将所述专用CPU内核与所述压力测试工具相关联;
将待测磁盘循环分配给所述专用CPU内核中等待测试;
响应于接收到测试的指令,执行系统命令进行所述磁盘性能测试。
2.根据权利要求1所述的方法,其特征在于,获取系统中CPU的内核总数包括:
使用系统命令LSCPU获取所述内核总数。
3.根据权利要求1所述的方法,其特征在于,修改系统参数,将所述内核总数中的一部分内核指定为所述性能测试专用CPU内核包括:
修改系统参数IRQBALANCE_ONESHOT,将所述参数设置为需要使用的所述专用CPU内核的个数。
4.根据权利要求1所述的方法,其特征在于,将待测磁盘循环分配给所述专用CPU内核中等待测试包括:
将每一个所述待测试磁盘一一对应的顺序分配到每一个所述专用CPU内核;
响应于在所述专用CPU内核本轮分配完毕后存在未分配的所述待测试磁盘,返回前一步骤以循环进行顺序分配。
5.根据权利要求1所述的方法,其特征在于,所述系统命令包括taskset命令,所述压力测试工具包括fio工具。
6.一种磁盘性能测试的设备,其特征在于,所述设备包括:
获取模块,所述获取模块配置为获取系统中CPU的内核总数,并设置压力测试工具的参数;
指定模块,所述指定模块配置为修改系统参数,将所述内核总数中的一部分内核指定为所述性能测试专用CPU内核,并将所述专用CPU内核与所述压力测试工具相关联;
分配模块,所述分配模块配置为将待测磁盘循环分配给所述专用CPU内核中等待测试;
执行模块,所述执行模块配置为响应于接收到测试的指令,执行系统命令进行所述磁盘性能测试。
7.根据权利要求6所述的设备,其特征在于,所述获取模块还配置为使用系统命令LSCPU获取所述内核总数。
8.根据权利要求6所述的设备,其特征在于,所述指定模块还配置为修改系统参数IRQBALANCE_ONESHOT,将所述参数设置为需要使用的所述专用CPU内核的个数。
9.根据权利要求6所述的设备,其特征在于,所述分配模块还配置为:
将每一个所述待测试磁盘一一对应的顺序分配到每一个所述专用CPU内核;
响应于在所述专用CPU内核本轮分配完毕后存在未分配的所述待测试磁盘,返回前一步骤以循环进行顺序分配。
10.根据权利要求6所述的设备,其特征在于,所述系统命令包括taskset命令,所述压力测试工具包括fio工具。
CN202010377978.5A 2020-05-07 2020-05-07 一种磁盘性能测试的方法和设备 Withdrawn CN111581041A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010377978.5A CN111581041A (zh) 2020-05-07 2020-05-07 一种磁盘性能测试的方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010377978.5A CN111581041A (zh) 2020-05-07 2020-05-07 一种磁盘性能测试的方法和设备

Publications (1)

Publication Number Publication Date
CN111581041A true CN111581041A (zh) 2020-08-25

Family

ID=72115207

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010377978.5A Withdrawn CN111581041A (zh) 2020-05-07 2020-05-07 一种磁盘性能测试的方法和设备

Country Status (1)

Country Link
CN (1) CN111581041A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112363883A (zh) * 2020-12-03 2021-02-12 锐捷网络股份有限公司 一种cpu压力测试方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110928687A (zh) * 2019-11-25 2020-03-27 新华三技术有限公司 Cpu资源分配方法及测试设备
CN112363883A (zh) * 2020-12-03 2021-02-12 锐捷网络股份有限公司 一种cpu压力测试方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110928687A (zh) * 2019-11-25 2020-03-27 新华三技术有限公司 Cpu资源分配方法及测试设备
CN112363883A (zh) * 2020-12-03 2021-02-12 锐捷网络股份有限公司 一种cpu压力测试方法及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112363883A (zh) * 2020-12-03 2021-02-12 锐捷网络股份有限公司 一种cpu压力测试方法及装置

Similar Documents

Publication Publication Date Title
US10810051B1 (en) Autoscaling using file access or cache usage for cluster machines
CN109144710B (zh) 资源调度方法、装置及计算机可读存储介质
US9582312B1 (en) Execution context trace for asynchronous tasks
CN110795241B (zh) 一种作业调度管理方法、调度中心和系统
CN106293893B (zh) 作业调度方法、装置及分布式系统
CN111104208B (zh) 进程调度管理方法、装置、计算机设备及存储介质
US10846144B2 (en) Multistep automated scaling for cluster containers
CN111625331A (zh) 任务调度方法、装置、平台、服务器及存储介质
US20230305880A1 (en) Cluster distributed resource scheduling method, apparatus and device, and storage medium
US9703905B2 (en) Method and system for simulating multiple processors in parallel and scheduler
CN112948113A (zh) 一种集群资源管理调度方法、装置、设备及可读存储介质
CN114691321A (zh) 一种任务调度方法、装置、设备及存储介质
CN117311990B (zh) 资源调整方法、装置、电子设备、存储介质及训练平台
CN115033337A (zh) 虚拟机内存迁移方法、装置、设备及存储介质
CN111581041A (zh) 一种磁盘性能测试的方法和设备
CN113626173A (zh) 调度方法、装置及存储介质
CN116962532A (zh) 集群任务调度方法、装置、计算机设备及存储介质
CN112214286B (zh) 容器的启动方法、装置及电子设备
Liu et al. A concurrent approach for improving the efficiency of Android CTS testing
CN110928756A (zh) 一种超算平台资源使用监控方法
CN112579305A (zh) 任务处理方法及装置、非易失性存储介质和设备
CN112631743B (zh) 任务调度方法、装置及存储介质
CN113282383B (zh) 任务调度方法、任务处理方法及相关产品
CN110134453B (zh) 服务器配置重载方法及服务器
CN115114023A (zh) 线程池的线程分配方法、系统、终端及存储介质

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
WW01 Invention patent application withdrawn after publication
WW01 Invention patent application withdrawn after publication

Application publication date: 20200825