Задание ресурсов CPU для контейнеров и Pod’ов
На этой странице показывается, как настроить запрос CPU и лимит CPU для контейнера. Контейнер не сможет использовать больше ресурсов CPU, чем для него ограничено. Если в системе есть свободное время CPU, контейнеру гарантируется выдача запрошенных им ресурсов CPU.
Подготовка к работе
Вам нужен Kubernetes кластер и инструмент командной строки kubectl должен быть настроен на связь с вашим кластером. Если у вас ещё нет кластера, вы можете создать, его используя Minikube, или вы можете использовать одну из песочниц Kubernetes:
- Killercoda
- Play with Kubernetes
Чтобы проверить версию, введите kubectl version
.
На кластере должен быть хотя бы 1 доступный для работы CPU, чтобы запускать учебные примеры.
Для некоторых шагов с этой страницы понадобится запущенный сервер метрик на вашем кластере. Если сервер метрик уже запущен, следующие шаги можно пропустить.
Если вы используете Minikube, выполните следующую команду, чтобы запустить сервер метрик:
minikube addons enable metrics-server
Проверим, работает ли сервер метрик (или другой провайдер API ресурсов метрик, metrics.k8s.io
), выполните команду:
kubectl get apiservices
Если API ресурсов метрик доступно, в выводе будет присутствовать
ссылка на metrics.k8s.io
.
NAME v1beta1.metrics.k8s.io
Создание пространства имён
Создадим Пространство имен, чтобы создаваемые в этом упражнении ресурсы были изолированы от остального кластера.
kubectl create namespace cpu-example
Установка запроса CPU и лимита CPU
Чтобы установить запрос CPU для контейнера, подключите поле resources:requests
в манифест ресурсов контейнера. Для установки ограничения по CPU подключите resources:limits
.
В этом упражнении мы создадим Pod, имеющий один контейнер.
Зададим для контейнера запрос в 0.5 CPU и лимит в 1 CPU. Конфигурационный файл для такого Pod’а:pods/resource/cpu-request-limit.yaml
apiVersion: v1 kind: Pod metadata: name: cpu-demo namespace: cpu-example spec: containers: - name: cpu-demo-ctr image: vish/stress resources: limits: cpu: "1" requests: cpu: "0.5" args: - -cpus - "2"
Раздел args
конфигурационного файла содержит аргументы для контейнера в момент старта.
Аргумент -cpus "2"
говорит контейнеру попытаться использовать 2 CPU.
Создадим Pod:
kubectl apply -f https://k8s.io/examples/pods/resource/cpu-request-limit.yaml --namespace=cpu-example
Удостоверимся, что Pod запущен:
kubectl get pod cpu-demo --namespace=cpu-example
Посмотрим детальную информацию о Pod’е:
kubectl get pod cpu-demo --output=yaml --namespace=cpu-example
В выводе видно, что Pod имеет один контейнер с запросом в 500 милли-CPU и с ограничением в 1 CPU.
resources: limits: cpu: "1" requests: cpu: 500m
Запустим kubectl top
, чтобы получить метрики Pod’a:
kubectl top pod cpu-demo --namespace=cpu-example
В этом варианте вывода Pod’ом использовано 974 милли-CPU, что лишь чуть меньше заданного в конфигурации Pod’a ограничения в 1 CPU.
NAME CPU(cores) MEMORY(bytes) cpu-demo 974m <something>
Напомним, что установкой параметра -cpu "2"
для контейнера было задано попытаться использовать 2 CPU,
однако в конфигурации присутствует ограничение всего в 1 CPU. Использование контейнером CPU было отрегулировано,
поскольку он попытался занять больше ресурсов, чем ему позволено.
Примечание: Другое возможное объяснение для выделения менее 1.0 CPU в отсутствии на ноде достаточного количества свободных CPU ресурсов. Напомним, что в начальных условиях для этого упражнения было наличие у кластера хотя бы 1 CPU, доступного для использования. Если контейнер запущен на ноде, имеющей в своём распоряжении всего 1 CPU, контейнер не сможет использовать более 1 CPU независимо от заданных для него ограничений.
Удалим Pod:
kubectl delete pod cpu-demo --namespace=cpu-example
Единицы измерения CPU
Ресурсы CPU измеряются в CPU единицах. Один CPU, в Kubernetes, соответствует:
- 1 AWS vCPU
- 1 GCP Core
- 1 Azure vCore
- 1 гипертрединговое ядро на физическом процессоре Intel с Гипертредингом
Дробные значения возможны. Контейнер, запрашивающий 0.5 CPU, получит вполовину меньше ресурсов, чем контейнер, запрашивающий 1 CPU. Можно использовать окончание m для обозначения милли. Например, 100m CPU, 100 milliCPU и 0.1 CPU обозначают одно и то же. Точность выше 1m не поддерживается.
CPU всегда запрашивается в абсолютных величинах, не в относительных; 0.1 будет одинаковой частью от CPU для одноядерного, двухъядерного или 48-ядерного процессора.
Запрос ресурсов CPU больше доступного на ноде
Запросы и лимиты CPU устанавливаются для контейнеров, но также полезно рассматривать и Pod имеющим эти характеристики. Запросом CPU для Pod’а является сумма запросов CPU всех его контейнеров. Аналогично и лимит CPU для Pod’а — сумма всех ограничений CPU у его контейнеров.
Планирование Pod’а основано на запросах. Pod попадает в расписание запуска на ноде лишь в случае достаточного количества доступных ресурсов CPU на ноде, чтобы удовлетворить запрос CPU Pod’а.
В этом упражнении мы создадим Pod с запросом CPU, превышающим мощности любой ноды в вашем кластере. Ниже представлен конфигурационный файл для Pod’а с одним контейнером. Контейнер запрашивает 100 CPU, что почти наверняка превышает имеющиеся мощности любой ноды в кластере.
pods/resource/cpu-request-limit-2.yaml
apiVersion: v1 kind: Pod metadata: name: cpu-demo-2 namespace: cpu-example spec: containers: - name: cpu-demo-ctr-2 image: vish/stress resources: limits: cpu: "100" requests: cpu: "100" args: - -cpus - "2"
Создадим Pod:
kubectl apply -f https://k8s. io/examples/pods/resource/cpu-request-limit-2.yaml --namespace=cpu-example
Проверим статус Pod’а:
kubectl get pod cpu-demo-2 --namespace=cpu-example
Вывод показывает Pending статус у Pod’а. То есть Pod не запланирован к запуску ни на одной ноде и будет оставаться в статусе Pending постоянно:
NAME READY STATUS RESTARTS AGE cpu-demo-2 0/1 Pending 0 7m
Посмотрим подробную информацию о Pod’е, включающую в себя события:
kubectl describe pod cpu-demo-2 --namespace=cpu-example
В выводе отражено, что контейнер не может быть запланирован из-за нехватки ресурсов CPU на нодах:
Events: Reason Message ------ ------- FailedScheduling No nodes are available that match all of the following predicates:: Insufficient cpu (3).
Удалим Pod:
kubectl delete pod cpu-demo-2 --namespace=cpu-example
Если ограничения на CPU не заданы
Если ограничения на использование контейнером CPU не установлены, возможны следующие варианты:
У контейнера отсутствует верхняя граница количества CPU доступных ему ресурсов. В таком случае он может занять все ресурсы CPU, доступные на ноде, на которой он запущен.
Контейнер запущен в пространстве имён, в котором задана стандартная величина ограничения ресурсов CPU. Тогда контейнеру автоматически присваивается это ограничение. Администраторы кластера могут использовать LimitRange, чтобы задать стандартную величину ограничения ресурсов CPU.
Мотивация для использования запросов и лимитов CPU
Вы можете распоряжаться ресурсами CPU на нодах вашего кластера эффективнее, если для запущенных контейнеров установлены запросы и ограничения на использование ресурсов CPU. Задание небольшого запроса CPU даёт Pod’у хорошие шансы быть запланированным. Установка лимита на ресурсы CPU, большего, чем запрос, позволяет достичь 2 вещей:
- При увеличении нагрузки Pod может задействовать дополнительные ресурсы CPU.
- Количество ресурсов CPU, которые Pod может задействовать при повышении нагрузки, ограничено некоторой разумной величиной.
Очистка
Удалим созданное для этого упражнения пространство имён:
kubectl delete namespace cpu-example
Что дальше
Для разработчиков приложений
Assign Memory Resources to Containers and Pods
Configure Quality of Service for Pods
Для администраторов кластера
Configure Default Memory Requests and Limits for a Namespace
Configure Default CPU Requests and Limits for a Namespace
Configure Minimum and Maximum Memory Constraints for a Namespace
Configure Minimum and Maximum CPU Constraints for a Namespace
Configure Memory and CPU Quotas for a Namespace
Configure a Pod Quota for a Namespace
Configure Quotas for API Objects
Изменено February 17, 2022 at 5:43 PM PST: Typo fix: «превышет» -> «превышает» (73d2febbfb)
Превышен лимит на использование CPU | REG.RU
Общая информация о нагрузке на CPU
Если вы получили уведомление о превышении лимита на использование CPU, это означает, что потребление CPU вашим аккаунтом превысило суточную норму. При превышении лимита нагрузки на CPU более чем на 3% от максимально установленного значения на тарифном плане и больше 4 раз за последние 7 дней, на хостинг накладывается блокировка.
Нагрузка CPU учитывается для всей услуги хостинга (всех добавленных сайтов). Самые посещаемые сайты оказывают наибольшую нагрузку на CPU.
С ограничениями по CPU на каждом тарифном плане хостинга вы можете ознакомиться на сайте REG.RU.
Если ваш аккаунт уже заблокирован
В этом случае на всех сайтах устанавливается форма базовой аутентификации. При обращении к сайту вы увидите сообщение:
«http://имясайта.ru» запрашивает имя пользователя и пароль.
Сайт сообщает: «cpu_block | access denied, please check email.
For access use regru/regru.»
Для получения доступа к сайту введите:
- логин: regru
- пароль: regru
Далее вам необходимо выполнить рекомендации по решению проблемы, которые описаны ниже.
Как снизить нагрузку на CPU?
Начните с просмотра статистики нагрузки на CPU:
-
1.
Авторизуйтесь на сайте REG.RU и перейдите в Личный кабинет. Кликните по названию услуги хостинга, для которой необходимо просмотреть статистику.
-
2.
На вкладке «Управление» вы можете увидеть показатель средней нагрузки на CPU. Для более подробного анализа нажмите по строке Статистика.
Обратите внимание:
- если на вкладке «Управление» не отображается строка Статистика, обратитесь в техническую поддержку;
- статистика по CPU не отображается, если нагрузка на сервер хостинга менее 1%.
org/HowToStep»>
3.
Откроется статистика следующего вида:
Первое, на что стоит обратить внимание, это «Динамика нагрузки на процессор за последние 7 дней».
Динамика нагрузки на процессор за последние 7 дней
Если % потребления CPU (первый столбец) изменяется незначительно, выполните следующее: отключите тяжелые плагины CMS, настройте кеширование посредством CMS (для WordPress рекомендуем использовать WP Super Cache или WP-cache.com), установите таймаут обращения роботов к вашему сайту (см. ниже) или повысьте тарифный план, возможно, ваш сайт просто перерос параметры текущего тарифа и требует больших ресурсов. Как снизить нагрузку на хостинг
Если же % потребления CPU вырос значительно или меняется скачкообразно, это может быть свидетельством DDOS-атаки, Brute-Force атаки или большого количества запросов от поисковых роботов. Читайте ниже, как это можно понять и что можно сделать.
Статистика запросов по User-Agent
С помощью данной статистики можно увидеть, насколько часто поисковые роботы посещают ваш сайт.
Если количество запросов большое, рекомендуем настроить файл robots.txt: установите таймаут обращения роботов к вашему сайту (от 10 секунд) при помощи директивы «Crawl-delay».
Внимание: не все User-Agent являются роботами, User-Agent показывает приложение, через которое происходило обращение к вашему сайту. То есть если вы явно не видите надписи bot, то проблема не в поисковых роботах.
Как ограничить обращения роботов при помощи директивы Crawl-delay
Перейдите в корневую папку сайта и добавьте в файл robots.txt (создайте его, если он не существует) следующие строки:
- для отдельного робота:
User-agent: bingbot Crawl-delay: 40 # задает таймаут в 40 секунд только для bingbot
- для всех роботов:
User-agent: * Crawl-delay: 40 # задает таймаут в 40 секунд для всех поисковых роботов
Ограничение Googlebot и YandexBot
Ограничивать Googlebot необходимо через Инструменты для веб-мастеров Google. Настройки в robots.txt для googlebot работать не будут.
Ограничивать YandexBot необходимо через Яндекс.Вебмастер.
Топ 10 запросов по популярности
С помощью данной статистики вы можете увидеть, какая страница наиболее популярна среди посетителей вашего сайта. Также статистика позволяет выявить Brute-Force атаку на ваш сайт (атака по подбору паролей). Чаще всего злоумышленники пытаются взломать админку сайта, что характеризуется большим количеством запросов к URL админки.
Рассмотрим пример для WordPress. На скриншоте видно, что к wp-login.php совершено более 45 000 запросов, это попытки взлома. Для других CMS примеры аналогичны, меняется только URL админки.
В этом случае рекомендуем установить дополнительную форму аутентификации на админку сайта:
- Как защитить админку WordPress?
- Как защитить админку Joomla?
Статистика запросов по IP-адресам
При помощи данной статистики вы можете увидеть, с каких IP-адресов серверов поступает самое большое количество запросов. Например:
Если количество запросов огромное, вы можете заблокировать доступ к сайту для некоторых IP.
Увидеть, какие именно запросы поступают с IP, вы можете в журналах сайтов: Как просмотреть журналы сайтов?
Узнать больше информации про IP (кому он принадлежит) можно при помощи сервиса Whois на сайте REG.RU:
Как заблокировать доступ к сайту для IP Добавьте в файл .htaccess, находящийся в корневой папке сайта, следующие строки:
Order Allow,Deny Allow from all Deny from 123.123.123.123 Deny from 122.122.122.122
Где 123.123.123.123, 122.122.122.122 — IP-адреса, для которых запрещается доступ к сайту.
Внимание!
Не заблокируйте случайно свой IP-адрес. Узнать ваш IP-адрес можно здесь.
Узнать больше о методе блокировки.
Топ 10 запросов по времени ответа
При помощи данной статистики вы можете увидеть, какие страницы вашего сайта загружаются дольше всего. Возможно, на страницах размещён тяжелый контент и это является причиной повышенной нагрузки на CPU. Данную проблему стоит анализировать вместе с разработчиками вашего сайта.
Проверьте ваш аккаунт на наличие вредоносного ПО
Вне зависимости от выявленных причин, вызвавших нагрузку на CPU, проверьте ваш хостинг-аккаунт на вирусы: Как проверить сайт на вирусы?
Если на аккаунте обнаружится вредоносное ПО, удалите его. После проверки сайта рекомендуем обновить версию CMS и все используемые расширения.
Повысьте тарифный план хостинга
Если вышеописанные действия не помогли снизить нагрузку на CPU, рекомендуем повысить тарифный план хостинга. Чем выше тарифный план, тем больший процент CPU может использовать ваш аккаунт:
Тарифный план | Максимальный % использования CPU |
---|---|
Host-Lite | — |
Host-A | 2,5% |
Host-B | 3% |
Host-0, Joomla-1 | 4% |
Host-1, BX-Host-1, Joomla-2 | 7% |
Host-2*, BX-Host-2, Joomla-3 | 10% |
Host-3, BX-Host-3, Joomla-4 | 13% |
Host-Pro*, Joomla-5 | 25% |
Host-Unlim* | 4% на каждый домен (Max 40%) |
VIP-1 | 30% |
VIP-2 | 50% |
VIP-3 | 100% |
*Host-2, Host-Pro, Host-Unlim являются архивными/устаревшими тарифами.
После повышения тарифного плана обязательно напишите заявку в техническую поддержку хостинга с просьбой разблокировать доступ к сайтам.
Как повысить тарифный план хостинга?
Как перейти на VIP-тариф с обычного хостинга?
После выполнения рекомендаций вы можете самостоятельно снять блокировку по инструкции ниже.
Как снять блокировку CPU?
Снять блокировку вручную можно не чаще, чем 4 раза за 28 дней. Перед тем как снять блокировку убедитесь, что вы снизили нагрузку на CPU.
Чтобы снять блокировку CPU:
-
1.
Авторизуйтесь на сайте REG.RU и перейдите в Личный кабинет.
-
2.
Кликните по услуге хостинга, для которой нужно снять блокировку:
org/HowToStep»>
3.
-
4.
В появившейся шторке нажмите Снять блокировку:
На открывшейся странице под названием услуги нажмите Что это, и как снять блокировку:
Готово, блокировка снята. Для завершения действий перезагрузите страницу.
Превышен лимит CPU в MySQL
Если вы получили уведомление о превышении лимита CPU в MySQL, это означает, что потребление CPU в MySQL на вашем аккаунте превысило суточную норму, установленную тарифным планом. Ознакомьтесь с ограничениями по MySQL на каждом тарифном плане хостинга.
Если ваш аккаунт уже заблокирован
В этом случае на всех сайтах устанавливается форма базовой аутентификации, при обращению к сайту вы увидите сообщение:
«http://имясайта. ru» запрашивает имя пользователя и пароль. Сайт сообщает: «mysql_block | access denied, please check email. For access use regru/regru.»
Для получения доступа к сайту введите:
- логин: regru
- пароль: regru
Далее вам необходимо выполнить наши рекомендации по решению проблемы, которые описаны ниже. После выполнения рекомендаций обратитесь в техническую поддержку хостинга с просьбой снятия блокировки. Форма обращения в поддержку находится в конце статьи.
Как снизить нагрузку на MySQL
Для снижения нагрузки на MySQL мы рекомендуем оптимизировать запросы к базе данных, для этого обратитесь к разработчикам вашего сайта. После оптимизации запросов составьте заявку в службу поддержки и наши специалисты снимут блокировку.
Помогла ли вам статья?
Да
раз уже помогла
Почему на вашей материнской плате мощность ЦП 1 и мощность ЦП 2
Вы купили новую материнскую плату, которая могла довести ваш процессор до предела, но когда вы открыли ее, вы увидели что-то необычное. Вместо одного разъема ЦП ваша материнская плата поставляется с двумя разъемами ЦП.
Итак, зачем на вашей материнской плате дополнительный разъем для процессора? Может ли это помочь вам довести вашу систему до предела? Что ж, давайте узнаем.
Как питание передается на ЦП?
Прежде чем понять, почему ваша материнская плата имеет два разъема питания ЦП, важно понять, как питание передается на ЦП. Проще говоря, электричество проходит от розетки к процессору, но ток от розетки нельзя использовать для питания электроники вашего компьютера. Поэтому в вашей системе есть блок питания (БП).
Основной задачей блока питания является преобразование переменного тока (AC), полученного от розетки, в постоянный ток (DC). Затем этот ток может питать различные компоненты вашей материнской платы. Тем не менее, компоненты на вашей материнской плате имеют разные требования к питанию.
Для решения этой проблемы блок питания имеет несколько выходных разъемов, предназначенных для питания различной электроники на материнской плате. Эти разъемы обычно обеспечивают 12 В, 5 В и 3,3 В.
Один из этих разъемов питает ЦП и предлагает напряжение 12 вольт. Однако его нельзя использовать для питания ЦП напрямую, так как такое высокое напряжение может сжечь транзисторы. Поэтому энергия, полученная от разъема ЦП, отправляется на модули регулятора напряжения. Эти модули преобразуют 12 вольт, полученных от блока питания, в диапазон от 1 до 1,5 вольт, которые затем питают ваш процессор.
Сколько энергии может обеспечить разъем ЦП?
Разъем ЦП отвечает за подачу питания на ЦП. Если этой мощности недостаточно, ЦП не сможет обеспечить максимальную производительность.
Итак, какую мощность может обеспечить разъем ЦП?
Ну, это зависит от количества контактов вашего разъема. Большее количество контактов позволяет разъему передавать больше энергии. Большинство материнских плат поставляются с четырехконтактным разъемом или восьмиконтактным разъемом, но в некоторых случаях материнские платы могут использовать два разъема, например два восьмиконтактных разъема или один восьмиконтактный и один четырехконтактный разъемы.
Восьмиконтактный или четырехконтактный: что обеспечивает большую мощность?
Четырехконтактный разъем на материнской плате оснащен двумя контактами 12 В и двумя контактами заземления, а восьмиконтактный разъем имеет четыре контакта заземления и четыре контакта 12 В. Каждый из контактов в разъеме способен обеспечить максимальный ток 7 ампер. Учитывая 12 вольт, подаваемых на контакты, и ток 7 ампер, одна пара разъемов может обеспечить мощность 84 Вт (12 * 7). Таким образом, четырехконтактный разъем может обеспечить мощность 168 Вт (84*2), а восьмиконтактный разъем процессора — 336 Вт.
Используя ту же логику, мы можем сделать вывод, что два восьмиконтактных разъема процессора могут обеспечить мощность 672 Вт, а восьмиконтактная и 4-контактная конфигурация могут обеспечить мощность 504 Вт.
Сколько энергии требуется вашему процессору?
Процессор вашей системы выполняет задачи, включая и выключая переключатели. Эти переключатели известны как транзисторы, и скорость, с которой эти транзисторы переключаются, определяет производительность вашего процессора. Известная как тактовая частота, скорость переключения транзисторов также определяет энергопотребление вашего процессора. Таким образом, если ваш процессор работает на высоких частотах, он будет потреблять больше энергии, а более низкие частоты уменьшат энергопотребление вашего процессора.
В связи с этим энергопотребление процессора является переменной величиной и зависит от частоты, на которой работает ваш процессор, которая определяется нагрузкой на ваш процессор.
Общие сведения о энергопотреблении ЦП
Как объяснялось ранее, ЦП не получает постоянную мощность от разъема ЦП. Вместо этого энергопотребление зависит от тактовой частоты. Большинство ЦП имеют две различные частоты ЦП: базовую тактовую частоту и турбо-частоту. Когда процессор не выполняет ресурсоемких задач, он работает на базовой частоте и потребляет меньше энергии. Наоборот, когда система доведена до предела, она увеличивает частоту до турбо-частоты.
Например, флагманский процессор Intel Core i9-13900k предлагает базовую частоту 3 ГГц для своих высокопроизводительных ядер при потреблении 125 Вт энергии. Однако это число увеличивается до 253 Вт, когда частота увеличивается до 5,80 ГГц (максимальная тактовая частота). Кроме того, такие технологии, как Thermal Velocity Boost и Adaptive Boost, увеличивают тактовую частоту нескольких ядер, когда выполняются условия для температуры процессора и потребляемого тока, увеличивая потребляемую процессором мощность.
Приведенные выше значения энергопотребления не учитывают разгон, а энергопотребление процессоров может увеличиваться в геометрической прогрессии при включенном разгоне.
С другой стороны, такие процессоры, как Intel Core i3-13100, потребляют от 60 до 89 Вт энергии при работе на базовой и турбо-частотах соответственно. Следовательно, если вы посмотрите на это, процессоры могут потреблять от 60 до 250 Вт в зависимости от их вычислительных возможностей и расчетной тепловой мощности (TDP).
Почему ваша материнская плата поставляется с двумя разъемами ЦП?
Как объяснялось ранее, высокопроизводительный ЦП может потреблять 253 Вт, а 8-контактный разъем — 336 Вт. Таким образом, если вы посмотрите на это, одного процессорного разъема достаточно для любого процессора (кроме высокопроизводительных серверных блоков, рабочих станций и т. д.).
Но с этой конфигурацией есть проблема. Видите ли, провода, питающие ваш процессор во время пиковых нагрузок, будут иметь по семь ампер каждый. Из-за этого 8-контактный разъем с четырьмя 12-вольтовыми контактами будет тянуть в сумме 28 ампер, а такие большие токи будут выделять много тепла. Чтобы представить ситуацию в перспективе, тепло, выделяемое в проводнике с током, пропорционально квадрату тока, протекающего через него.
Таким образом, чтобы предотвратить чрезмерный нагрев из-за протекания большого тока, блок питания форм-факторов платформы для настольных ПК Intel [PDF] рекомендует разделять ток на 12-вольтовые шины, когда ток превышает 20 ампер.
Чтобы соответствовать этим требованиям, материнские платы поставляются с двумя разъемами ЦП, поскольку высокопроизводительные ЦП могут потреблять ток более 20 ампер при максимальном токе.
Каковы преимущества двойных разъемов ЦП?
Материнская плата с двумя разъемами питания ЦП дает несколько преимуществ. Ниже перечислены преимущества, которые предлагают эти дополнительные разъемы:
- Повышенная мощность: Благодаря двойным разъемам ЦП на материнской плате блок питания может подавать на ЦП большое количество энергии, позволяя пользователям разгонять свою систему.
- Повышенная стабильность: Благодаря двойным разъемам ЦП материнская плата обеспечивает более стабильное питание. Ток можно разделить между двумя разъемами, чтобы снизить тепловыделение и обеспечить стабильную подачу питания на ЦП.
Нужна ли вам материнская плата с двумя разъемами ЦП?
Двойной разъем ЦП на материнской плате может обеспечить мощность до 672 Вт. Хотя современному ЦП не требуется столько энергии, двойной разъем ЦП может обеспечить более стабильную подачу питания.
Поэтому рекомендуется использовать материнскую плату с двумя разъемами ЦП, если вы хотите максимально использовать высокопроизводительный ЦП, разогнав его. С другой стороны, если вы используете центральный процессор среднего уровня, которому для работы не требуется большое количество энергии, материнской платы с одним разъемом должно быть достаточно.
Назначение ресурсов ЦП контейнерам и модулям
На этой странице показано, как назначить запрос ЦП и ограничение ЦП для контейнер. Контейнеры не могут использовать больше ЦП, чем установленный лимит. Если в системе есть свободное процессорное время, контейнер гарантированно будет выделяется столько ЦП, сколько он запрашивает.
Прежде чем начать
У вас должен быть кластер Kubernetes, а инструмент командной строки kubectl должен быть настроен для связи с вашим кластером. Рекомендуется запускать это руководство в кластере по крайней мере с двумя узлами, которые не действуют как узлы плоскости управления. Если у вас еще нет кластер, вы можете создать его, используя миникуб или вы можете использовать одну из этих игровых площадок Kubernetes:
- Killercoda
- Play with Kubernetes
Чтобы проверить версию, введите kubectl version
.
В вашем кластере должен быть как минимум 1 ЦП, доступный для использования для выполнения примеров задач.
Некоторые шаги на этой странице требуют запуска метрик-сервер службы в вашем кластере. Если у вас есть сервер метрик работает, вы можете пропустить эти шаги.
Если вы используете Minikube, запустите следующая команда для включения сервера метрик:
надстройки minikube включают сервер метрик
Чтобы узнать, работает ли сервер метрик (или другой поставщик метрик ресурсов)
API, metrics.k8s.io
), введите следующую команду:
kubectl get apiservices
Если API метрик ресурсов доступен, выходные данные будут включать
ссылка на metrics.k8s.io
.
ИМЯ v1beta1.metrics.k8s.io
Создайте пространство имен
Создайте пространство имен, чтобы ресурсы, которые вы create в этом упражнении изолированы от остальной части вашего кластера.
kubectl создать пространство имен cpu-example
Укажите запрос ЦП и лимит ЦП
Чтобы указать запрос ЦП для контейнера, включите поле resources:requests
в манифесте ресурса контейнера. Чтобы указать ограничение ЦП, включите resources:limits
.
В этом упражнении вы создадите модуль с одним контейнером. Контейнер имеет запрос 0,5 ЦП и ограничение в 1 ЦП. Вот файл конфигурации для Pod:
pods/resource/cpu-request-limit.yaml
apiVersion: v1 вид: стручок метаданные: имя: демо-процессор пространство имен: пример процессора спецификация: контейнеры: - имя: cpu-demo-ctr изображение: виш/стресс Ресурсы: пределы: процессор: "1" Запросы: процессор: "0,5" аргументы: - -процессор - "2"
Раздел args
файла конфигурации предоставляет аргументы для запуска контейнера.
Аргумент -cpus "2"
указывает Контейнеру попытаться использовать 2 ЦП.
Создайте модуль:
kubectl apply -f https://k8s.io/examples/pods/resource/cpu-request-limit.yaml --namespace=cpu-example
Убедитесь, что Pod работает:
kubectl get pod cpu-demo --namespace=cpu-example
Просмотр подробной информации о модуле:
kubectl get pod cpu-demo --output=yaml --namespace=cpu-example
Выходные данные показывают, что один контейнер в поде имеет запрос ЦП на 500 миллиЦП. и ограничение ЦП в 1 ЦП.
ресурсы: пределы: процессор: "1" Запросы: процессор: 500 м
Используйте kubectl top
для получения метрик для модуля:
kubectl top pod cpu-demo --namespace=cpu-example
Этот пример выходных данных показывает, что Pod использует 974 миллиЦП, т.е. немного меньше лимита в 1 ЦП, указанного в конфигурации Pod.
НАЗВАНИЕ ЦП(ядер) ПАМЯТЬ(байт) cpu-demo 974m <что-то>
Вспомните, что, установив -cpu "2"
, вы настроили Контейнер на попытку использовать 2 ЦП, но Контейнеру разрешено использовать только около 1 ЦП. Использование ЦП контейнера регулируется, так как контейнер пытается использовать больше ресурсов ЦП, чем его предел.
Примечание: Другим возможным объяснением использования ЦП ниже 1,0 является то, что узел может не иметь достаточно ресурсов процессора. Напомним, что предварительные условия для этого упражнения требуют, чтобы в вашем кластере был как минимум 1 ЦП, доступный для использования. Если ваш Контейнер работает на узле, который имеет только 1 ЦП, Контейнер не может использовать более 1 ЦП, независимо от ограничения ЦП, указанного для Контейнера.
единиц ЦП
Ресурс ЦП измеряется в единиц ЦП . Один ЦП в Kubernetes эквивалентен:
- 1 виртуальный ЦП AWS
- 1 GCP Core
- 1 виртуальное ядро Azure
- 1 Hyperthread на чистом процессоре Intel с технологией Hyperthreading
Допускаются дробные значения. Контейнеру, запрашивающему 0,5 ЦП, гарантировано вдвое меньше. ЦП как контейнер, который запрашивает 1 ЦП. Вы можете использовать суффикс m для обозначения милли. Например 100 м ЦП, 100 миллиЦП и 0,1 ЦП — все это одно и то же. Точность менее 1 м не допускается.
ЦП всегда запрашивается как абсолютное количество, никогда как относительное количество; 0.1 тоже самое количество ЦП на одноядерном, двухъядерном или 48-ядерном компьютере.
Удалить свой модуль:
kubectl удалить модуль cpu-demo --namespace=cpu-example
Укажите слишком большой запрос ЦП для ваших узлов
Запросы ЦП и ограничения связаны с контейнерами, но полезно подумать пода как имеющего запрос ЦП и ограничение. Запрос ЦП для Pod представляет собой сумму запросов ЦП для всех контейнеров в поде. Точно так же ограничение ЦП для Pod — это сумма лимитов ЦП для всех контейнеров в Pod.
Планирование подов основано на запросах. Pod планируется запускать на узле, только если у узла достаточно ресурсов ЦП, чтобы удовлетворить запрос ЦП пода.
В этом упражнении вы создаете под, у которого запрос ЦП настолько велик, что превышает емкость любого узла в вашем кластере. Вот файл конфигурации для Pod который имеет один Контейнер. Контейнер запрашивает 100 ЦП, что, вероятно, превышает емкость любого узла в вашем кластере.
pods/resource/cpu-request-limit-2.yaml
APIВерсия: v1 вид: стручок метаданные: имя: процессор-демо-2 пространство имен: пример процессора спецификация: контейнеры: - имя: cpu-demo-ctr-2 изображение: виш/стресс Ресурсы: пределы: процессор: "100" Запросы: процессор: "100" аргументы: - -процессор - "2"
Создайте модуль:
kubectl apply -f https://k8s. io/examples/pods/resource/cpu-request-limit-2.yaml --namespace=cpu-example
Просмотр состояния модуля:
kubectl get pod cpu-demo-2 --namespace=cpu-example
Вывод показывает, что статус Pod — Pending. То есть пода не было запланирован для запуска на любом узле, и он останется в состоянии ожидания на неопределенный срок:
ИМЯ СТАТУС ГОТОВ ПЕРЕЗАПУСКА ВОЗРАСТ cpu-demo-2 0/1 В ожидании 0 7m
Просмотр подробной информации о модуле, включая события:
kubectl описать модуль cpu-demo-2 --namespace=cpu-example
Выходные данные показывают, что контейнер не может быть запланирован из-за недостаточного Ресурсы ЦП на узлах:
События: Сообщение о причине ------ ------- FailedScheduling Нет доступных узлов, соответствующих всем следующим предикатам: Недостаточно процессора (3).
Удалить свой модуль:
kubectl удалить модуль cpu-demo-2 --namespace=cpu-example
Если вы не укажете предел ЦП
Если вы не укажете предел ЦП для Контейнера, то применима одна из следующих ситуаций:
Контейнер не имеет верхней границы ресурсов ЦП, которые он может использовать. Контейнер может использовать все ресурсы ЦП, доступные на узле, на котором он работает.
Контейнер работает в пространстве имен с ограничением ЦП по умолчанию, а Контейнеру автоматически назначается лимит по умолчанию. Администраторы кластера могут использовать Предельный диапазон чтобы указать значение по умолчанию для предела ЦП.
Если вы укажете ограничение ЦП, но не укажете запрос ЦП
Если вы укажете ограничение ЦП для Контейнера, но не укажете запрос ЦП, Kubernetes автоматически назначает запрос ЦП, который соответствует лимиту. Точно так же, если Контейнер указывает свой собственный предел памяти, но не указывает запрос памяти, Kubernetes автоматически назначает запрос памяти, соответствующий Лимит.
Мотивация запросов и лимитов ЦП
Путем настройки запросов ЦП и лимитов Контейнеров, которые работают в вашем кластер, вы можете эффективно использовать ресурсы ЦП, доступные в вашем кластере Узлы. Поддерживая низкий уровень запросов ЦП пода, вы даете поду хорошие шансы быть Запланированное.