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

【技术领域】

[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

再多了解一些

linux内存功耗测试,一种服务器动态功耗的测试方法相关推荐

  1. 整机压力测试_一种服务器整机压力的测试方法

    一种服务器整机压力的测试方法 [专利摘要]本发明公开了一种服务器整机压力的测试方法,根据测试内容,配置服务器:安装操作系统,准备测试工具IntelWindowsValidationStressSuit ...

  2. Linux内存压力测试stressapptest

    /*********************************************************************** Linux内存压力测试stressapptest* 说 ...

  3. Linux下nvidia压力测试,一种服务器linux系统下GPU压力测试的监控方法与流程

    本发明属于服务器测试技术领域,具体涉及一种服务器linux系统下GPU压力测试的监控方法. 背景技术: 随着社会的快速发展,人们对高网络性能.快速存储.大量内存.超高计算能力的GPU的需求越来越大,产 ...

  4. 两台linux之间带宽,测试两台服务器之间的网络带宽

    一.为什么选择了iperf 之前做了一个项目,说要测试两台服务器之间的带宽,本想通过拷贝来进行测试,后来客户觉得得出的数据没有说服性,于是改拿工具来进行测试.我们这回用的工具名字叫iperf. ipe ...

  5. 手机待机功耗测试软件,移动端相关功耗测试杂谈

    看完 kasi 大哥 写的,我也写一点点儿我知道的~ 为什么要测功耗?测功耗的实际意义有哪些? ROM 级别的,测功耗(包括其自带的应用)是必然的(毕竟 rom 的耗电决定待机时间长短,这是手机的很重 ...

  6. 嵌入式Linux内存压力测试

    原文参考:添加链接描述 1 前言   内存是电子计算机的最重要组成要素之一. 与内存对应的就是外存,如硬盘.外部存储器等.内存是将外存与CPU连接起来的桥梁,计算机中所有数据都需经过内存进行交互,而且 ...

  7. 使用memtester工具对嵌入式Linux内存压力测试

    文章目录 1 前言 2 memtester工具 3 工具编译与使用 3.1 编译 3.2 使用 3.2.1 命令使用格式 3.2.2 测试结果 4 在RK3399平台上测试 1 前言   内存是电子计 ...

  8. linux 内存强度测试软件,linux下的CPU、内存、IO、网络的压力测试工具与方法介绍...

    使用工具stress Centos # yum -y install stress Ubantu # apt-get install stress # stress --help `stress' i ...

  9. linux 内存泄漏 定位,一种内存泄露检查和定位的方法

    一个系统后台服务进程,可能包括多个线程,在生成环境下要求系统程序能够稳定长时间稳定运行而不宕机.其中一个基本的前提就是需要保证系统程序不存在内存泄露.那么,该如何判读系统程序是否存在内存泄露呢?如果存 ...

最新文章

  1. 物联网在“最后一公里”投递中的应用
  2. python文档字符串_结构化的python文档字符串,对IDE友好
  3. Insert SQL Query插入效率优化
  4. str.endswith可以传入集合数据类型,而不仅仅是字符串
  5. Overload重載和Override重写的区别。Overloaded的方法是否可以改变返回值的类型?
  6. Javascript 处理 JSON 数据 示例
  7. C/C++——一个因为unsigned引发的大问题
  8. angular语言前端开发_2020年前端Angular招聘-前端Angular招聘求职信息-拉勾招聘
  9. Android 系统编译环境设置及源代码编译
  10. 常用php操作redis命令整理(五)ZSET类型
  11. 【linux】du命令
  12. 测试方案和测试策略的区别
  13. 皮尔逊(Pearson)相关系数 - 公式和代码实现
  14. 人工智能分为哪两种,人工智能的终极目标,我们怎么才能实现?
  15. CDCAS: A Novel Cloud Data Center Security Auditing System
  16. matlab sub2ind函数
  17. cadence 软件导出ad 文件出错
  18. 推动工业品B2B企业转型:整合制造工业电商平台解决方案
  19. C语言编程>第二十五周 ① 给定程序中,函数fun的功能是:在形参s所指字符串中的每个非数字字符之后插入一个“*”号。
  20. Unity中使用ProtoBuf-保姆式教程

热门文章

  1. php企业微信发送微信群组消息,企业微信可以给群成员单独群发消息吗?怎么给企业微信群里所有成员群发消息?...
  2. visio如何固定地调整图形大小
  3. 怎么重置imac_Mac什么时候需要重置SMC Mac重置SMC方法【】
  4. Andorid开机自动锁频浅析 - 默认开机不锁屏
  5. 密码经济学绝非掌上观纹
  6. android texturevideoview 缓存,TextureView实现VideoView
  7. lightning接口_Lightning+Micro USB+Type-C数据线转接头如何选择
  8. 怎么搭建xss平台云服务器,零成本搭建个人专属XSS平台
  9. [转载]新手开车如何判断前后左右的距离
  10. 如何将Python对象保存在本地文件中?