Skip to content

Latest commit

 

History

History
78 lines (43 loc) · 6.57 KB

resource-management.md

File metadata and controls

78 lines (43 loc) · 6.57 KB

Управление ресурсами

Управление ресурсами — настройка механизмов ОС, которые ограничивают и распределяют CPU, память, дисковые операции и сеть между процессами или группами процессов. Это относится к настройке распределения ресурсов и приоритетов, а не к поиску первопричины: метод чаще используют, чтобы сделать поведение системы более предсказуемым или смоделировать условия.

Состоит из:

  • Списка ресурсов, для которых настраивается управление
  • Списка целей управления ресурсами
  • Списка параметров управления для каждого ресурса
  • Списка сценариев регулирования сети

Недостатки:

  • Зависимость от реализации и версии ОС
  • Сложность из-за большого числа параметров
  • Некоторые настройки могут быть опасны, например: некоторые параметры, изменяемые утилитами, например: hdparm, могут привести к потере данных

Требуемые вычислительные ресурсы:

  • Низкие:

    • Применение базовых настроек управления ресурсами как изменений конфигурации ОС: задания приоритетов и параметров через nice/renice, chrt, ionice, sysctl, а также настройка параметров через файлы /proc и /sys

    • Использование средств управления ресурсами для процессов или групп процессов для задания фиксированных ограничений и распределения ресурсов

  • Средние:

    • Применение профилей настройки, например: Tuned, которые включают несколько подсистем и параметров одновременно
  • Высокие:

    • Сетевое моделирование при тестировании производительности: добавление задержки пакетов и использование дисциплин очередей tc для управления сетевым трафиком

Временные затраты на реализацию:

  • Низкие: точечные действия, например: поменять приоритет процесса, задать лимит

  • Средние: нужно подобрать значения под конкретную нагрузку, добавить мониторинг срабатываний ограничений и прогнать тесты

  • Высокие: требуется политика на несколько сервисов, согласование приоритетов, безопасные дефолты, автоматизация и процедура отката

Применимость:

  • Этап эксплуатации
  • Этап после первичной диагностики
  • Тестирование производительности

Процессор:

  • Инструменты: nice/renice, chrt, режимы частоты CPU через /sys/devices/system/cpu/cpufreq/policy0/, cpupower, numactl, cpusets, распределение прерываний, управление потреблением через cgroups, параметры загрузки, настройки BIOS

  • Типичный эффект: привязка к CPU и cpusets могут повышать производительность за счёт «разогрева кэша» и локализации памяти

  • Риск: исключительные CPU-наборы уменьшают число процессоров, доступных остальной системе

Память:

  • Механизмы: системные параметры памяти через sysctl, huge pages и transparent huge pages, выбор распределителя памяти в user-space, привязка NUMA numactl, базовые лимиты через ulimit, расширенное управление через cgroups memory, общесистемные лимиты в /etc/security/limits.conf

  • Типичный эффект: размещение рабочих наборов в основной памяти и снижение частоты подкачки

  • Риск: изменение параметров sysctl может увеличить нагрузку на ядро при нехватке памяти и повлиять на раннее срабатывание OOM

Диски:

  • Механизмы: ionice, управление дисковым вводом-выводом через cgroups blkio, параметры очередей в /sys/block/*/queue/*, настройка устройства через hdparm, параметры контроллеров

  • Типичный эффект: ionice в классе “бездействие” позволяет выполнять длительные фоновые задачи так, чтобы они меньше мешали остальной нагрузке

  • Риск: ionice в режиме реального времени при неправильном применении может привести к нехватке ресурсов для других процессов

Сеть:

  • Механизмы: общесистемные сетевые параметры через sysctl и /proc/sys/net, настройки на уровне сокетов через setsockopt(2), дисциплины очередей tc, управление приоритетом через cgroups, использование BPF для классификации, параметры конфигурации, профили Tuned для автоматизации части настроек

  • Типичный эффект: дисциплины очередей позволяют планировать трафик

  • Риск: много настраиваемых параметров