状态 CLI#
状态#
本节包含访问 Ray 资源(actor、任务、对象等)的实时状态的命令。
注意
API 处于Alpha阶段。此功能需要通过 pip install "ray[default]"
进行完整安装。此功能还需要 Dashboard 组件可用。启动 Ray 集群时需要包含 Dashboard 组件,这是 ray start
和 ray.init()
的默认行为。如需更深入的调试,您可以查看 Dashboard 日志,通常位于 /tmp/ray/session_latest/logs/dashboard.log
,路径为 <RAY_LOG_DIR>/dashboard.log
。
State CLI 允许用户访问各种资源(例如 actor、任务、对象)的状态。
ray summary tasks#
汇总集群的任务状态。
默认情况下,输出包含按任务函数名称分组的信息。
输出模式为 TaskSummaries
。
- Raises
RayStateApiException
如果 CLI 查询数据失败。
ray summary tasks [OPTIONS]
选项
- --timeout <timeout>#
API 请求的超时时间(秒)。默认为 30
- --address <address>#
Ray API 服务器的地址。如果未提供,将通过查询 GCS 服务器自动配置。
ray summary actors#
汇总集群的 actor 状态。
默认情况下,输出包含按 actor 类名称分组的信息。
输出模式为 ray.util.state.common.ActorSummaries
。
- Raises
RayStateApiException
如果 CLI 查询数据失败。
ray summary actors [OPTIONS]
选项
- --timeout <timeout>#
API 请求的超时时间(秒)。默认为 30
- --address <address>#
Ray API 服务器的地址。如果未提供,将通过查询 GCS 服务器自动配置。
ray summary objects#
汇总集群的对象状态。
在调试内存泄漏时推荐使用此 API。有关更多详细信息,请参阅使用 Ray Memory 进行调试。(请注意,此命令几乎等同于 ray memory
,但它返回更容易理解的输出)。
默认情况下,输出包含按对象调用站点分组的信息。请注意,如果未配置环境变量 RAY_record_ref_creation_sites
,则不会收集调用站点,所有数据将聚合为“disable”调用站点。要启用调用站点收集,请在启动 Ray 时设置以下环境变量。
示例
` RAY_record_ref_creation_sites=1 ray start --head `
` RAY_record_ref_creation_sites=1 ray_script.py `
输出模式为 ray.util.state.common.ObjectSummaries
。
- Raises
RayStateApiException
如果 CLI 查询数据失败。
ray summary objects [OPTIONS]
选项
- --timeout <timeout>#
API 请求的超时时间(秒)。默认为 30
- --address <address>#
Ray API 服务器的地址。如果未提供,将通过查询 GCS 服务器自动配置。
ray list#
列出给定资源的所有状态。
通常,在列出所有资源之前,建议先使用 summary API。
输出模式定义在 State API Schema 部分。
例如,ray list tasks
的输出模式为 TaskState
。
用法
列出集群中所有 actor 信息。
` ray list actors `
列出集群中的 50 个 actor。排序顺序无法控制。
` ray list actors --limit 50 `
列出 10 个处于 PENDING 状态的 actor。
` ray list actors --limit 10 --filter "state=PENDING" `
以 yaml 格式列出 actor。
` ray list actors --format yaml `
列出带有详细信息的 actor。指定 –detail 时,可能会查询更多数据源以获取详细数据。
` ray list actors --detail `
此 API 查询集群中的一个或多个组件来获取数据。返回的状态快照可能不是最新的,不保证返回实时数据。
在以下情况下,API 可能会返回部分或缺失的输出。
当 API 查询多个组件时,如果其中某些组件失败,API 将返回部分结果(并带有可抑制的警告)。
当 API 返回的条目过多时,API 将截断输出。目前,用户无法选择截断的数据。
- 参数
resource: 要查询的资源类型。
- Raises
RayStateApiException
如果 CLI 查询数据失败。
- 变更
2.7 版本中的变更:–filter 值不区分大小写。
ray list [OPTIONS] {actors|jobs|placement-
groups|nodes|workers|tasks|objects|runtime-envs|cluster-events}
选项
- --format <format>#
- 选项:
default | json | yaml | table
- -f, --filter <filter>#
用于过滤结果的键、谓词和值。例如,–filter ‘key=value’ 或 –filter ‘key!=value’。您可以指定多个 –filter 选项。在这种情况下,所有谓词将以 AND 的方式连接。例如,–filter key=value –filter key2=value 表示 (key==val) AND (key2==val2)。字符串过滤值不区分大小写。
- --limit <limit>#
返回的最大条目数。默认为 100。
- --detail#
如果设置了此标志,输出将包含更详细的数据。请注意,API 可能会查询更多来源以获取更详细的信息。
- --timeout <timeout>#
API 请求的超时时间(秒)。默认为 30
- --address <address>#
Ray API 服务器的地址。如果未提供,将通过查询 GCS 服务器自动配置。
Arguments
- RESOURCE#
必需参数
ray get#
按 ID 获取给定资源的状态。
我们目前不支持按 ID 获取作业和运行时环境的状态
输出模式定义在 State API Schema 部分。
例如,ray get tasks <task-id>
的输出模式为 TaskState
。
用法
获取 ID 为 <actor-id> 的 actor
` ray get actors <actor-id> `
获取 ID 为 <placement-group-id> 的 placement group 信息
` ray get placement-groups <placement-group-id> `
此 API 查询集群中的一个或多个组件来获取数据。返回的状态快照可能不是最新的,不保证返回实时数据。
- 参数
resource: 要查询的资源类型。id: 资源的 ID。
- Raises
RayStateApiException
如果 CLI 查询数据失败。
ray get [OPTIONS] {actors|placement-
groups|nodes|workers|tasks|objects|cluster-events} [ID]
选项
- --address <address>#
Ray API 服务器的地址。如果未提供,将通过查询 GCS 服务器自动配置。
- --timeout <timeout>#
API 请求的超时时间(秒)。默认为 30
Arguments
- RESOURCE#
必需参数
- ID#
可选参数
日志#
本节包含从 Ray 集群访问日志的命令。
注意
API 处于Alpha阶段。此功能需要通过 pip install "ray[default]"
进行完整安装。
Log CLI 允许用户访问集群中的日志。请注意,只有来自活动节点的日志才可以通过此 API 访问。
ray logs#
根据文件名(集群)或资源标识符(actor)获取日志
示例
获取节点上所有可用的日志文件(Ray 地址可以从
ray start --head
或ray.init()
获得)。
` ray logs cluster `
[ray logs cluster] 在 head 节点上打印 raylet.out 的最后 500 行。
` ray logs cluster raylet.out --tail 500 `
或者简单地使用
ray logs
作为ray logs cluster
的别名
` ray logs raylet.out --tail 500 `
在 worker 节点 id A 上打印 raylet.out 的最后 500 行。
` ray logs raylet.out --tail 500 —-node-id A `
[ray logs actor] 跟踪 ID 为 ABC 的 actor 的日志文件。
` ray logs actor --id ABC --follow `
[ray logs task] 获取任务生成的标准错误。
注意:如果任务来自并发 actor(即异步 actor 或线程 actor),则任务的日志可能会交错。请使用
ray logs actor --id <actor_id>
查看整个 actor 日志。
` ray logs task --id <TASK_ID> --err `
ray logs [OPTIONS] COMMAND [ARGS]...
命令
- actor
获取/列出与 actor 关联的日志。
- cluster
获取/列出匹配 GLOB_FILTER… 的日志。
- job
获取与提交作业关联的日志。
- task
获取与任务关联的日志。
- worker
获取与 worker 进程关联的日志。