本发明涉及计算机技术领域,特别涉及一种自动化控制器、系统和跨节点访问测试方法。
背景技术:
随着计算机行业的快速发展,为了提高服务器的运行速率,常常将多个节点组成一个服务器,并将一个运行系统运行在该多个节点上,那么,对该多个节点组成的服务器的运行效率进行测试是研发过程中重要的一环。
目前,对于多节点组成的服务器的测试,主要是对服务器总体运行性能如访问带宽和访问延迟等的测试,而不能对服务器内部跨节点访问进行测试。
技术实现要素:
本发明实施例提供了一种自动化控制器、系统和跨节点访问测试方法,能够实现跨节点访问测试。
一种自动化控制器,应用于服务器,包括:控制单元、测试单元及输出单元,其中,
所述控制单元,用于接收到第一命令,根据所述第一命令,控制安装外设的语言编译器,并接收到第二命令,根据所述第二命令,控制外设的测试工具运行在所述外设的语言编译器上;
所述测试单元,用于获取各个外设节点的信息,根据每一个外设节点的信息,控制所述外设的测试工具测试各个外设节点交叉访存;
所述输出单元,用于设置结果存储文件,将所述测试单元测试得到的交叉访存结果以表格形成存储到所述结果存储文件中。
优选地,上述自动化控制器,进一步包括:设置单元,其中,
所述设置单元,用于确定外设节点个数,根据所述外设节点个数,设置测试次数;
所述测试单元,用于控制所述外设的测试工具执行所述设置单元设置的测试次数。
优选地,所述测试单元,用于控制stream工具测试每一个外设节点访问其他各个外设节点时,采集每一个外设节点中CPU和内存中的访问带宽和访问延迟;
所述输出单元,进一步用于对所述测试单元采集的访问带宽和访问延迟进行格式化,输出格式化后的访问带宽和访问延迟。
优选地,上述自动化控制器,进一步包括:解压单元,其中,
所述解压单元,用于接收外设的测试工具的压缩包,并对所述压缩包进行解压;
所述控制单元,用于根据所述第二命令,控制解压后的外设的测试工具运行在所述外设的语言编译器上。
优选地,
所述第一命令,包括:expect命令;
所述第二命令,包括:numa命令。
一种自动化控制系统,应用于服务器,包括:上述任一所述的自动化控制器、测试工具、语言编译器及各个节点,其中,
所述测试工具,用于接收所述自动化控制器的控制,运行在所述语言编译器上,测试各个节点交叉访存;
所述语言编译器,用于承载所述测试工具,顺序运行在所述各个节点上。
优选地,所述测试工具,包括:stream工具。
一种跨节点访问测试方法,应用于具有至少两个节点的服务器,包括:
接收到第一命令,根据所述第一命令,控制安装语言编译器;
接收到第二命令,根据所述第二命令,控制测试工具运行在所述语言编译器上;
获取服务器中各个节点的信息,根据每一个节点的信息,控制所述测试工具测试各个外设节点交叉访存;
将交叉访存结果以表格形成存储到预设的结果存储文件中。
优选地,上述方法进一步包括:确定节点个数,根据所述节点个数,设置测试次数;
所述控制所述测试工具测试各个外设节点交叉访存,包括:控制所述测试工具执行所述测试次数,进行测试各个外设节点交叉访存。
优选地,所述控制所述测试工具测试各个外设节点交叉访存,包括:控制所述测试工具测试每一个节点访问其他各个外设节点时,采集每一个节点中CPU和内存中的访问带宽和访问延迟;
所述将交叉访存结果以表格形成存储到预设的结果存储文件中,包括:对采集的访问带宽和访问延迟进行格式化,输出格式化后的访问带宽和访问延迟。
优选地,上述方法进一步包括:接收测试工具的压缩包,并对所述压缩包进行解压;
所述控制测试工具运行在所述语言编译器上,包括:控制解压后的测试工具运行在所述语言编译器上。
优选地,
所述第一命令,包括:expect命令;
所述第二命令,包括:numa命令;
优选地,
所述测试工具,包括:stream工具。
本发明实施例提供了一种自动化控制器、系统和跨节点访问测试方法,该自动化控制器应用于服务器,通过控制单元接收到第一命令,根据第一命令,控制安装外设的语言编译器,并接收到第二命令,根据第二命令,控制外设的测试工具运行在外设的语言编译器上,通过该过程实现了测试工具的运行,通过测试单元获取各个外设节点的信息,根据每一个外设节点的信息,控制外设的测试工具测试各个外设节点交叉访存,通过输出单元设置结果存储文件,将测试单元测试得到的交叉访存结果以表格形成存储到结果存储文件中,通过自动化控制器中的测试单元能够控制测试工具测试测试每个外设节点交叉访存,从而实现跨节点访问测试。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的一种自动化控制器的结构示意图;
图2是本发明另一个实施例提供的一种自动化控制器的结构示意图;
图3是本发明又一个实施例提供的一种自动化控制器的结构示意图;
图4是本发明一个实施例提供的一种自动化控制系统的结构示意图;
图5是本发明一个实施例提供的一种跨节点访问测试方法的流程图;
图6是本发明另一个实施例提供的一种跨节点访问测试方法的流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供一种自动化控制器,应用于服务器,包括:控制单元101、测试单元102及输出单元103,其中,
所述控制单元101,用于接收到第一命令,根据所述第一命令,控制安装外设的语言编译器,并接收到第二命令,根据所述第二命令,控制外设的测试工具运行在所述外设的语言编译器上,并触发所述测试单元;
所述测试单元102,用于接收所述控制单元101的触发,获取各个外设节点的信息,根据每一个外设节点的信息,控制所述外设的测试工具测试各个外设节点交叉访存;
所述输出单元103,用于设置结果存储文件,将所述测试单元102测试得到的交叉访存结果以表格形成存储到所述结果存储文件中。
在图1所示的实施例中,通过控制单元接收到第一命令,根据第一命令,控制安装外设的语言编译器,并接收到第二命令,根据第二命令,控制外设的测试工具运行在外设的语言编译器上,通过该过程实现了测试工具的运行,通过测试单元获取各个外设节点的信息,根据每一个外设节点的信息,控制外设的测试工具测试各个外设节点交叉访存,通过输出单元设置结果存储文件,将测试单元测试得到的交叉访存结果以表格形成存储到结果存储文件中,通过自动化控制器中的测试单元能够控制测试工具测试测试每个外设节点交叉访存,从而实现跨节点访问测试。
如图2所示,在本发明另一实施例中,上述自动化控制器,进一步包括:设置单元201,其中,
所述设置单元201,用于确定外设节点个数,根据所述外设节点个数,设置测试次数;
所述测试单元102,用于控制所述外设的测试工具执行所述设置单元201设置的测试次数。
在本发明又一实施例中,所述测试单元102,用于控制stream工具测试每一个外设节点访问其他各个外设节点时,采集每一个外设节点中CPU和内存中的访问带宽和访问延迟;
所述输出单元103,进一步用于对所述测试单元102采集的访问带宽和访问延迟进行格式化,输出格式化后的访问带宽和访问延迟。
如图3所示,在本发明另一实施例中,上述自动化控制器,进一步包括:解压单元301,其中,
所述解压单元301,用于接收外设的测试工具的压缩包,并对所述压缩包进行解压;
所述控制单元101,用于根据所述第二命令,控制解压后的外设的测试工具运行在所述外设的语言编译器上。
在本发明另一实施例中,所述第一命令,包括:expect命令;
所述第二命令,包括:numa命令。
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
如图4所示,本发明实施例提供一种自动化控制系统,应用于服务器,包括:上述任一所述的自动化控制器401、测试工具402、语言编译器403及各个节点404,其中,
所述测试工具402,用于接收所述自动化控制器401的控制,运行在所述语言编译器403上,测试各个节点404交叉访存;
所述语言编译器403,用于承载所述测试工具402,顺序运行在所述各个节点404上。
在本发明另一实施例中,所述测试工具,包括:stream工具。
如图5所示,本发明实施例提供了一种跨节点访问测试方法,应用于具有至少两个节点的服务器,该方法可以包括以下步骤:
步骤501:接收到第一命令,根据所述第一命令,控制安装语言编译器;
步骤502:接收到第二命令,根据所述第二命令,控制测试工具运行在所述语言编译器上;
步骤503:获取服务器中各个节点的信息,根据每一个节点的信息,控制所述测试工具测试各个外设节点交叉访存;
步骤504:将交叉访存结果以表格形成存储到预设的结果存储文件中。
在本发明一个实施例中,为了能够保证交叉访存的完整性,上述方法进一步包括:确定节点个数,根据所述节点个数,设置测试次数;步骤503的具体实施方式,包括:控制所述测试工具执行所述测试次数,进行测试各个外设节点交叉访存。例如:节点个数为3个,则可将测试次数设置为3次,即节点1和节点2之间一次,节点2和节点3之间1次,节点1和节点3之间1次,从而对每两个节点间的访存进行了测试。
在本发明一个实施例中,步骤503的具体实施方式,包括:控制所述测试工具测试每一个节点访问其他各个外设节点时,采集每一个节点中CPU和内存中的访问带宽和访问延迟;步骤504的具体实施方式,包括:对采集的访问带宽和访问延迟进行格式化,输出格式化后的访问带宽和访问延迟。
在本发明一个实施例中,为了进一步实现自动化,上述方法进一步包括:接收测试工具的压缩包,并对所述压缩包进行解压;步骤502的具体实施方式,包括:控制解压后的测试工具运行在所述语言编译器上。
在本发明一个实施例中,所述第一命令,包括:expect命令;所述第二命令,包括:numa命令;使测试过程操作简便。
在本发明一个实施例中,所述测试工具,包括:stream工具。
如图6所示,本发明另一实施例提供了一种跨节点访问测试方法,应用于具有至少两个节点的服务器,该方法可以包括以下步骤:
步骤601:接收stream工具的压缩包,并对所述压缩包进行解压;
在该步骤中,实现了解压自动化,另外,在该步骤中可以搭建系统测试环境,如安装K-UX操作系统等,并通过将测试工具压缩包Stream.zip和上述自动化控制器的压缩包l_ccompxe_intel64_2013.5.192.tgz导入K-UX系统下,并通过#tar zxvf Stream.zip和#tar zxvf l_ccompxe_intel64_2013.5.192.tgz过程实现智能的对测试工具压缩包和自动化控制器的压缩包的解压。
步骤602:接收到expect命令,根据所述expect命令,控制安装语言编译器;
该步骤的实现过程可以通过在上述自动化控制器中设置下述代码实现:
expect<<-END
spawn/opt/l_ccompxe_intel64_2013.2.146/install.sh
sleep 30
#Press Enter key to continue or q to quit:enter
expect"DONTCARE"
send"\r"
#--More Press space to continue q to quit:q
expect"DONTCARE"
send"q"
#Type accept to continue or decline to back to the previous menu:accept
expect"DONTCARE"
send"accept\r"
#Please type a selection or press enter to accept default choice[1]:2
expect"DONTCARE"
send"2\r"
#Please type a selection or press"enter"to accept default choice[1]:2
#expect"DONTCARE"
#send"2\r"
#sleep 10
#Please type the full path to your licensefile(s):/opt/l_ccompxe_intel64_2013.2.146
#expect"DONTCARE"
#send"/opt/l_ccompxe_intel64_2013.2.146\r"
#sleep 10
#Press Enter key to continue:enter
expect"DONTCARE"
send"\r"
sleep 10
#Please type a selection:1
expect"DONTCARE"
send"1\r"
sleep 10
#Please type a selection or press enter to accept default choice[1]:1
expect"DONTCARE"
send"1\r"
sleep 60
#Please type a selection or press enter to accept default choice[q]:enter
expect"DONTCARE"
send"\r"
sleep 1
expect"DONECARE"
send"\r"
expect eof
exit
END。
步骤603:接收到numa命令,根据所述numa命令,控制解压后的stream工具运行在所述语言编译器上;
步骤604:确定节点个数,根据所述节点个数,设置测试次数;
该确定节点个数的过程为:
nodenum=$(numactl--show|grep cpubind|awk'{print NF-2}'|awk'NR==2{print$1}
')
设置测试次数的过程:
read-p"Please input number:"num
workfile=/home/Stream
resultfile=/home/streamresults
echo$num
即该测试次数可以跟节点个数相关,也可以是用户任意设定的。
步骤605:获取服务器中各个节点的信息;
步骤606:根据每一个节点的信息,控制所述stream工具执行所述测试次数,进行测试各个外设节点交叉访存;
该步骤主要是,控制所述stream工具测试每一个节点访问其他各个外设节点时,采集每一个节点中CPU和内存中的访问带宽和访问延迟;
该步骤可以通过下述程序实现:
步骤607:对采集的访问带宽和访问延迟进行格式化,输出格式化后的访问带宽和访问延迟。
该步骤具体实现代码可以为:
另外,可以通过下述程序,将运行结果格式化输出到屏幕上:
根据上述方案,本发明的各实施例,至少具有如下有益效果:
1.通过控制单元接收到第一命令,根据第一命令,控制安装外设的语言编译器,并接收到第二命令,根据第二命令,控制外设的测试工具运行在外设的语言编译器上,通过该过程实现了测试工具的运行,通过测试单元获取各个外设节点的信息,根据每一个外设节点的信息,控制外设的测试工具测试各个外设节点交叉访存,通过输出单元设置结果存储文件,将测试单元测试得到的交叉访存结果以表格形成存储到结果存储文件中,通过自动化控制器中的测试单元能够控制测试工具测试测试每个外设节点交叉访存,从而实现跨节点访问测试。
2.通过控制stream工具测试每一个外设节点访问其他各个外设节点时,采集每一个外设节点中CPU和内存中的访问带宽和访问延迟;对所述测试单元采集的访问带宽和访问延迟进行格式化,输出格式化后的访问带宽和访问延迟,使得各个节点间的访问带宽和访问延迟能够被获得,同时,通过格式化,避免输出结果出现乱码,使用户能够准确的获知测试结果。
3.通过解压单元接收外设的测试工具的压缩包,并对所述压缩包进行解压;并通过控制单元根据所述第二命令,控制解压后的外设的测试工具运行在所述外设的语言编译器上,使得从解压过程到测试过程均实现自动化。
4.由于本发明实施例实现对各个节点交叉访问的每个节点的访问带宽和访问延迟进行测试,并为用户提供该测试结果,从而使用户能够更加准确的判定该服务器是否合格,保证测试的准确性。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。