首页 > 解决方案 > config.yaml 中 dask 分布式 pod、worker、CPU 和 RAM 之间的关系

问题描述

使用 Helm 设置 dask 集群时,config.yaml 文件中有一组变量用于自定义工作人员的数量,我希望对术语有所帮助。例如,如果我设置了一个 Kubernetes 集群,其中包含 16 个虚拟机、8 个内核/机器和 32GB/虚拟机,我最终会得到 128 个 vCPU 和 512GB 内存。如果我通过“helm ... update -f config.yaml”

worker:
  name: worker
  allowed-failures: 2
  replicas: 48
  resources:
    limits: 
      cpu: 2
      memory: 8G
    requests:
      cpu: 2
      memory: 8G

看起来我应该能够创建 64 个工作人员,每个工作人员有 2 个 CPU,并使用我所有的 512 GB RAM。(减去专用于调度程序的资源)。然而,在实践中,分布式客户端最多有 40 个工作人员、80 个内核和 320 GB 的总 RAM。

是否有关于设置 pod 以最大限度地利用集群的最佳实践?我从这篇文章中知道,就每个工作人员使用线程和进程而言,工作量是第一位的,但是工作人员的数量是否应该 == 核心数量 == pod 数量?如果是这样,上面的.yaml文件中cpu关键字的作用是什么?

标签: daskdask-distributed

解决方案


我的第一个猜测是你的节点上正在运行其他东西,因此 Kubernetes 不愿意提供你所要求的一切。例如,Kubernetes 本身会占用一些内存。


推荐阅读