系统指标#
Ray 导出许多系统指标,这些指标提供了对 Ray 工作负载状态以及硬件利用率统计信息的深入了解。下表描述了官方支持的指标。
注意
某些标签在所有指标中都很常见,例如 SessionName
(唯一标识一个 Ray 集群实例)、instance
(由 Prometheus 应用的每个节点的标签)以及 JobId
(适用的 Ray 作业 ID)。
Prometheus 指标 |
标签 |
描述 |
---|---|---|
|
|
按状态划分的当前任务(远程函数和 Actor 调用)数量。State 标签(例如,RUNNING、FINISHED、FAILED)描述了任务的状态。有关更多信息,请参阅 rpc::TaskState。函数/方法名称作为 Name 标签可用。如果任务由于失败或重建而被重试,则 IsRetry 标签将设置为“1”,否则设置为“0”。 |
|
|
当前处于特定状态的 Actor 数量。State 标签由 gcs.proto 中的 rpc::ActorTableData proto 描述。Actor 类名在 Name 标签中可用。 |
|
|
集群每个节点的逻辑资源使用情况。每个资源都有一定的数量,处于 已使用 状态或 可用 状态。Name 标签定义了资源名称(例如,CPU,GPU)。 |
|
|
对象存储内存使用量(以字节为单位),按逻辑位置 (细分 为 SPILLED、MMAP_DISK、MMAP_SHM 和 WORKER_HEAP)。定义如下。SPILLED——已溢出到磁盘或远程存储解决方案(例如 AWS S3)的对象。默认是磁盘。MMAP_DISK——存储在磁盘上内存映射页中的对象。这种模式非常慢,仅在内存压力严重时发生。MMAP_SHM——存储在共享内存中内存映射页中的对象。在没有内存压力的情况下,这种模式是默认的。WORKER_HEAP——通常较小的对象,存储在 Ray Worker 进程本身的内存中。小对象存储在 worker 堆中。 |
|
|
按状态划分的当前放置组数量。State 标签(例如,PENDING、CREATED、REMOVED)描述了放置组的状态。有关更多信息,请参阅 rpc::PlacementGroupTable。 |
|
|
被 Ray 内存不足杀手 (https://docs.rayai.org.cn/en/master/ray-core/scheduling/ray-oom-prevention.html) 终止的任务和 Actor 数量,按类型(任务或 Actor)和名称(任务和 Actor 的名称)细分。 |
|
|
每个节点的 CPU 利用率百分比 (0..100)。应按每个节点的 CPU 核心数进行缩放,以将单位转换为核心数。 |
|
|
每个节点的 CPU 核心数。 |
|
|
每个 GPU 的 GPU 利用率百分比 (0..NGPU*100)。 |
|
|
每个节点已使用的磁盘空间量,以字节为单位。 |
|
|
每个节点可用的磁盘空间量,以字节为单位。 |
|
|
每个节点的磁盘写入吞吐量,以字节/秒为单位。 |
|
|
每个节点的磁盘读取吞吐量,以字节/秒为单位。 |
|
|
每个节点已使用的物理内存量,以字节为单位。 |
|
|
每个节点可用的物理内存量,以字节为单位。 |
|
|
测量的唯一集大小(以兆字节为单位),按逻辑 Ray 组件细分。Ray 组件包括系统组件(例如 raylet、gcs、dashboard 或 agent)以及正在运行的任务/Actor 的方法名称。 |
|
|
测量的 CPU 百分比,按逻辑 Ray 组件细分。Ray 组件包括系统组件(例如 raylet、gcs、dashboard 或 agent)以及正在运行的任务/Actor 的方法名称。 |
|
|
每个 GPU 已使用的 GPU 内存量,以字节为单位。 |
|
|
每个节点的网络接收吞吐量,以字节/秒为单位。 |
|
|
每个节点的网络发送吞吐量,以字节/秒为单位。 |
|
|
集群中健康节点的数量,按自动伸缩器节点类型细分。 |
|
|
由自动伸缩器报告的失败节点数量,按节点类型细分。 |
|
|
由自动伸缩器报告的待处理节点数量,按节点类型细分。 |
指标语义和一致性#
Ray 保证其所有内部状态指标即使在出现故障时也能达到最终一致性——如果任何 worker 失败,最终正确的状态将反映在 Prometheus 时间序列输出中。但是,任何特定的指标查询并不保证反映集群状态的精确快照。
对于 ray_tasks
和 ray_actors
指标,您应该使用求和查询来绘制它们的输出(例如,sum(ray_tasks) by (Name, State)
)。这样做的原因是 Ray 的任务指标是从多个分布式组件发出的。因此,从不同进程发出的指标点有多个,包括负指标点,必须对这些点求和才能生成分布式系统的正确逻辑视图。例如,对于提交并执行的单个任务,Ray 可能会发出 (submitter) SUBMITTED_TO_WORKER: 1, (executor) SUBMITTED_TO_WORKER: -1, (executor) RUNNING: 1
,求和后会简化为 SUBMITTED_TO_WORKER: 0, RUNNING: 1
。