MemoryHigh и MemoryMax systemd: замедление и жёсткая граница памяти
Фотография конкретного исполнения не приложена.
Для службы сбора или обработки данных полезно ограничить влияние на остальные приложения узла. В единой иерархии cgroup MemoryHigh задаёт порог активного давления на память и замедления процессов. Использование памяти может вынужденно превысить этот уровень, поэтому его нельзя воспринимать как абсолютный размер гарантированно изолированного буфера.
MemoryMax задаёт абсолютную границу: если использование не удаётся удержать ниже неё, внутри unit вызывается механизм out-of-memory. Руководство 262 предлагает рассматривать MemoryHigh как основной способ управления, а MemoryMax — как последнюю границу. Это не обещание плавного замедления при любом превышении: процесс может быть завершён.
Эффективные значения зависят также от ограничений родительских slices и физических ресурсов узла. Локально указанное число не подтверждает, что службе действительно доступен весь этот объём. Параметры периода загрузки могут отличаться от штатного режима; поддержку контроллера и эффективную конфигурацию проверяют в конкретной системе.
В приёмке воспроизводят максимальное задание, конкурентную нагрузку и рост памяти сверх ожидаемого. Сопоставляют задержку полезной обработки, события ограничения и результат восстановления после OOM. Положительный запуск службы с заданным лимитом не доказывает сохранность незавершённой записи при принудительном завершении. Для неё нужен отдельный сценарий приложения.
Основание — Official systemd manual edition262, cited sections only, разделы systemd.resource-control MemoryHigh; MemoryMax; effective limits. Сохранён текст публичной справочной публикации; конкретная реализация может поддерживать только часть возможностей. Материал относится к справочникам systemd 262. Установленные Linux-дистрибутив, сборка systemd и возможности ядра не проверялись; изменения служб и настроек не выполнялись.
Запросы отправляются на наш e-mail из вашей почтовой программы.
