Linux Labs

Система изнутри: ресурсы, ядро, процессы / Ступень 2 из 12

Память, swap и OOM killer

Не запущена Запускается обычно ~20 с
Выйти из урока

Шаг 8 из 9 · лаба · 20 минсредняя

Сборке не хватает памяти

Ночная сборка поискового индекса падает по памяти, а прибавить ей оперативной памяти нельзя. Дай машине swap-файл так, чтобы он пережил перезагрузку, и настрой, насколько охотно система им пользуется.

Ситуация

Каждую ночь таймер lab-build.timer запускает сборку поискового индекса сайта документации — службу lab-build. Сборке отведено 192 МиБ оперативной памяти: остальное нужно сайту и базе. Страниц стало больше, и уже которую ночь индекс не обновляется. Сборку можно запустить и днём: sudo systemctl start lab-build.

Прибавить сборке оперативной памяти нельзя. Решили дать машине swap: что не помещается в 192 МиБ, уйдёт на диск — сборка пойдёт медленнее, но закончится.

Задача

  1. Swap — файл ровно на 512 МиБ, и он включён. В swap попадает память процессов, поэтому читать и писать файл может только root (права 600).
  2. После перезагрузки swap включается сам, и строки swap в /etc/fstab не дают ошибок при загрузке.
  3. Система неохотно отправляет память в swap: vm.swappiness = 10 сейчас и после перезагрузки, настройка записана файлом в /etc/sysctl.d.
  4. Сборка sudo systemctl start lab-build проходит — проверка запустит её сама. Юнит сборки и её лимит памяти не меняй.

Интернета на машине нет, нужные программы уже установлены.

Лаба · самостоятельно

Команды в этой лабе не даны: набирай их в терминале сам. Цели проверяются на машине после каждой команды.

Цели

0 из 4
  • Включён swap-файл ровно на 512 МиБ, владелец root, права 600 — ещё не выполнена
  • Swap-файл записан в /etc/fstab, и строк swap на несуществующие файлы там нет — ещё не выполнена
  • vm.swappiness = 10 сейчас и после перезагрузки — из файла в /etc/sysctl.d — ещё не выполнена
  • Ночная сборка lab-build проходит в прежнем лимите памяти 192 МиБ — ещё не выполнена
Ctrl+Enter
Запустит машину node1 · Ubuntu 24.04

Машина запускается

Подсказки

0 из 3

Цели лабы

0 из 4
  • Включён swap-файл ровно на 512 МиБ, владелец root, права 600 — ещё не выполнена
  • Swap-файл записан в /etc/fstab, и строк swap на несуществующие файлы там нет — ещё не выполнена
  • vm.swappiness = 10 сейчас и после перезагрузки — из файла в /etc/sysctl.d — ещё не выполнена
  • Ночная сборка lab-build проходит в прежнем лимите памяти 192 МиБ — ещё не выполнена
node1 Ubuntu 24.04

Цели лабы

0 из 4
  • Включён swap-файл ровно на 512 МиБ, владелец root, права 600 — ещё не выполнена
  • Swap-файл записан в /etc/fstab, и строк swap на несуществующие файлы там нет — ещё не выполнена
  • vm.swappiness = 10 сейчас и после перезагрузки — из файла в /etc/sysctl.d — ещё не выполнена
  • Ночная сборка lab-build проходит в прежнем лимите памяти 192 МиБ — ещё не выполнена
Загрузка…