Дескриптор файла — уникальный идентификатор, связанный с открытым файлом, сокетом или другими ресурсами ввода-вывода. Дескрипторы используются программами для чтения файлов и записи в них, обмена данными по сети и взаимодействия с различными ресурсами ввода-вывода. Функционал ОС Linux позволяет ограничить максимальное количество файловых дескрипторов, которые могут быть открыты одновременно у процесса или пользователя. Этот лимит может устанавливаться для предотвращения перегрузки ОС или компонентов ПК.
В этой статье мы расскажем, как установить лимит использования файловых дескрипторов в Debian / Ubuntu Linux.
Содержание:
- Что такое команда ulimit
- Проверка текущих ограничений ресурсов в ОС
- Изменение лимита для количества открытых файлов
- Изменение лимита для конкретного пользователя
- Установка общесистемного лимита открытых файлов
- Выводы
Что такое команда ulimit
Одним из способов изменения лимита открытых файлов является использование команды ulimit. Ее основное предназначение — вывод на экран и установка ограничений ресурсов на уровне пользователя для процессов, запущенных в текущем сеансе оболочки. Эти ограничения задаются для того, чтобы программы не потребляли слишком много системных ресурсов, а также для повышения стабильности и безопасности ОС. Все лимиты можно разделить на:
- Жесткие — абсолютный максимальный предел. Пользователь или процесс не может превысить жесткий предел без привилегий суперпользователя.
- Мягкие — эффективный предел для ресурса. Пользователь или процесс может увеличивать или уменьшать мягкий лимит в пределах жесткого.
Проверка текущих ограничений ресурсов в ОС
Чтобы отобразить в терминале все ограничения ресурсов для текущего сеанса оболочки, выполните следующую команду:
Читайте также: Как узнать, кто использует файл с инструментом lsof.
Чтобы узнать текущий мягкий предел максимального количества открытых дескрипторов файлов, используйте ulimit с опциями -S и -n:
Посмотреть жесткий лимит для максимального количества открытых дескрипторов файлов можно с помощью команды ulimit с опциями -H и -n:
Изменение лимита для количества открытых файлов
Чтобы изменить одновременно мягкий и жесткий предел открытых файлов для текущего сеанса оболочки, примените ulimit с опцией -n и укажите нужное число в качестве аргумента. Например:
Читайте также: 5 команд для поиска файлов в Linux.
Изменение лимита для конкретного пользователя
Функционал ОС Linux позволяет установить предел открытых файлов для каждого пользователя. Допустим, нам нужно задать новые лимиты для пользователя user. Чтобы это сделать, откроем файл /etc/security/limits.conf:
И вставим в него следующие значения:
Мы установили мягкий лимит на 200 000 открытых файлов, а жесткий лимит на 2 000 000. Затем сохраним внесенные изменения и закроем /etc/security/limits.conf. Чтобы новые лимиты вступили в силу, откроем файл /etc/pam.d/common-session и вставим в него следующую строку:
Читайте также: Команда procinfo — примеры использования в Linux.
После чего также сохраним внесенные изменения.
Установка общесистемного лимита открытых файлов
Вы также можете установить предел открытых файлов для всей ОС. Для этого нужно отредактировать файл /etc/sysctl.conf, вставив в него переменную fs.file-max с нужным значением. Например:
Затем в терминале следует выполнить следующую команду, чтобы применить внесенные изменения:
Выводы
Теперь Вы знаете, как изменять лимит открытых файлов в текущем сеансе оболочки в Debian / Ubuntu Linux. Применяя показанные примеры, Вы сможете устанавливать пределы использования файловых дескрипторов как для отдельных пользователей, так и для ОС в целом.
Спасибо за время, уделенное прочтению статьи!
Если возникли вопросы — задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet / DevOps (программируемые системы) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
































