Ulimits (user limits) — это ограничения на потребление ресурсов процессами операционной системой Linux. Они помогают предотвратить исчерпание системных ресурсов одним процессом и обеспечить стабильность.
Основные ресурсы, которые можно ограничить с помощью ulimits:
- CPU time (seconds): Максимальное время работы CPU для процесса.
- File size (blocks): Максимальный размер файла, который может создать пользователь.
- Data segment size (kbytes): Максимальный размер сегмента данных процесса.
- Stack size (kbytes): Максимальный размер стека процесса.
- Core file size (blocks): Максимальный размер core-дампа.
- Resident set size (kbytes): Максимальный размер резидентной памяти процесса (часто не поддерживается или имеет только "soft" ограничение).
- Number of processes: Максимальное количество процессов, которое может создать пользователь.
- Open files: Максимальное количество файлов, которое может открыть процесс.
- Locked memory ([kbytes]): Максимальный объем памяти, который может быть заблокирован в ОЗУ.
- Max user processes: Максимальное количество процессов, доступных конкретному пользователю (игнорирует ID другого пользователя при подсчете).
- Pending signals: Максимальное количество сигналов, которые могут ожидать в очереди для конкретного процесса.
- Msgqueue size (bytes): Максимальный размер очереди сообщений POSIX.
- Real-time priority: Максимальный приоритет реального времени, который может быть установлен.
- Nice priority: Максимальное "мягкое" значение приоритета.
- Real-time locked memory (kbytes): Максимальный размер памяти, заблокированной для задач реального времени.
Ulimits бывают двух типов:
- Soft limit: Текущее, активно применяемое ограничение. Пользователь или процесс может увеличить Soft limit, но не выше Hard limit.
- Hard limit: Максимальное возможное ограничение, установленное администратором. Только суперпользователь (root) может увеличи