← До списку лабораторних по Docker
Повний опис / сценарій лабораторної:
Мета: зрозуміти як обмежувати IO контейнера щоб він не заважав іншим сервісам на хості. Крок 1. Ознайомитися з параметрами blkio які підтримує Docker. Пояснення: наприклад --device-read-bps, --device-write-bps, --device-read-iops. Крок 2. Визначити блоковий пристрій який використовується для даних. Команда: lsblk Пояснення: зазвичай це щось на кшталт sda або vda. Крок 3. Запустити контейнер без обмежень і створити у ньому інтенсивне IO. Пояснення: використай dd або stress-ng щоб писати дані на диск. Крок 4. Спостерігати за завантаженням диска. Команда: iostat або atop на хості. Крок 5. Зупинити контейнер і запустити його з обмеженням IO. Команда: docker run -d --name io68 --device-write-bps /dev/sda:10mb busybox sh -c "while true; do dd if=/dev/zero of=/data/file bs=1M count=100; sleep 5; done" Пояснення: заміни /dev/sda на свій пристрій. Крок 6. Знову виміряти завантаження диска. Пояснення: порівняй з попереднім експериментом. Крок 7. Перевірити як обмеження впливають на час виконання задачі. Пояснення: виміряй скільки секунд триває запис того самого обʼєму. Крок 8. Обговорити чи доцільно задавати такі ліміти для прод баз даних. Пояснення: надто жорсткі обмеження можуть погіршити продуктивність. Крок 9. Сформулювати рекомендації щодо IO лімітів для допоміжних сервісів. Пояснення: бекграундні завдання можуть мати суворіші обмеження. Крок 10. Міні звіт. Завдання: опиши підхід до вибору IO лімітів для різних типів контейнерів на спільному хості.