linux内存功耗测试,一种服务器动态功耗的测试方法[亲测有效]

linux内存功耗测试,一种服务器动态功耗的测试方法[亲测有效]一种服务器动态功耗的测试方法【技术领域】[0001]本发明公开一种服务器功耗的测试方法,属于服务器功耗测试领域,具体地说是一种服务器动态功耗的测试方法。【背景技术】[0002]当前节能减排的大背景下,服务器功耗数据日益成为很多客户关心的问题。目前国内服务器能耗已经占用了大量企业的投资,功耗已经与性能和成本并列成为服务器产品的三大衡量标准。开展对服务器节能技术的深入研宄刻不容缓,而对服务器功耗的测试…

大家好,欢迎来到IT知识分享网。

一种服务器动态功耗的测试方法

【技术领域】

[0001]本发明公开一种服务器功耗的测试方法,属于服务器功耗测试领域,具体地说是一种服务器动态功耗的测试方法。

【背景技术】

[0002]当前节能减排的大背景下,服务器功耗数据日益成为很多客户关心的问题。目前国内服务器能耗已经占用了大量企业的投资,功耗已经与性能和成本并列成为服务器产品的三大衡量标准。开展对服务器节能技术的深入研宄刻不容缓,而对服务器功耗的测试是实现功耗管理的基础,在接近应用环境下准确的测量服务器实时动态功耗的基础之上才可以开展对服务器功耗的管理。当前服务器功耗测试主要是测量整机功耗,而且是用PTU、memtest、1meter等测试工具对整机不同部件加压,测试出整机最大功耗和待机功耗数据,但无法获取机器在接近实际应用环境下不同比例负载下的不同部件动态功耗数据。本发明提供一种服务器动态功耗的测试方法,采用一种性能/功耗比基准测试工具,使服务器处于不同比例的负载下,同时通过服务器主板上设计的管理功能,用程序获取CPU、内存在不同loading下的功耗以及CPU的实际利用率,风扇转速等动态数据,便于开展对服务器节能技术的研宄,该方法的测试数据更客观,更接近应用环境,多项测试同时进行,节省了测试时间和人力物力。

【发明内容】

[0003]本发明针对当前服务器功耗测试主要是测量整机功耗,用PTU、memtest、1meter等测试工具对整机不同部件加压,测试出整机最大功耗和待机功耗数据,无法获取机器在接近实际应用环境下不同比例负载下的不同部件动态功耗数据的问题,本发明尤其适用于x86架构红帽以及Centos操作系统6系列,使服务器处于不同比例的负载下,同时通过服务器主板上设计的管理功能,用程序获取CPU、内存在不同loading下的功耗以及CPU的实际利用率,风扇转速等动态数据,便于开展对服务器节能技术的研宄,该方法的测试数据更客观,更接近应用环境,多项测试同时进行,节省了测试时间和人力物力。

[0004]本发明提出的具体方案是:

一种服务器动态功耗的测试方法,具体步骤为:

①搭建SPECpower的测试平台,对测试环境进行准备:建立被测系统SUT端和控制系统CCS端,均安装Linux系统,设置功率检测系统,SUT端盘用外接电源供电;CCS端连接功率检测系统得到电源输入功率数据,并通过网络和测试服务器相连来控制整个流程;

②运行SUT端和CCS端,拷贝JAVA和SPECpower的配置文件到SUT端和CCS端,确保SUT端和CCS端ping通;在SUT端检查java虚拟机是否可用,在CCS端编辑其运行脚本。

[0005]③SUT端和CCS端进行SPECpower测试,同时运行读取各部件功耗数据的脚本;CCS端依次执行下列脚本:

runpower.shruntemp.sh

SUT端执行以下脚本:

runssj.sh

power_get.sh

CCS端依次执行下列脚本:

rundirector.sh

runCCS.sh ;

④测试结束后收集测试结果,并进行处理分析:在result目录下发现有.html文件显示测试各阶段性能与功耗比值的数据;根据电源输出功耗与.html文件中的电源输入功耗数据,评估电源在不同输出功耗情况下的效率,根据cpu输出功耗、内存电源输出功耗、电源输出功耗在同一时刻的数据,计算出服务器在不同loading下的主板自身功耗数据。

[0006]所述的步骤②中SPECpower配置文件的过程为先获取脚本的名称,设置读取各部件功耗数据的次数,设置读取功耗数据的间隔时间;设置保存结果的“文件夹名”,设置保存测试结果的“文件夹名字”中的时间,如果没有要求存在的文件的名字,就重新创建文件夹;输出读取功耗的序号输出该次读取功耗数据的时间点,并写入文件;读取服务器的主板的sensor信息,并用awk命令筛选提取其中的CPU功耗值,写入文件;读取服务器的主板的sensor信息,并用awk命令筛选提取其中的内存功耗值、电源输出功耗值,分别写入各自文件;读取服务器的当前各项资源信息,并用awk命令筛选提取其中的CPU利用率信息,写入文件;读取服务器主板上的各个传感器数据,并用awk命令筛选提取其中的风扇信息,写入文件:设置当一次完整的数据读取完毕后脚本等待多少时间开始下一次读取。

[0007]所述的步骤②中CCS端编辑的运行脚本包括Runpower.sh和alirunssj.sh,其中编辑 Runpower.sh,包括修改功率检测系统 DEVICE=I,修改 DEVICE_P0RT=/dev/ttyUSB0 ;编辑alirunssj.sh包括修改JVMS=根据被测系统的CPU核心数除以4,修改DIRECT0R_HOSTNAME=被测系统上的alirunssj.sh中的IP地址。

[0008]本发明的有益之处是:本发明是对服务器动态功耗的测试方法,此方法能够测试服务器整机性能与功耗的数据,还能获取CPU、内存、风扇等部件的动态功耗数据,该方法弥补了使用PTU、memtest、1meter等测试工具无法获取整机不同负载下不同部件的动态功耗数据的缺点,提高了测试数据的准确性和有效性,还能评估电源在不同输出功率时候的转化效率。该测试方法操作简单,自动化程度高,实用性较强,能够节省人力,有效确保了服务器各部件动态功耗数据的准确性,是测试服务器各部件动态功耗非常有效的方法。

【具体实施方式】

[0009]本发明以SPECpower2008来做具体实施的说明。SPECpower2008是一种性能/功耗比基准测试工具,用于评估运行基于Java的应用程序的服务器的功耗情况。它应用specjbb作为工作负载,先实时满负荷的运行3次,求得平均值得到系统的最高性能值,然后系统以此为参照,按100%,90%, 80%….10%, 0%(idle)运行工作负载,其系统的利用率也依次下降,性能运行结果会以SSj_ops方式记录,并发送到控制端。同时连接系统电源的功率仪会实时记录系统的总功率状况(Average Active Power (W)),并通过串口输出到控制机上,最后控制机系统会把性能和功率做一个累加并相除得到性能功耗比(Σ ssj_ops / Σ power =Performance to Power Rat1)。米用 SPECpower2008 这个性能 / 功耗比基准测试工具,可以使服务器处于不同比例的负载下,模拟基于JAVA的应用环境。

[0010]一种服务器动态功耗的测试方法,具体步骤为:

①搭建SPECp0wer的测试平台,对测试环境进行准备:建立被测系统SUT端和控制系统CCS端,均安装Linux系统,设置功率检测系统,SUT端盘用外接电源供电;CCS端连接功率检测系统得到电源输入功率数据,并通过网络和测试服务器相连来控制整个流程;

硬件支持上可以准备两台服务器搭建能测试SPECpower的平台,准备测试环境;

a.准备两台服务器,分别为被测主机SUT端,控制主机CCS端,另外准备一台带有串口输出的功率仪,如 Power Analyzer Model 380801 型号,SUT 与 CCS 端均安装 redhat6.5_64位的Linux系统,SUT端硬盘用外接电源供电,不用SUT自己的电源;

b.控制主机CCS端通过串口线和功率仪通讯得到电源输入功率数据,控制主机CCS端通过网络和测试服务器相连来控制整个流程;控制主机CCS端通过USB 口连接温度传感器得到环境温度,没有的话,直接启动温度进程,模拟固定在21度;

②运行SUT端和CCS端,准备软件测试环境:

软件环境准备:

把JAVA (jrel.6.0_24)分别拷贝到被测主机(SPECpower_Hm_SUT)和控制主机(SPECpower_Hm_CCS)中;另外将测试工具SPECpower_ssj2008配置的文件分别拷贝到被测主机(SPECpower_Hm_SUT)和控制主机(SPECpower_Hm_CCS)中;且把测试 power_get.sh 拷贝到测试主机SUT ;

SPECpower_ssj2008配置的文件过程为:

先获取脚本的名称;

设置读取各部件功耗数据的次数,设置读取功耗数据的间隔时间;

设置保存结果的“文件夹名”,设置保存测试结果的“文件夹名字”中的时间,如果没有要求存在的文件的名字,就重新创建文件夹;

输出读取功耗的序号输出该次读取功耗数据的时间点,并写入time, log文件;

读取服务器的主板的sensor信息,并用awk命令筛选提取其中的CPU功耗值,写入cpu_pwr.log 文件;

读取服务器的主板的sensor信息,并用awk命令筛选提取其中的内存功耗值、电源输出功耗值,分别写入mem_pwr.log文件和Total_pwr.log文件;

读取服务器的当前各项资源信息,并用awk命令筛选提取其中的CPU利用率信息,写入cpu_util.log 文件;

读取服务器主板上的各个传感器数据,并用awk命令筛选提取其中的风扇信息,写入FAN.log文件:设置当一次完整的数据读取完毕后脚本等待多少时间开始下一次读取;主要程序代码如下:

ScriptName: power_get.sh

L00P_NUM=10000

STEP_TIME=1

NAME=’hostname’_N0DE_PWRNTDIR=’ date +%Y%m%d-%H%M’if [ ! -d $NAME-$NTDIR ]; thenmkdir $NAME_$NTDIRfi

for(( i = 0; i < $LOOP_NUM; i++ ))do

再多了解一些

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/24283.html

(0)
上一篇 2023-08-25 22:45
下一篇 2023-08-26 18:45

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信