Middle
19
0
questionbank

Как в Docker организовано ограничение ресурсов?

Answer from sobes.tech neural network

Ограничения ресурсов в Docker реализуются с помощью Cgroups (Control groups), механизма ядра Linux, который позволяет организовать процессы в иерархические группы и распределять между ними системные ресурсы (CPU, RAM, I/O, пропускная способность сети).

Основные типы ограничений:

  • CPU:
    • cpu_shares: Устанавливает относительный вес для доступа к CPU. При наличии свободных ресурсов контейнер может использовать больше, чем его share.
    • cpu_quota / cpu_period: Определяет жесткие лимиты на использование CPU. cpu_period задает период времени (в микросекундах), а cpu_quota — максимальное количество микросекунд CPU, которое контейнер может использовать в течение этого периода.
    • cpuset_cpus: Определяет, на каких ядрах CPU разрешено выполняться процессу контейнера.
    • cpuset_mems: Определяет, из каких узлов NUMA разрешено использовать память.
  • Memory:
    • memory: Устанавливает жесткое ограничение на объем RAM, доступный контейнеру. При превышении лимита процессы могут быть остановлены ядром (OOM Killer).
    • memory_swap: Определяет лимит на суммарный объем RAM и swap-памяти.
    • memory_swappiness: Настраивает, насколько агрессивно ядро будет выгружать стран

Ограничения ресурсов в Docker реализуются с помощью Cgroups (Control groups), механизма ядра Linux, который позволяет организовать процессы в иерархические группы и распределять между ними системные ресурсы (CPU, RAM, I/O, пропускная способность сети).

Основные типы ограничений:

  • CPU:
    • cpu_shares: Устанавливает относительный вес для доступа к CPU. При наличии свободных ресурсов контейнер может использовать больше, чем его share.
    • cpu_quota / cpu_period: Определяет жесткие лимиты на использование CPU. cpu_period задает период времени (в микросекундах), а cpu_quota — максимальное количество микросекунд CPU, которое контейнер может использовать в течение этого периода.
    • cpuset_cpus: Определяет, на каких ядрах CPU разрешено выполняться процессу контейнера.
    • cpuset_mems: Определяет, из каких узлов NUMA разрешено использовать память.
  • Memory:
    • memory: Устанавливает жесткое ограничение на объем RAM, доступный контейнеру. При превышении лимита процессы могут быть остановлены ядром (OOM Killer).
    • memory_swap: Определяет лимит на суммарный объем RAM и swap-памяти.
    • memory_swappiness: Настраивает, насколько агрессивно ядро будет выгружать стран

Register or sign in to get access to full answers for all questions from the question bank.

dockerresource-limitscgroupscontainerizationorchestration