В Linux ulimit — это встроенный инструмент для управления распределением ресурсов на глобальном, групповом и пользовательском уровнях. Для многопользовательской системы, такой как Linux, такая возможность имеет почти первостепенное значение. Это может предотвратить потребление нежелательных системных ресурсов, таких как ОЗУ и мощность процессора.
Узнайте, как установить постоянное значение ulimit в Linux.
Ulimit устанавливает предопределенный предел количества ресурсов, которые может использовать пользователь. Инструмент использует определенный файл конфигурации в качестве ядра для назначения значений ulimit. Для более точной настройки лучше отредактировать файл.
$ cat /etc/security/limits.conf
Есть два типа ограничений, которые могут быть наложены: мягкие и жесткие. Эти типы лучше объяснить на простом примере.
Допустим, системный администратор хочет, чтобы определенный пользователь установил курсор на определенное значение. Здесь пользователь может при необходимости превысить значение, но не ограничен им. В этом случае это будет мягкий лимит. С другой стороны, если администратор хочет строго установить ограничение, то это будет жесткое ограничение.
Ulimit — это инструмент командной строки. Вот основная структура команды ulimit.
$ ulimit <options>
Флаг «-a» перечислит все параметры и конфигурации для конкретного пользователя. Если пользователь не определен, вместо этого он напечатает ограничения для текущего пользователя.
$ ulimit -a <username>
Чтобы отобразить мягкие ограничения пользователя, используйте флаг «-S».
Чтобы отобразить жесткие ограничения пользователя, используйте флаг «-H».
$ ulimit -Ha <username>
Можно увидеть пределы определенного процесса. Подробности находятся в следующем файле. Обратите внимание, что это уникальный файл для каждого из запущенных в данный момент процессов. Поменяйте местами поле PID с PID целевого процесса.
$ cat /proc/<PID>/limits
Чтобы изменить ulimit, вы должны объявить, какой тип ограничения вы хотите определить. Вот список всех доступных параметров, которые вы можете изменить. Практически все они определяют максимальное значение каждого из параметров.
Можно временно изменить значение ulimit для конкретного пользователя. Изменение будет действовать до тех пор, пока пользователь не выйдет из системы, не истечет срок сеанса или пока система не перезагрузится. Здесь мы покажем пример того, как установить максимальное количество процессов для пользователя.
Чтобы изменить количество доступных процессов на 12345, выполните следующую команду. Это наложит временное жесткое ограничение на пользователя.
$ ulimit -u
$ ulimit -u 12345
Проверьте жесткий лимит, чтобы проверить.
Как упоминалось ранее, ulimit использует файл конфигурации системы, который определяет значение ulimit по умолчанию. Внося изменения в этот файл, вы можете навсегда изменить значение ulimit для любого пользователя.
Откройте файл в вашем любимом текстовом редакторе. Обратите внимание, что файл должен быть открыт с правами root для сохранения изменений.
$ sudo vim /etc/security/limits.conf
Здесь записи файла имеют следующую структуру.
$ <domain> <type> <item> <value>
Давайте вкратце разберем каждое из полей.
Вот краткий список всех доступных предметов.
Полный список доступных элементов можно найти на странице руководства limits.conf.
$ man limits.conf
Например, следующая запись ограничит количество ядер ЦП, которые может использовать пользователь «andrey», до 2.
$ andrey hard nproc 2
После редактирования сохраните файл. Чтобы изменения вступили в силу, затронутые пользователи должны выйти из системы и повторно войти в систему. В зависимости от того, как это реализовано, может также потребоваться перезагрузка системы.
Инструмент ulimit предлагает мощный способ управления ресурсами. Это просто, но эффективно в том, что делает. Что бы вы ни делали, убедитесь, что лимит, который вы собираетесь реализовать, введен правильно. Если вы пробуете эти вещи впервые, попробуйте сначала протестировать их на виртуальной машине.
Команда ulimit — это нечто большее, чем мы обсудили здесь.
Удачных вычислений!