Soft limit (мягкий лимит) в Linux определяет текущее ограничение ресурсов для процесса, которое может быть изменено самим процессом в пределах hard limit. В этой статье мы рассмотрим методы изменения soft limit для различных системных ресурсов.

Содержание

Основные виды ресурсных ограничений

CPU timeМаксимальное время процессора
File sizeМаксимальный размер файла
Data segmentРазмер сегмента данных
Stack sizeРазмер стека процесса
Open filesКоличество открытых файлов

Просмотр текущих лимитов

1. Команда ulimit

Для просмотра текущих soft limit:

  • ulimit -Sa - показать все soft limit
  • ulimit -Sn - максимальное количество открытых файлов
  • ulimit -Ss - размер стека (в килобайтах)

2. Через /proc

Для конкретного процесса:

  1. Найдите PID процесса: ps aux | grep процесс
  2. Просмотрите лимиты: cat /proc/PID/limits

Изменение soft limit

1. Временное изменение через ulimit

Пример для открытых файлов:

  • ulimit -Sn 2048 - установить soft limit в 2048 файлов
  • Изменения действуют только в текущей сессии

2. Постоянное изменение через конфигурационные файлы

Для системного изменения:

  1. Откройте файл /etc/security/limits.conf
  2. Добавьте строку: пользователь soft ресурс значение
  3. Сохраните изменения и перезайдите в систему

Примеры конфигурации

Увеличение открытых файловusername soft nofile 8192
Увеличение стекаusername soft stack 8192
Ограничение CPUusername soft cpu 3600

Изменение soft limit из кода программы

1. Использование setrlimit()

Пример на C:

  • #include <sys/resource.h>
  • struct rlimit rlim;
  • rlim.rlim_cur = новый_soft_limit;
  • setrlimit(RLIMIT_NOFILE, &rlim);

2. В Python

Использование resource модуля:

  1. import resource
  2. soft, hard = resource.getrlimit(resource.RLIMIT_NOFILE)
  3. resource.setrlimit(resource.RLIMIT_NOFILE, (2048, hard))

Важные особенности

  • Soft limit не может превышать hard limit
  • Для изменения hard limit требуются права root
  • Изменения через ulimit действуют только на текущую сессию
  • Системные изменения требуют перезапуска процессов

Проверка изменений

После изменения soft limit:

  1. Запустите процесс
  2. Проверьте PID: pgrep процесс
  3. Убедитесь в изменениях: cat /proc/PID/limits
  4. Проверьте работу приложения

Изменение soft limit позволяет гибко управлять ресурсами процессов в Linux без необходимости изменения hard limit или прав root для непривилегированных пользователей. Правильная настройка этих параметров помогает оптимизировать работу приложений и предотвратить их аварийное завершение.

Другие статьи

Как удалить товар из истории покупок на Ozon и прочее