Slurm使用hdf5/influxdb收集节点和作业的能耗、IB、fs等信息

1. 参数

1.1 slurm.conf

AcctGatherNodeFreq

AcctGather插件用于节点计费的采样间隔。 对于AcctGather插件值为none的情况,将忽略此参数。 对于所有其他值,此参数是节点记帐样本之间的秒数。 对于acct_gather_energy / rapl插件,请将其值设置为小于300,因为计数器可能会超出此速率溢出。 默认值为零, 此值禁用节点的记帐采样。 注意:作业的计费采样间隔由JobAcctGatherFrequency的值确定。

AcctGatherEnergyType

标识用于能耗核算的插件。jobacct_gather插件和slurmd守护程序调用此插件来收集作业和节点的能耗数据。能耗数据的收集是在节点级别上进行的,因此仅在exclusive的作业分配的情况下,能耗测量值才能反映作业的实际消耗。在作业之间共享节点的情况下,报告的每个作业的能耗(通过sstat或sacct)将无法反映作业的实际能耗。

  • acct_gather_energy/none

不收集能源消耗数据

  • acct_gather_energy/ipmi

使用智能平台管理接口(IPMI)从基板管理控制器(BMC)收集能耗数据。

  • acct_gather_energy/rapl

使用运行平均功率限制(RAPL)机制从硬件传感器收集能耗数据。 请注意,启用RAPL可能需要执行命令“ sudo modprobe msr”。

AcctGatherInfinibandType

标识用于infiniband网络流量统计的插件。 jobacct_gather插件和slurmd守护程序调用此插件来收集作业和节点的网络流量数据。 网络流量数据的收集在节点级别进行,因此仅在排他作业分配的情况下,收集的值将反映作业的实际流量。 如果作业之间存在节点共享,则报告的每个作业的网络流量(通过sstat或sacct)将不会反映作业的实际网络流量。

  • acct_gather_infiniband/none

不收集数据

  • acct_gather_infiniband/ofed

Infiniband网络流量数据通过OFED库从Infiniband设备的硬件监控计数器中采集。为了计算每个作业网络流量,添加“ic/ofed”TRES到AccountingStorageTRES。

AcctGatherFilesystemType

标识用于文件系统流量统计的插件。 jobacct_gather插件和slurmd守护程序调用此插件来收集作业和节点的文件系统流量数据。 文件系统流量数据的收集在节点级别上进行,因此仅在排他作业分配的情况下,收集的值将反映作业的实际流量。 如果作业之间存在节点共享,则每个作业的报告文件系统流量(通过sstat或sacct)将不会反映该作业的实际文件系统流量。

  • acct_gather_filesystem/none

不收集数据

  • acct_gather_filesystem/lustre

Lustre 文件系统流量数据是从/ proc / fs / lustre /中的计数器收集的。为了考虑每个作业的lustre流量,请将“ fs / lustre” TRES添加到AccountingStorageTRES。

AcctGatherProfileType

标识用于详细作业分析的插件。jobacct_gather插件和slurmd守护进程调用这个插件来收集诸如I/O计数、内存使用或作业和节点的能耗等详细数据。这个插件中有一些接口来收集数据,比如步骤开始和完成,任务开始和完成,以及账户收集频率。在节点级别收集的数据仅在独占作业分配的情况下与作业相关。

  • acct_gather_profile/none

不收集数据

  • acct_gather_profile/hdf5

这启用了HDF5插件。配置文件存储的目录和收集的值都配置在acct_gather.conf文件中。

  • acct_gather_profile/influxdb

这将启用 influxdb插件。 influxdb实例主机,端口,数据库,保留策略以及收集的值在acct_gather.conf文件中配置。

1.2 acct_gather.conf

EnergyIPMI

  • EnergyIPMIFrequency=<number>

这个参数是BMC访问样本之间的秒数。

  • EnergyIPMICalcAdjustment=<yes|no>

如果设置为“yes”,则对最后一个BMC访问样本和步骤消耗更新之间的消耗进行近似处理,以获得更准确的任务消耗。调整在步骤开始时进行,每次更新消耗,包括步骤结束时。近似不累加,只使用第一次和最后一次调整来计算消耗。默认是“no”。

  • EnergyIPMIPowerSensors=<key=values>

(可选)指定要使用的传感器的ID。可以使用“;”设置多个<key = values> 分隔符。关键字“Node”是强制性的,用于了解节点(scontrol show节点)和作业(sacct)的能耗。其他键是可选的,由管理员命名。仅当激活配置文件的能量以存储每个键的功率(以瓦特为单位)时,这些键才有用。<values>是整数,可以使用“,”分隔符设置多个值。列出的传感器的总和用于每个键。EnergyIPMIPowerSensors是可选的,默认值为“ Node=number”,其中“ number”是ipmi-sensors返回的第一个功率传感器的ID。

即EnergyIPMIPowerSensors = Node = 16,19,23,26; Socket0 = 16,23; Socket1 = 19,26; SSUP = 23,26; KNC = 16,19

EnergyIPMIPowerSensors = Node = 29,32; SSUP0 = 29; SSUP1 = 32

EnergyIPMIPowerSensors = Node = 1280

定义以下acct_gat .conf参数来控制libipmiconsole的IPMI配置默认值:

  • EnergyIPMIUsername=USERNAME 指定BMC用户名
  • EnergyIPMIPassword=PASSWORD 指定BMC密码

ProfileHDF5

  • ProfileHDF5Dir=<path>

此参数是指向共享文件夹的路径,acct_collec_profile插件将在其中写入详细数据(通常为HDF5文件)。假定该目录位于由控制器和所有计算节点共享的文件系统上。这是一个必需的参数。

  • ProfileHDF5Default

以逗号分隔的每次作业提交要收集的数据类型列表:

All All data types are collected. (Cannot be combined with other values.)

None No data types are collected. This is the default. (Cannot be combined with other values.)

Energy Energy data is collected.

Filesystem File system (Lustre) data is collected.

Network Network (InfiniBand) data is collected.

Task Task (I/O, Memory, ...) data is collected.

ProfileInfluxDB

  • ProfileInfluxDBDatabase

要写入概要信息的InfluxDB数据库名称

  • ProfileInfluxDBDefault

以逗号分隔的每次作业提交要收集的数据类型列表:

All All data types are collected. (Cannot be combined with other values.)

None No data types are collected. This is the default. (Cannot be combined with other values.)

Energy Energy data is collected.

Filesystem File system (Lustre) data is collected.

Network Network (InfiniBand) data is collected.

Task Task (I/O, Memory, ...) data is collected.

  • ProfileInfluxDBHost=<hostname>:<port>

执行influxd实例的计算机的主机名以及HTTP API使用的端口。

HTTP API使用的端口是通过[http]部分中的bind-address influxdb.conf选项配置的端口。

示例:ProfileInfluxDBHost = myinfluxhost:8086

  • ProfileInfluxDBPass

在ProfileInfluxDBUser中配置的用户名的可选密码。

  • ProfileInfluxDBRTPolicy

在ProfileInfluxDBDatabase选项中配置的数据库的InfluxDB保留策略名称。

  • ProfileInfluxDBUser

可选的InfluxDB用户名,应使用该用户名来访问ProfileInfluxDBDatabase中配置的数据库。 仅在InfluxDB配置为在[http] config部分中启用了身份验证,并且已授予用户至少对数据库的WRITE访问权限时才需要这样做。 另请参阅ProfileInfluxDBPass。

InfinibandOFED

  • InfinibandOFEDPort=<number>

此参数表示我们愿意监视的本地Infiniband卡的端口号。 默认端口是1。

配置文件例子:

###  
# Slurm acct_gather configuration file  
###  
# Parameters for AcctGatherEnergy/impi plugin  
EnergyIPMIFrequency=10  
EnergyIPMICalcAdjustment=yes  
#  
# Parameters for AcctGatherProfileType/hdf5 plugin  
ProfileHDF5Dir=/app/slurm/profile_data  
# Parameters for AcctGatherInfiniband/ofed plugin  
InfinibandOFEDPort=1  

1.3 作业相关记账信息收集参数

JobAcctGatherType

作业记账机制类型。目前可接受的值包括“jobacct_gather/linux”(对于Linux系统),并且是推荐的值,“jobacct_gather/cgroup”和“jobacct_gather/none”(不收集记帐数据)。默认值为“ jobacct_gather / none”。“jobacct_gather/cgroup”是Linux操作系统的一个插件,它使用cgroups来收集记帐统计数据。该插件收集以下统计信息:来自cgroup内存子系统:memory y.usage_in_bytes(报告为‘pages’)和rss from memory y.stat(报告为‘rss’)。来自cgroup cpuacct子系统:用户CPU时间和系统CPU时间。cgroups未提供虚拟内存大小(‘vsize’)的值。

为了使用sstat工具“jobacct_gather/linux”或“jobacct_gather/cgroup”必须配置。

注意:更改此配置参数会更改Slurm守护进程之间的消息内容。任何先前运行的作业步骤都由slurmstepd守护进程管理,该守护进程将在该作业步骤的整个生命周期中持续存在,并且不会更改其通信协议。仅当没有正在运行的作业步骤时才更改此配置参数。

JobAcctGatherFrequency

作业记帐和分析采样间隔。支持的格式如下:

JobAcctGatherFrequency=<datatype>=<interval>

其中<datatype>=<interval>指定jobacct_gather插件的任务采样间隔或acct_gather_profile插件的评测类型的采样间隔。可以指定多个逗号分隔的<datatype>=<interval>间隔。支持的数据类型如下:

task=<interval>

其中<interval>是jobacct_gather插件和acct_gather_profile插件进行任务评测的任务采样间隔(以秒为单位)。

energy=<interval>

其中<interval>是使用acct_gather_energy插件进行能量分析的采样间隔(以秒为单位)

network=<interval>

其中<interval>是使用acct_gather_InfiniBand插件进行InfiniBand性能分析的采样间隔(以秒为单位)

filesystem=<interval>

其中<interval>是使用acct_gather_filesystem插件进行文件系统评测的采样间隔(以秒为单位)。

task采样间隔的默认值为30秒。所有其他间隔的默认值为0。间隔为0将禁用指定类型的采样。如果task采样间隔为0,则仅在作业终止时收集记帐信息(减少SLURM对作业的干扰)。较小的(非零)值对作业性能的影响较大,但对于任务数少于10000的应用程序,30秒的值可能不太明显。用户可以在提交作业时使用--acctg-freq选项在每个作业的基础上独立覆盖每个间隔。

JobAcctGatherParams

作业帐户收集插件的任意参数,当前可接受的值包括:

  • NoShared 从计费中排除共享内存
  • UsePss 使用PSS值而不是RSS来计算内存的实际使用量。 PSS值将另存为RSS
  • OverMemoryKill 每次JobAcctGather插件收集记帐信息时,删除检测到占用的内存多于请求的作业或步骤。此参数不会直接终止作业,而只会终止步骤。为此,请参见MemLimitEnforce。使用此参数时应谨慎,因为如果作业超出其内存分配,则可能会影响其他进程和/或机器运行状况。注意:建议通过在TaskPlugin中启用task/cgroup并使用ConstrainRAMSpace=yes cgroup.conf来限制内存,而不是使用此JobAcctGather机制进行内存强制,因为前者的分辨率较低(JobAcctGatherFreq),并且可能在某个时候发生OOM。

2. 配置(以IB为例)

2.1 查看IB 

使用ibhosts 命令查看ib端口都为1。ibhosts | grep `hostname`

2.2 slurm.conf添加配置

JobCompType=jobcomp/elasticsearch
JobCompLoc=http://127.0.0.1:9200
JobAcctGatherFrequency=network=30
AcctGatherNodeFreq=30
AcctGatherProfileType=acct_gather_profile/influxdb
AcctGatherInfinibandType=acct_gather_infiniband/ofed

 2.3 acct_gather.conf添加配置

ProfileInfluxDBDatabase=slurm_profile
ProfileInfluxDBDefault=All
ProfileInfluxDBHost=localhost:8086
ProfileInfluxDBUser=influx
ProfileInfluxDBPass=influx
ProfileInfluxDBRTPolicy=autogen
InfinibandOFEDPort=1

 2.4 influxdb安装

wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.9.x86_64.rpm

yum -ivh influxdb-1.7.9.x86_64.rpm

创建数据库

influx

create database slurm_profile

3. 测试

influx

use slurm_profile

select * from /.*/ limit 1

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值