dask - 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关键字的作用是什么?
解决方案
我的第一个猜测是你的节点上正在运行其他东西,因此 Kubernetes 不愿意提供你所要求的一切。例如,Kubernetes 本身会占用一些内存。
推荐阅读
- azure - 将 X-FD-HealthProbe 与应用程序网关一起使用
- permissions - Lightning 不允许权限策略
- python - 分别提取每个类的预测概率
- html - 如何在 EPUB 文件中的每个句子或文本行的末尾插入特定的 HTML 标记?
- android-studio - Android Studio shell 脚本构建配置独立运行,但不作为 Windows 上的前置步骤
- javascript - 身份验证的firebase问题
- node.js - 无论 cookie 在数组中的位置如何,以相同的顺序从 cookie 数组中写入 cookie 字符串
- python - 我究竟做错了什么?我制作了一个爆炸我的水泥块精灵的动画,它可以工作,但问题是动画没有通过
- python - 为什么使用相同的 Keras 模型和输入进行预测时会得到不同的结果?
- firebase - 解释 FirebaseFireStore 的读写方法中使用的协议和流程