#kubernetes #kubernetes-pod
#kubernetes #kubernetes-pod
Вопрос:
Мне было интересно, можно ли заставить Kubernetes выделять ядра из одного и того же процессора при запуске модуля. Что я хотел бы, чтобы Kubernetes делал, так это то, что при создании новых модулей выделенные им ядра должны поступать, скажем, из CPU1, пока на нем все еще доступны ядра. Процессоры CPU2, CPU3 и т.д. Ядра не должны использоваться во вновь инициированном модуле. Я бы хотел, чтобы в моих модулях были ядра, выделенные из одного процессора, насколько это возможно.
Есть ли способ добиться этого?
Кроме того, есть ли способ узнать, с каких физических процессоров поступают ядра (cpu) модуля?
Большое спасибо.
Редактировать: Позвольте мне объяснить, почему я хочу это сделать.
Мы запускаем кластер Spark в Kubernetes. Руководитель группы администрирования system / linux предупредил нас о концепции NUMA. Он сказал нам, что мы могли бы улучшить производительность наших модулей-исполнителей, если бы мы выделяли ядра из одного и того же физического процессора. Вот почему я начал копаться в этом.
Я нашел этот Kubernetes CPU Manager. В документации говорится:
Диспетчер процессоров распределяет процессоры в топологическом порядке на основе наилучших усилий. Если весь сокет свободен, диспетчер ЦП будет распределять процессоры из свободного сокета исключительно для рабочей нагрузки. Это повышает производительность рабочей нагрузки, избегая любого трафика между сокетами.
Также на той же странице:
Выделите все логические процессоры (hyperthreads) из одного и того же физического ядра процессора, если таковое имеется, и контейнер запросит все количество процессоров в ядре.
Итак, теперь я начинаю думать, может быть, мне нужно включить статическую политику для диспетчера процессора, чтобы получить то, что я хочу.
Комментарии:
1. В Kubernetes на самом деле нет понятия «CPU». Зачем вам нужен такой специфический контроль не только над размещением модуля, но и над планированием процессов на отдельных узлах?
2. Привет @DavidMaze. Спасибо за комментарий. Я редактирую вопрос для получения дополнительной информации.
3. @honor, пожалуйста, обратите внимание, что функция kubernetes cpu manager в настоящее время находится в стадии бета-тестирования. Он пока не подходит для производственных сред.
4. @PiotrMalec спасибо за предупреждение!