LINUX.ORG.RU
ФорумAdmin

lxc в одну группу cgroups

 , ,


0

1

Как несколько lxc контейнеров запустить в одной группе cgroups и накинуть , например, на всю группу cpu.shares? Киньте кому не жалко, кейворд для поика.

★★

Последнее исправление: macumazan (всего исправлений: 1)

Может поможет

Chat GPT:

Для запуска нескольких LXC контейнеров в одной группе cgroups и назначения им параметров, таких как cpu.shares, можно воспользоваться утилитой cgcreate для создания новой группы cgroup, и lxc для запуска контейнеров в этой группе. Давайте разберем подробный пример.

Шаг 1: Установка необходимых инструментов

Убедитесь, что у вас установлены lxc и cgroup-tools:

sudo apt-get update
sudo apt-get install lxc cgroup-tools

Шаг 2: Создание новой группы cgroup

Создадим новую группу cgroup с именем, например, «mygroup»:

sudo cgcreate -g cpu,cpuacct:/mygroup

Шаг 3: Назначение ресурсов для группы

Допустим, вы хотите назначить cpu.shares равные 512. Это даст контейнерам в этой группе половину доступных CPU (по умолчанию общее количество shares равно 1024).

echo 512 | sudo tee /sys/fs/cgroup/cpu/mygroup/cpu.shares

Шаг 4: Запуск контейнеров в этой группе

Теперь вы можете запустить контейнеры с помощью lxc и назначить их к созданной группе. Допустим, у вас есть два контейнера: container1 и container2.

# Создаем и запускаем контейнер1 в группе mygroup
sudo lxc-create -n container1 -t download -- --dist ubuntu --release bionic --arch amd64
sudo lxc-start -n container1
sudo lxc-cgroup -n container1 cpuset.cpus 0

# Создаем и запускаем контейнер2 в группе mygroup
sudo lxc-create -n container2 -t download -- --dist ubuntu --release bionic --arch amd64
sudo lxc-start -n container2
sudo lxc-cgroup -n container2 cpuset.cpus 1

Здесь cpuset.cpus назначает ядра CPU для каждого контейнера в группе.

Шаг 5: Проверка параметров

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

# Проверяем, в какой группе находится каждый контейнер
sudo lxc-cgroup -n container1 cpuset.cpus
sudo lxc-cgroup -n container2 cpuset.cpus

# Проверяем количество shares для группы mygroup
cat /sys/fs/cgroup/cpu/mygroup/cpu.shares

Теперь контейнеры container1 и container2 будут работать в группе cgroup «mygroup» с назначенными ресурсами CPU в соответствии с параметром cpu.shares.

masa
()
Ответ на: комментарий от masa

Спасибо, дружище. В целом отлично, только, вангую, что контейнеры не окажутся в mygroup, т.к. явно не указано, как их в неё закидывать. Но еще подумаю.

macumazan ★★
() автор топика