问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

SPECpower能效评估工具使用指南

创作时间:
作者:
@小白创作中心

SPECpower能效评估工具使用指南

引用
CSDN
1.
https://blog.csdn.net/Micha_Lu/article/details/134612120

SPECpower是由SPEC组织开发的一种性能/功耗比基准测试工具,用于评估基于Java应用程序的服务器功耗情况。本文将详细介绍SPECpower的软件说明、系统组成、测试配置和测试过程等,帮助读者全面了解该工具的使用方法。

一、前言

1、软件说明

官网:

  • SERT®套件用户指南2.0.5

  • SPECpower介绍

  • SPEC基准及工具

  • SPECpower_ssj2008测试结果

  • SPECpower_ssj2008-Design_ccs

  • SPEC
    SPEC(the Standard Performance Evaluation Corporation)是一个由计算机硬件厂商、软件公司、大学、研究机构、系统集成商、出版发型及咨询机构组成的非营利性组织,致力于创建、维护并引导一个计算机系统及业界公认的系统指标。

  • SPECpower
    SPECpower是由SPEC组织开发的一种性能/功耗比基准测试工具,用于评估基于Java应用程序的服务器功耗情况。SPECpower_ssj2008利用标准Java的JDK计算整体服务器性能,并根据其11个不同的工作负载区域段的功耗得出服务器的工作负载/能耗比的测试方式。它应用specjbb作为工作负载,先实时满负荷的运行3次,求得平均值得到系统的最高性能值,然后系统以此为参照,按100%、90%、80%…10%、0%(idle)运行工作负载,其系统的利用率也依次下降,性能运行结果会以ssj_ops方式记录;同时连接系统电源的功率仪(Yokogawa WT210)会实时记录系统的功率状况(Average Active Power(W)),最后系统会把性能和功率做一个累加并相除得到性能功耗比(∑ssj_ops / ∑power =Performance to Power Ratio)

2、软件应用

SPECpower_ssj2008目前是一个比较客观的服务器能耗标准,常用于中国电信、中国移动等运营商服务器集采选型测试中,它可以很好地检测服务器产品能耗,评估后期运行电费,为IDC机房规划建设、能耗分析与控制提供科学依据

3、系统组成

常见SPECpower最小组网包括以下组件:

3.1、SUT(被测系统)
即被测服务器

3.2、CCS(数据收集和控制系统)
即控制台,用于功率数据收集及相关指令下发

3.3、Power Analyzer(功率仪)
用于统计服务器在不同运行负载下的功率数据

4、组网拓扑

  • 被测系统通过电源线与功率仪连接接入外部电源,用于实时获取功率数据
  • 数据收集和控制系统通过网线与被测系统连接至同一网络环境下,用于下发相关控制指令
  • 数据收集和控制系统通过串口线与功率仪连接,用于获取功率仪生成的功率统计数据

2、测试配置

2.1、硬件配置

序号
设备类型
主机名
硬件配置
网络信息
操作系统
1
SUT(被测机)
node131
CPU: Phytium S5000C/64 * 2
内存:256GB
系统盘:Samsung 500GB m.2 SSD * 1
数据盘:Seagate 8TB SATA HDD * 12
缓存盘:MEMBLAZE 3.2TB PCIE SSD * 2
172.16.5.131
Kylin v10
2
CCS(压力机)
node135
CPU:Intel E5-2620 v2 * 2
内存:64GB
系统盘:Samsung 480GB SATA SSD * 2
172.16.5.135
windows server 2012
3
功率计
-
横河电机WT310E
-
-

2.2、测试工具

软件名称
软件版本
软件用途
SPECpower
ssj2008 v1.10
服务器能耗测试

二、测试过程

1、准备阶段

1.1、SUT配置

  • 安装依赖包:java-11-openjdk、numactl
yum install java-11-openjdk.aarch64 numactl -y
  • 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld
  • 关闭selinux,修改
    /etc/selinux/config

    SELINUX=disabled
[root@node131 ~]# cat /etc/selinux/config | grep SELINUX=
SELINUX=disabled
  • 配置JAVA环境变量
JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.19.7-0.ky10h.aarch64/
CLASSPATH=.:${JAVA_HOME}/lib/tools.jar:${JAVA_HOME}/lib.dt.jar
PATH=${JAVA_HOME}/bin:$PATH
export JAVA_HOME CLASSPATH PATH
unset _JAVA_OPTIONS
  • 配置
    ssj/runssj.sh
    脚本
    上传
    ssj/runssj.sh
    脚本到ssj目录下,修改
    DIRECTOR_HOST
    为压力机IP地址
#!/bin/sh
## This is an example of what a run script might look like
##
JVMS=128
## Set to TRUE if jvm Director is on this host
LOCAL_DIRECTOR=FALSE
DIRECTOR_HOST=172.16.5.135
## The SETID is used to identify the descriptive configuration properties
## that will be used for the system under test.  For example, with a SETID
## of "sut", the descriptive configuration properties will be read from the
## file SPECpower_ssj_config_sut.props from the Director system.
SETID=sut
DIRECTOR_PROPFILE=SPECpower_ssj.props
## Benchmark run rules require a list of active OS services be retained for publishable runs.
## For Solaris, this can be accomplished by uncommenting the following line.
## svcs -a > services.txt
## For Red Hat Linux, this can be accomplished by uncommenting the following line.
## /sbin/runlevel > services.txt ; /sbin/chkconfig -list >> services.txt
## Other operating systems will require similar commands.
## Set java options for ssj and director
JAVAOPTIONS_SSJ="-Djava.awt.headless=true -Xms10440m -Xmx10440m"
JAVAOPTIONS_DIRECTOR="-Djava.awt.headless=true -Xms10440m -Xmx10440m"
JAVA=java
CP="ssj.jar:check.jar:lib/jcommon-1.0.16.jar:lib/jfreechart-1.0.13.jar"
date
$JAVA -version
x=1
while [ "$x" -le "$JVMS" ]; do
    a=`expr $x - 1`    
    echo Starting instance $x
    numactl -C $a  -l  $JAVA -cp ${CP} $JAVAOPTIONS_SSJ -XX:+UnlockExperimentalVMOptions -XX:+UseFastSerializer -DfastSerializerEscapeMode=true -XX:+UseParallelGC -XX:+AggressiveUnboxing -XX:+LazyBox -XX:+TieredCompilation  org.spec.power.ssj.SpecPowerSsj -jvmid $x -numJvms $JVMS -director $DIRECTOR_HOST -setid $SETID  > ssjOutput.$x &
#   numactl -N $a  -l  $JAVA -cp ${CP} $JAVAOPTIONS_SSJ -XX:+UnlockExperimentalVMOptions -XX:CompileCommand=blackhole -XX:+UnlockDiagnosticVMOptions -XX:-UseVtableBasedCHA  org.spec.power.ssj.SpecPowerSsj -jvmid $x -numJvms $JVMS -director $DIRECTOR_HOST -setid $SETID  > ssjOutput.$x &
    x=`expr $x + 1`
done
if [ "$LOCAL_DIRECTOR" = "TRUE" ]; then
    echo Starting Director 
    $JAVA -cp ${CP} $JAVAOPTIONS_DIRECTOR -XX:+UnlockExperimentalVMOptions -XX:+UseFastSerializer  -DfastSerializerEscapeMode=true   org.spec.power.ssj.Director -propfile $DIRECTOR_PROPFILE 
else
    wait
fi
date

1.2、CCS配置

  • 下载安装openjdk-11
镜像下载:https://mirrors.tuna.tsinghua.edu.cn/Adoptium/11/jdk/x64/windows/OpenJDK11U-jdk_x64_windows_hotspot_11.0.21_9.msi
  • 修改
    ssj/SPECpower_ssj.props
    文件
    修改
    input.load_level.number_warehouses
    为被测机线程数
input.load_level.number_warehouses=128
  • 修改
    ccs/ccs.props
    文件
    修改
    ptd.pwr1.config.analyzer.model
    为功率计型号
    修改
    ptd.pwr1.config.analyzer.serial
    为功率计序列号
    修改
    ptd.pwr1.config.analyzer.connectivity
    为与功率计的连接方式(串口为RS-232)
ptd.pwr1.config.analyzer.model=WT310E
ptd.pwr1.config.analyzer.serial=C3ZD04018E
ptd.pwr1.config.analyzer.connectivity=RS-232
  • 修改
    ptd/runpower.bat
    文件
    修改
    PTD
    为配置实际使用的ptd文件
    修改
    DEVICE
    为功率计设备号(横河WT210为8 ,WT310为49)
    注:当不知道设备号时,可以改为8,会自动匹配
    修改
    DEVICE_PORT
    为连接端口(查看功率计连接在哪个com口上,根据实际情况配置)
set PTD=ptd-windows-x86.exe
set DEVICE=49
set DEVICE_PORT=COM3
  • 修改
    ccs/ccs.prop
    文件
ccs.ptd.pwr1.current_range_settings=4
  • 修改
    ssj/rundirector.bat
    文件
set JAVAOPTIONS_DIRECTOR=-Xms4096m -Xmx4096m

2、测试阶段

2.1、环境检查

  • 检查被测机上电模式,是否为负载均衡
  • 检查被测机散热模式,是否对风扇转速有限制
  • 被测机配置检查,检查CPU、内存、硬盘、PCIe卡状态是否正常
  • 检查java版本信息
  • 检查压力机与被测机网络连接正常
  • 检查压力机与功率仪连接正常
  • 检查功率仪状态(确保能正确显示服务器电压、电流和功率运行状况)

2.2、启动测试
安装以下测试顺序,依次启动运行程序

1、CCS端运行

  • CCS端运行
    ptd/runpower.bat
  • CCS端运行
    ptd/runtemp.bat
  • CCS端运行
    ssj/rundirector.bat

2、SUT端运行

  • SUT端运行
    ssj/runssj_ft_s5000c.sh

3、CSS端运行

  • CCS端运行
    ccs/runCCS.bat

2.3、查看结果
测试执行完成后,会在压力机生成
Results\ssj.0180\ssj.0180-main.html
文件,重点关注每个阶段
ssj_ops

∑ssj_ops / ∑power
结果

三、Q&A

1、性能调试

不同BIOS配置、系统参数、测试脚本下,对应的能耗表现有所不同,通常情况下,为了快速验证性能调试手段,我们可以修改运行脚本,使其只跑其中1个阶段即可(默认情况下会跑完所有11个阶段阶段,耗时较长)
修改
ssj/SPECpower_ssj.props
文件,增加参数
input.load_level.count=1
,使其只运行第一个阶段

input.load_level.count=1

2、功率仪连接说明

由于测试机电源需与功率仪连接以此获取测试机电压、电流和功率运行状况,故功率仪连接部分需要用到
插排

电源盒

功率仪
三部分,之后测试机电源插入插排即可
注:各线缆连接完成后,电源盒需按下
常规测量
按钮

  • 功率仪产品铭牌
  • 电源盒产品铭牌
  • 电源线接线定义
  • 功率仪电源盒接线说明
  • 连接路径为
    测试机-插排-电源盒-功率仪
    ,各线缆连接完成后,按下电源盒
    常规测量
    按钮,此时功率仪可正常检测测试机电压、电流、功率运行状况,之后功率仪通过串口或者网络将状况数据传输至压力机


© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号