Использование ЦП на нашем метрическом поле в 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:
Вопрос: существует ли способ уменьшить использование ЦП?
Короткий ответ - да. Длинный ответ вероятен, что кто-то попытался настроить контейнерный доступ к циклам процессора сервера и настроенный неправильно.
По умолчанию доступ каждого контейнера к циклам ЦП хост-машины неограничен. Можно установить различные ограничения для ограничения доступа предоставленного контейнера к циклам ЦП хост-машины. Большинство пользователей будет использовать и настраивать планировщик 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