整机动态压力测试方法、系统、终端及存储介质与流程

文档序号:31672061发布日期:2022-09-28 01:10阅读:187来源:国知局
整机动态压力测试方法、系统、终端及存储介质与流程

1.本发明属于服务器测试技术领域,具体涉及一种整机动态压力测试方法、系统、终端及存储介质。


背景技术:

2.服务器,是为客户端提供数据交互和处理服务的机器,大部分服务器自上架之日起,会进行全年无休的上电工作,这就需求服务器整机工作非常稳定。这就要求服务器生产制造商将服务器整机的测试工作做为一个重点测试,因为这部分测试最能反应当前服务器整机的一个稳定性状态。通常测试工程师需要对处理器、内存、磁盘、网卡,显卡这几个方面进行长时间压力测试,用来模拟大量用户流量时服务器的工作场景,这样以达到服务器的稳定性需求。
3.现有的cpu压力可以通过ptu压力软件,现有的内存压力可以通过stressapptest和memtester压力软件,现有的磁盘压力可以通过fio、iometer压力软件,现有的网卡压力可以通过iperf、netperf压力软件。目前整机的压力测试基本上偏向静态的,只是简单的对处理器、内存、磁盘等各个部件进行加压,往往会出现由于某一部件占用系统资源过大,导致其他部件的测试压力过小,造成整机的压力不均衡,从而达不到对整机的均衡压力测试。


技术实现要素:

4.针对现有技术的上述不足,本发明提供一种整机动态压力测试方法、系统、终端及存储介质,以解决上述技术问题。
5.第一方面,本发明提供一种整机动态压力测试方法,包括:
6.获取整机各部件的测试压力;
7.根据各部件的测试压力利用控制组群为各部件分配系统资源,以使各部件在各自分配到的系统资源上运行相应的压力测试程序。
8.进一步的,获取整机各部件的测试压力,包括:
9.预估磁盘压力,并估算当前磁盘压力需要占用的cpu资源和内存资源;
10.预估网络压力,并估算当前网络压力需要占用的cpu资源和内存资源;
11.从内存压力测试配置文件中获取指定的内存压力值;
12.从cpu压力测试工具的配置参数中获取cpu测试压力值。
13.进一步的,根据各部件的测试压力利用控制组群为各部件分配系统资源,以使各部件在各自分配到的系统资源上运行相应的压力测试程序,包括:
14.根据各部件的测试压力获取各部件测试压力的需求资源,并根据各部件的需求资源的比例值为各部件生成理论资源值;
15.为部件创建控制资源池,并将部件涉及的进程分配到部件的控制资源池;
16.基于所述控制资源池和部件的理论资源值限制部件使用的cpu核数及内存数量。
17.第二方面,本发明提供一种整机动态压力测试系统,包括:
18.压力获取单元,用于获取整机各部件的测试压力;
19.资源分配单元,用于根据各部件的测试压力利用控制组群为各部件分配系统资源,以使各部件在各自分配到的系统资源上运行相应的压力测试程序。
20.进一步的,所述压力获取单元包括:
21.第一获取模块,用于预估磁盘压力,并估算当前磁盘压力需要占用的cpu资源和内存资源;
22.第二获取模块,用于预估网络压力,并估算当前网络压力需要占用的cpu资源和内存资源;
23.第三获取模块,用于从内存压力测试配置文件中获取指定的内存压力值;
24.第四获取模块,用于从cpu压力测试工具的配置参数中获取cpu测试压力值。
25.进一步的,所述资源分配单元包括:
26.理论计算模块,用于根据各部件的测试压力获取各部件测试压力的需求资源,并根据各部件的需求资源的比例值为各部件生成理论资源值;
27.进程分配模块,用于为部件创建控制资源池,并将部件涉及的进程分配到部件的控制资源池;
28.资源限制模块,用于基于所述控制资源池和部件的理论资源值限制部件使用的cpu核数及内存数量。
29.第三方面,提供一种终端,包括:
30.处理器、存储器,其中,
31.该存储器用于存储计算机程序,
32.该处理器用于从存储器中调用并运行该计算机程序,使得终端执行上述的终端的方法。
33.第四方面,提供了一种计算机存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
34.本发明的有益效果在于,本发明提供的整机动态压力测试方法、系统、终端及存储介质,结合cgroup资源控制技术,对服务器各个部件压力程序进行资源控制,从而更加精确的控制整机压力,使整个服务器的稳定性测试更加灵活多变,能模拟更多的压力场景。
35.此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
附图说明
36.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
37.图1是本发明一个实施例的方法的示意性流程图。
38.图2是本发明一个实施例的系统的示意性框图。
39.图3为本发明实施例提供的一种终端的结构示意图。
具体实施方式
40.为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实
施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
41.下面对本发明中出现的关键术语进行解释。
42.英文缩写:sv
43.英文全称:server
44.中文全称:服务器
45.英文缩写:cgroup
46.英文全称:control group
47.中文全称:控制组
48.英文缩写:fio
49.英文全称:flexible i/o tester
50.中文全称:磁盘io测试者
51.图1是本发明一个实施例的方法的示意性流程图。其中,图1执行主体可以为一种整机动态压力测试系统。
52.如图1所示,该方法包括:
53.步骤110,获取整机各部件的测试压力;
54.步骤120,根据各部件的测试压力利用控制组群为各部件分配系统资源,以使各部件在各自分配到的系统资源上运行相应的压力测试程序。
55.为了便于对本发明的理解,下面以本发明整机动态压力测试方法的原理,结合实施例中对整机动态压力进行测试的过程,对本发明提供的整机动态压力测试方法做进一步的描述。
56.具体的,所述整机动态压力测试方法包括:
57.s1、获取整机各部件的测试压力。
58.预估磁盘压力,并估算当前磁盘压力需要占用的cpu资源和内存资源;预估网络压力,并估算当前网络压力需要占用的cpu资源和内存资源;从内存压力测试配置文件中获取指定的内存压力值;从cpu压力测试工具的配置参数中获取cpu测试压力值。
59.例如,预估当前系统的磁盘压力,通过磁盘fio自动化测试脚本,进行压测,例如本机12个16t的sata磁盘,每块磁盘的fio负载程序进程占用单核cpu资源4%左右,内存占用0.2%;预估当前系统的网络压力,通过网卡iperf自动化测试脚本,进行压测,当前iperf的程序进程占用单核cpu资源2%左右,因当前系统网卡为千兆的,所以压力测试内存占用较小,只需适当预留额外内存即可;使用memtester软件进行内存压力测试,通过memtest直接指定申请的测试内存大小,根据以往测试经验内存压力在cpu压力之前,否则是该程序测试内存负载无法上去;使用intel ptu软件进行cpu压力测试,根据-ct参数来指定不同的cpu压力负载模型。
60.s2、根据各部件的测试压力利用控制组群为各部件分配系统资源,以使各部件在各自分配到的系统资源上运行相应的压力测试程序。
61.根据各部件的测试压力获取各部件测试压力的需求资源,并根据各部件的需求资
源的比例值为各部件生成理论资源值;为部件创建控制资源池,并将部件涉及的进程分配到部件的控制资源池;基于所述控制资源池和部件的理论资源值限制部件使用的cpu核数及内存数量。
62.通过步骤s1可以获得各部件的测试压力,然后估算其需要的资源数量,然后按照各部件的需求资源的比例值为各部件生成理论资源值,以cpu资源数量为例,假设磁盘需要4%,网络需要2%,内存需要4%,则将cpu测试的资源限制在90%。
63.下面以磁盘资源限制和网络资源限制对资源限制方法进行说明:
64.使用cgroup对fio程序进行磁盘压力测试做资源限制,具体操作如下:
65.mkdir/sys/fs/cgroup/cpuset/disk_resources_cpu创建对磁盘的控制资源池
66.echo$$》/sys/fs/cgroup/cpuset/disk_resources_cpu/tasks将当前的终端进程分配到该资源池下
67.echo 1-12》/sys/fs/cgroup/cpuset/disk_resources_cpu/cpuset.cpus限制当前进程使用的cpu核数
68.根据当前系统磁盘的挂载哪个cpu下决定具体使用的内存节点
69.echo 0》/sys/fs/cgroup/cpuset/disk_resources_cpu/cpuset.mems
70.echo$$》/sys/fs/cgroup/cpuset/disk_resources_cpu/tasks将当前的终端进程分配到该资源池下
71.通过cgroup内存子系统,建立对fio程序的内存控制策略
72.mkdir/sys/fs/cgroup/memory/disk_resources_mem
73.cgroup应限制的内存为:512g*1024*1024*1024*0.2%*12=13,194,139,533bytes
74.echo 13194139533》/sys/fs/cgroup/memory/disk_resources_mem/memory.limit_in_bytes
75.使用cgroup对iperf程序做内存测试占用的资源进行限制,具体操作如下:
76.mkdir/sys/fs/cgroup/cpuset/net_resources_cpu创建对网卡的控制资源池
77.echo$$》/sys/fs/cgroup/cpuset/net_resources_cpu/tasks将当前的终端进程分配到该资源池下
78.10)echo 13-16》/sys/fs/cgroup/cpuset/net_resources_cpu/cpuset.cpus限制当前进程使用的cpu核数,具体数量可以根据当前iperf的进程数量决定
79.11)通过cgroup内存子系统,建立对iperf程序的内存控制策略
80.mkdir/sys/fs/cgroup/memory/net_resources_mem
81.12)cgroup应限制的内存为:1g*1024*1024*1024=1,073,741,824bytes
82.echo 1073741824》/sys/fs/cgroup/memory/net_resources_mem/memory.limit_in_bytes
83.如图2所示,该系统200包括:
84.压力获取单元210,用于获取整机各部件的测试压力;
85.资源分配单元220,用于根据各部件的测试压力利用控制组群为各部件分配系统资源,以使各部件在各自分配到的系统资源上运行相应的压力测试程序。
86.可选地,作为本发明一个实施例,所述压力获取单元包括:
87.第一获取模块,用于预估磁盘压力,并估算当前磁盘压力需要占用的cpu资源和内存资源;
88.第二获取模块,用于预估网络压力,并估算当前网络压力需要占用的cpu资源和内存资源;
89.第三获取模块,用于从内存压力测试配置文件中获取指定的内存压力值;
90.第四获取模块,用于从cpu压力测试工具的配置参数中获取cpu测试压力值。
91.可选地,作为本发明一个实施例,所述资源分配单元包括:
92.理论计算模块,用于根据各部件的测试压力获取各部件测试压力的需求资源,并根据各部件的需求资源的比例值为各部件生成理论资源值;
93.进程分配模块,用于为部件创建控制资源池,并将部件涉及的进程分配到部件的控制资源池;
94.资源限制模块,用于基于所述控制资源池和部件的理论资源值限制部件使用的cpu核数及内存数量。
95.图3为本发明实施例提供的一种终端300的结构示意图,该终端300可以用于执行本发明实施例提供的整机动态压力测试方法。
96.其中,该终端300可以包括:处理器310、存储器320及通信单元330。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本发明的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
97.其中,该存储器320可以用于存储处理器310的执行指令,存储器320可以由任何类型的易失性或非易失性存储终端或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。当存储器320中的执行指令由处理器310执行时,使得终端300能够执行以下上述方法实施例中的部分或全部步骤。
98.处理器310为存储终端的控制中心,利用各种接口和线路连接整个电子终端的各个部分,通过运行或执行存储在存储器320内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子终端的各种功能和/或处理数据。所述处理器可以由集成电路(integrated circuit,简称ic)组成,例如可以由单颗封装的ic所组成,也可以由连接多颗相同功能或不同功能的封装ic而组成。举例来说,处理器310可以仅包括中央处理器(central processing unit,简称cpu)。在本发明实施方式中,cpu可以是单运算核心,也可以包括多运算核心。
99.通信单元330,用于建立通信信道,从而使所述存储终端可以与其它终端进行通信。接收其他终端发送的用户数据或者向其他终端发送用户数据。
100.本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:rom)或随机存储记忆体(英文:random access memory,简称:ram)等。
101.因此,本发明结合cgroup资源控制技术,对服务器各个部件压力程序进行资源控制,从而更加精确的控制整机压力,使整个服务器的稳定性测试更加灵活多变,能模拟更多
的压力场景,本实施例所能达到的技术效果可以参见上文中的描述,此处不再赘述。
102.本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中如u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质,包括若干指令用以使得一台计算机终端(可以是个人计算机,服务器,或者第二终端、网络终端等)执行本发明各个实施例所述方法的全部或部分步骤。
103.本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于终端实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
104.在本发明所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
105.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
106.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
107.尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1