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”。这时 可以
修改cbcrond.yaml,把reconstruct的值改成false,
用上面的命令重启cbcrond
- lastusagetime:
与reconstruct一起使用,指示cbcrond从哪个usage文件开始使用usage数据修复账单。
usage文件每15分钟生成一个,只有当月的(上一个月的保存在子目录lastmonth里)。文件名的格式为ddhhmm.json。这里 dd表示日,hh表示时,mm表示分。如果账单恢复从某个usage文件开始,打开这个文件,把头部”This_usage_time” 后面的时间戳(如1747938600)配置在cbcrond.yaml的lastusagetime参数中。
警告
恢复帐单后务必修改配置文件,重启cbcrond。