我现在有一个在 EC2(Ubuntu 16.04)上工作的 Ray 集群,它有一个 c4.8xlarge 主节点和一个相同的工作节点。我想检查是否使用了多线程,所以我运行测试以增加相同 9 秒任务的数字 (n)。由于该实例有 18 个 CPU,我预计该作业需要大约 9 秒,最多 n<=35(假设一个 CPU 用于集群管理),然后出现故障,或者在切换到 36 个 vCPU 时增加到大约 18 秒每个节点。
相反,集群只并行处理了 14 个任务,然后执行时间跃升至 40 秒,并随着 n 的增加而继续增加。当我尝试使用 c4xlarge 主机(4 个 CPU)时,时间与 n 成正比,即它们是串行运行的。所以我推测master实际上需要4个系统CPU,而worker节点根本没有被使用。但是,如果我添加第二个工人,n>14 的时间比没有它的时间少约 40 秒。我还尝试了 target_utilization_factor 小于 1.0 的值,但这没有任何区别。
没有报告错误,但我确实注意到 EC2 实例控制台中工作人员的 ray-node-status 是“更新失败”。这很重要吗?谁能告诉我这种行为?