← До фільтрів та технологій

← До списку лабораторних по Linux

Linux Лабораторна 64: Запуск команд у окремому cgroup

Технологія: Linux

Номер лабораторної: 64 · Рівень: middle

Тема: cgroups та systemd-run

Повний опис / сценарій лабораторної:

Мета: навчитися запускати одноразові задачі у окремому cgroup з обмеженням cpu та памʼяті через systemd-run.



Крок 1. Перевірити версію systemd.

Команда: systemctl --version

Пояснення: нові версії мають зручні параметри для керування ресурсами.



Крок 2. Запустити просту команду через systemd-run.

Команда: systemd-run --unit=lab64-test --scope sleep 60

Пояснення: процес sleep працює у окремому scope юніті.



Крок 3. Переглянути статус юніта.

Команда: systemctl status lab64-test.scope

Пояснення: видно команду, стан та привʼязані ресурси.



Крок 4. Запустити команду з обмеженням памʼяті.

Команда: systemd-run --unit=lab64-mem --scope -p MemoryMax=200M stress --vm 1 --vm-bytes 300M --vm-keep

Пояснення: використайте пакет stress або аналогічну утиліту для навантаження.



Крок 5. Спостерігати як процес реагує на ліміт.

Команади: systemctl status lab64-mem.scope; dmesg | tail

Пояснення: ядро може вбити процес при перевищенні ліміту.



Крок 6. Запустити команду з обмеженням cpu.

Команда: systemd-run --unit=lab64-cpu --scope -p CPUQuota=20% stress --cpu 4

Пояснення: дивіться у top чи htop як процеси використовують cpu.



Крок 7. Переглянути параметри cgroup для юніта.

Команда: systemctl show lab64-cpu.scope | grep -i cpu

Пояснення: тут видно застосовані ліміти.



Крок 8. Зупинити тестові юніти.

Команда: systemctl stop lab64-mem.scope lab64-cpu.scope 2>/dev/null || true



Крок 9. Обговорити відмінність між transient юнітами і постійними service файлам.

Пояснення: transient підходять для одноразових задач з обмеженнями.



Крок 10. Міні звіт.

Завдання: опишіть як ви використали б systemd-run для обмеження ресурсоємного backup скрипта.