Использование ЦП периодически в 100%

Использование ЦП на нашем метрическом поле в 100%, периодически вызывающих:
'Внутренняя ошибка сервера' при рендеринге панелей инструментов Grafana

Единственное приложение, работающее на нашей машине, является Докером с 3 подконтейнерами

Следующее является нашими деталями конфигурации:
3 подконтейнера running\
cadvisor\
graphite\
grafana\
Драйвер status\
17.09.0-ce\версия докера
Версия 4.4.0-103-generic\ядра
Версия ОС Ubuntu 16.04 LTS\
Storage\
Драйвер-> overlay2\
Поддержка Файловой системы-> extfs\
Поддержки d_type-> true\
Собственная Разность Наложения-> верный

Предел подкачки памяти-> 2.00 ГБ

Вот отрывок от cAdvisor:

enter image description here

Вопрос: существует ли способ уменьшить использование ЦП?

4
задан 25 January 2018 в 18:04

1 ответ

Короткий ответ - да. Длинный ответ вероятен, что кто-то попытался настроить контейнерный доступ к циклам процессора сервера и настроенный неправильно.

По умолчанию доступ каждого контейнера к циклам ЦП хост-машины неограничен. Можно установить различные ограничения для ограничения доступа предоставленного контейнера к циклам ЦП хост-машины. Большинство пользователей будет использовать и настраивать планировщик CFS по умолчанию. В Докере 1.13 и выше, можно также настроить планировщик в реальном времени.

Вы должны

Настройте планировщик CFS по умолчанию

CFS является ядром Linux планировщик ЦП для нормальных процессов Linux. Несколько флагов во время выполнения позволяют Вам настраивать сумму доступа к ресурсам ЦП, которые имеет Ваш контейнер. Когда Вы используете эти настройки, Докер изменяет настройки для cgroup контейнера на хост-машине.

Можно Указать, сколько из доступного ЦП снабжает контейнер, может использовать, а также Предел определенные центральные процессоры или удаляет сердцевину контейнера, может использовать среди нескольких других опций, касающихся конфигурации использования ЦП. Для больше, проверьте источник.

Предупреждение: планирование ЦП и приоритизация являются усовершенствованными функциями уровня ядра. Большинство пользователей не должно изменять эти значения от своих значений по умолчанию. Устанавливание этих значений неправильно может заставить Вашу хост-систему становиться нестабильной или неприменимой.

Я лично осторожно присвоил бы 1/4 ядер процессора, доступных каждому контейнеру, оставляющему некоторое пространство для маневра для других вещей. Таким образом на четырехъядерном рабочем докере v1.13 и выше:

Я был бы docker run -it --cpus="1" ubuntu /bin/bash

и на v.1.12 и ниже:

Я был бы docker run -it --cpu-period=100000 --cpu-quota=25000 ubuntu /bin/bash

Это, кажется, хорошая начальная точка для четырехъядерной системы. Я настроил бы эти параметры для получения уровня производительности по сравнению с доступностью, которой я требовал.

Источник: https://docs.docker.com/engine/admin/resource_constraints/#configure-the-default-cfs-scheduler

2
ответ дан 1 December 2019 в 10:15

Другие вопросы по тегам:

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