Soft limit (мягкий лимит) в Linux определяет текущее ограничение ресурсов для процесса, которое может быть изменено самим процессом в пределах hard limit. В этой статье мы рассмотрим методы изменения soft limit для различных системных ресурсов.
Содержание
Основные виды ресурсных ограничений
| CPU time | Максимальное время процессора |
| File size | Максимальный размер файла |
| Data segment | Размер сегмента данных |
| Stack size | Размер стека процесса |
| Open files | Количество открытых файлов |
Просмотр текущих лимитов
Команда ulimit
Для просмотра текущих soft limit:
ulimit -Sa- показать все soft limitulimit -Sn- максимальное количество открытых файловulimit -Ss- размер стека (в килобайтах)
Через /proc
Для конкретного процесса:
- Найдите PID процесса:
ps aux | grep процесс - Просмотрите лимиты:
cat /proc/PID/limits
Изменение soft limit
Временное изменение через ulimit
Пример для открытых файлов:
ulimit -Sn 2048- установить soft limit в 2048 файлов- Изменения действуют только в текущей сессии
Постоянное изменение через конфигурационные файлы
Для системного изменения:
- Откройте файл
/etc/security/limits.conf - Добавьте строку:
пользователь soft ресурс значение - Сохраните изменения и перезайдите в систему
Примеры конфигурации
| Увеличение открытых файлов | username soft nofile 8192 |
| Увеличение стека | username soft stack 8192 |
| Ограничение CPU | username soft cpu 3600 |
Изменение soft limit из кода программы
Использование setrlimit()
Пример на C:
#include <sys/resource.h>struct rlimit rlim;rlim.rlim_cur = новый_soft_limit;setrlimit(RLIMIT_NOFILE, &rlim);
В Python
Использование resource модуля:
import resourcesoft, hard = resource.getrlimit(resource.RLIMIT_NOFILE)resource.setrlimit(resource.RLIMIT_NOFILE, (2048, hard))
Важные особенности
- Soft limit не может превышать hard limit
- Для изменения hard limit требуются права root
- Изменения через ulimit действуют только на текущую сессию
- Системные изменения требуют перезапуска процессов
Проверка изменений
После изменения soft limit:
- Запустите процесс
- Проверьте PID:
pgrep процесс - Убедитесь в изменениях:
cat /proc/PID/limits - Проверьте работу приложения
Изменение soft limit позволяет гибко управлять ресурсами процессов в Linux без необходимости изменения hard limit или прав root для непривилегированных пользователей. Правильная настройка этих параметров помогает оптимизировать работу приложений и предотвратить их аварийное завершение.















