172 похожих чатов

Привет У меня вопрос Равны ли запросы для Cgroups CPU shares при

работе Kubernetes на нодах с разным количеством ядер (используя Docker)?
Я провел пару экспериментов
На 8 ядерной системе и на 4 ядерной выставлял 100m реквест CPU для контейнера в Kubernetes
в обоих случаях он прокидывался в итоге до уровня cgroups одинаково (как собственно я и ожидал)
cpu.shares=102
В документации Kubernetes в разделе “Meaning of CPU” написано
https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#meaning-of-cpu

CPU is always requested as an absolute quantity, never as a relative quantity; 0.1 is the same amount of CPU on a single-core, dual-core, or 48-core machine.

Что меня немного смутило, но чуть ниже есть еще раздел
“How Pods with resource limits are run”
https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#how-pods-with-resource-limits-are-run

И там пишут про трансформацию:
When using Docker:
- The spec.containers[].resources.requests.cpu is converted to its core value, which is potentially fractional, and multiplied by 1024. The greater of this number or 2 is used as the value of the --cpu-shares flag in the docker run command.

Из чего я сделал вывод что
0.1 is the same amount of CPU on a single-core, dual-core, or 48-core machine

0.1 в любой ситуации преобразуется в 100m (это я проверял тоже) и в шары везде протечет значение 102 . Получается имелось в виду что при задании реквествов тебе не надо что-то считать, но т.к. shares используется в расчете как коэффициенты:
Шара – это относительный числовой параметр; его значение имеет смысл только в сравнении со значениями других шар, входящих в ту же cgroup

то в итоге все равно мы на разных системах будем получать разную мощность при одинаковых реквестах.

Если кто-то детально изучал вопрос, помогите пожалуйста

2 ответов

15 просмотров

Реевесты - это в первую очередь количество ресурсов для аллокатора. На хостах из него выводится только относительный приоритет сигрупп в потреблении cpu (исходя из соотношения между реквестами разных контейнеров). При этом эти веса начинают работать только если cpu всем не хватает. Если нужно жестко управлять ресурсами, доступными контейнерам, используй limits.

Вот это правильно заданный вопрос - моё почтение! :) А вот что меня смущает, что куб считает cpu threads за полноценные ядра при планировании ресурсов. Где-то читал что для того же Golang это может быть проблема на нагруженной системе, так как он будет планировать тред на одни и те же физические ядра, что сведет на нет плюсы многопоточности для математики, которая не ходит в память.

Похожие вопросы

Обсуждают сегодня

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
Кибер Бомж
8
Карта сайта