Взаимосвязь между распределенными модулями, рабочими, процессором и оперативной памятью в config.yaml - PullRequest
0 голосов
/ 28 февраля 2019

При настройке кластера dask с помощью Helm в файле config.yaml есть набор переменных для настройки количества рабочих, и я надеюсь, что вам поможет некоторая терминология.Например, если я настрою кластер Kubernetes с 16 виртуальными машинами, 8 ядрами / машина и 32 ГБ / виртуальная машина, я получу 128 виртуальных ЦП и 512 ГБ памяти.Если я передам «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 процессорами в каждом и использовать всю мою оперативную память объемом 512 ГБ.(Минус ресурсы, выделенные для планировщика).Однако на практике распределенный клиент занимает максимум 40 рабочих мест, 80 ядер и 320 ГБ общей оперативной памяти.

Существуют ли передовые практики по настройке модулей для максимального использования кластера?Из этого поста я знаю, что на первом месте стоит рабочая нагрузка с точки зрения использования потоков и процессов на одного работника, но должно ли число работников == количество ядер == количество модулей?Если да, то какова роль ключевого слова cpu в приведенном выше файле .yaml?

1 Ответ

0 голосов
/ 06 марта 2019

Мое первое предположение состоит в том, что другие вещи работают на ваших узлах, и поэтому Kubernetes не чувствует себя комфортно, давая все, что вы просили.Например, сам Kubernetes занимает немного памяти.

...