2 篇文章带有标签 “ResourceQuota”

GaiaGPU: 在容器云中共享GPU

容器技术由于其轻量级和可伸缩的优势而被广泛使用。GPU也因为其强大的并行计算能力被用于应用程序加速。在云计算环境下,容器可能需要一块或者多块GPU计算卡来满足应程序的资源需求,但另一方面,容器独占GPU计算卡常常会带来资源利用率低的问题。因此,对于云计算资源提供商而言,如何解决在多个容器之间共享GPU计算卡是一个很有吸引力的问题。本文中我们提出了一种称为GaiaGPU的方法,用于在容器间共享GPU存储和GPU的计算资源。GaiaGPU会将物理GPU计算卡分割为多个虚拟GPU并且将虚拟GPU按需分配给容器。同时我们采用了弹性资源分配和动态资源分配的方法来提高资源利用率。实验结果表明GaiaGPU平均仅带来1.015%的性能损耗并且能够高效的为容器分配和隔离GPU资源。

部署指标的服务

kubectl apply -f  gpu-manager-svc.yaml
kubectl apply -f gpu-quota.yaml

打开一个新的终端,获取 GPU 指标数据的统计。 curl http://127.0.0.

Kubernetes中的计算资源管理

容器内运行 top

kubectl exec -it requests-pod top
Mem: 369767748K used, 26208028K free, 51000K shrd, 3765588K buff, 294978160K cached
CPU:  3.1% usr  1.5% sys  0.0% nic 95.2% idle  0.0% io  0.0% irq  0.0% sirq
Load average: 1.44 1.65 1.66 4/6602 18
  PID  PPID USER     STAT   VSZ %VSZ CPU %CPU COMMAND
    1     0 root     R     1308  0.0  27  2.5 dd if /dev/zero of /dev/null
   13     0 root     R     1324  0.0  38  0.0 top

★ 在容器内看到的 CPU 和内存是节点的。

top 命令显示占用了 2.5% CPU,对于 40 核的系统来说显然是占用了一个核。requests 不会限制资源的使用数量,因为是单线程,最多也就能用满一个核。

容器内运行 top kubectl exec -it limits-pod top Mem: 370581688K used, 25394088K free, 50976K shrd, 3774664K buff, 292993444K cached