cbcrond.yaml#

配置文件#

cbcrond.yaml

概述#

cbcrond.yaml 文件定义了作业资源使用情况、实时成本和每月账单生成。

该文件采用严格的 YAML 格式。包含特殊字符的文本字符串需要用单引号括起来(例如“xxx”)。

内容#

· usage部分

· charge部分

· bill部分

usage 部分#

描述#

usage 部分定义了定期作业使用情况生成的属性。

属性#

enabled:

启用(值:true)或禁用(值:false)作业使用情况生成。

启用此功能后,cbcrond 将定期生成作业使用情况文件,包括在此期间的 CPU、内存、GPU 和应用程序资源使用情况。

outputperiod:

指定作业使用量生成的时间段(以分钟为单位)。允许的值介于 1 到 240 分钟之间。请确保此值小于 cb.yaml 中定义的 memperiod。默认情况下,outputperiod 为 60 分钟。

默认值为:60(分钟)

usagefilepath:

指定作业使用量文件路径。请确保 SkyForm AIP 管理员对此路径拥有写入权限。

默认值为:/opt/skyformai/work/usages

charge 部分#

描述#

charge 部分定义了实时定价的属性。

属性#

enabled:

启用(值:true)或禁用(值:false)定期使用量成本生成。

启用此功能后,cbcrond 将在作业使用量文件中同时生成作业使用量成本和资源使用量。 禁用此功能后,作业使用情况文件仅包含资源使用情况。

费用部分包含标准和用户折扣子部分。

standard:

standard子部分定义标准价格。这部分包含 cpuperhour、mempergbhour、gpuperhour 和 appperhour 子部分。

cpuperhour:

cpuperhour 子节定义了队列的每 CPU 每小时价格列表。如果只有一个价格,则队列必须是全部。

每个价格包含以下属性:

· queue:队列名称或全部。

· price:每 CPU 每小时的价格。

mempergbhour:

mempergbhour 子节定义了一个队列的每 GB 每小时内存价格列表。如果只有一个价格,则该队列必须是全部。

每个价格包含以下属性:

· queue:队列名称或全部。

· price:内存每小时价格(以 GB 为单位)。

gpuperhour:

gpuperhour 子节定义了一个队列的每 GPU 每小时价格列表。如果只有一个价格,则该队列必须是全部。

每个价格包含以下属性:

· queue:队列名称或全部。

· price:每个 GPU 每小时价格。

appperhour:

appperhour 子节定义了一个应用程序每小时价格列表。

每个价格包含以下属性:

· app:应用程序。

· price:每个应用程序每小时价格。

userdiscounts:

用户折扣子部分定义了用户折扣列表。

· user:用户名。

· cpu:CPU 价格折扣。必须介于 0 到 1 之间。

· mem:内存价格折扣。必须介于 0 到 1 之间。

· gpu:GPU 价格折扣。必须介于 0 到 1 之间。

· apps:应用程序折扣列表。

· app:应用程序名称。

· rate:此应用程序的折扣。必须介于 0 到 1 之间。

bill 部分#

描述#

bill部分定义了每月账单生成的属性。

属性#

enabled:

启用(值:true)或禁用(值:false)每月账单生成。

启用此功能后,cbcrond 将定期为每个用户生成每月账单文件。

billpath:

指定每月账单文件路径。请确保 SkyForm AIP 管理员对此路径拥有写入权限。

默认值为:/opt/skyformai/work/bills

reconstruct:

在文件系统故障时,一些用户账单可能会生成失败。如果usage(/opt/skyformai/work/usage)数据完整,用户帐单可以 通过usage进行修复。把这个值设成true,并且设置参数lastupdatetime(见下面的参数说明)重启cbcrond:

killall cbcrond; csadmin jmrestart

cbcrond开始修复账单,这个过程需要持续数小时。当账单修复完成后,日志中会有“ReconstructBill is finished”。这时 可以

  1. 修改cbcrond.yaml,把reconstruct的值改成false,

  2. 用上面的命令重启cbcrond

lastusagetime:

与reconstruct一起使用,指示cbcrond从哪个usage文件开始使用usage数据修复账单。

usage文件每15分钟生成一个,只有当月的(上一个月的保存在子目录lastmonth里)。文件名的格式为ddhhmm.json。这里 dd表示日,hh表示时,mm表示分。如果账单恢复从某个usage文件开始,打开这个文件,把头部”This_usage_time” 后面的时间戳(如1747938600)配置在cbcrond.yaml的lastusagetime参数中。

警告

恢复帐单后务必修改配置文件,重启cbcrond。