State CLI#
State#
本节包含用于访问 Ray 资源(actor、task、object 等)实时状态 的命令。
注意
API 尚处于alpha 阶段。此功能需要使用 pip install "ray[default]" 完全安装 Ray。此功能还需要 dashboard 组件可用。在启动 Ray 集群时需要包含 dashboard 组件,这对于 ray start 和 ray.init() 是默认行为。有关更深入的调试,您可以查看 <RAY_LOG_DIR>/dashboard.log 处的 dashboard 日志,通常是 /tmp/ray/session_latest/logs/dashboard.log。
State CLI 允许用户访问各种资源的(例如,actor、task、object)状态。
ray summary tasks#
汇总集群的任务状态。
默认情况下,输出包含按任务函数名分组的信息。
输出架构为 TaskSummaries。
- 引发
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。
- 引发
RayStateApiException如果 CLI 无法查询数据。
ray summary actors [OPTIONS]
选项
- --timeout <timeout>#
API 请求的超时时间(秒)。默认为 30。
- --address <address>#
Ray API 服务器的地址。如果未提供,将通过查询 GCS 服务器自动配置。
ray summary objects#
汇总集群的对象状态。
建议在调试内存泄漏时使用此 API。有关更多详细信息,请参阅 使用 Ray 内存进行调试。(请注意,此命令几乎等同于 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。
- 引发
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 查询超过 1 个组件时,如果其中某些组件失败,API 将返回部分结果(并显示可抑制的警告)。
当 API 返回的条目过多时,API 将截断输出。目前,用户无法选择截断的数据。
- 参数
resource: 要查询的资源的类型。
- 引发
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 服务器自动配置。
参数
- RESOURCE#
必需参数。
ray get#
按 ID 获取给定资源的某个状态。
目前我们不支持按 ID 获取 jobs 和 runtime-envs。
输出架构在 State API Schema 部分 定义。
例如,ray get tasks <task-id> 的输出架构是 TaskState。
用法
使用 actor ID <actor-id> 获取 actor。
` ray get actors <actor-id> `使用 <placement-group-id> 获取 placement group 信息。
` ray get placement-groups <placement-group-id> `
API 查询集群中的一个或多个组件以获取数据。返回的状态快照可能是过时的,不保证返回实时数据。
- 参数
resource: 要查询的资源的类型。id: 资源的 ID。
- 引发
RayStateApiException如果 CLI 无法查询数据。
ray get [OPTIONS] {actors|placement-
groups|nodes|workers|tasks|objects|cluster-events} [ID]
选项
- --address <address>#
Ray API 服务器的地址。如果未提供,将通过查询 GCS 服务器自动配置。
- --timeout <timeout>#
API 请求的超时时间(秒)。默认为 30。
参数
- RESOURCE#
必需参数。
- ID#
可选参数。
Log#
本节包含用于访问 Ray 集群日志的命令。
注意
API 尚处于alpha 阶段。此功能需要使用 pip install "ray[default]" 完全安装 Ray。
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 `打印节点 A 上的 raylet.out 的最后 500 行。
` ray logs raylet.out --tail 500 —-node-id A `[ray logs actor] 跟踪 actor ID ABC 的日志文件。
` 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
获取与工作进程相关的日志。