Домены
Интересные статьи
Домены
Главная страница / Linux / CentOS / Как увеличить лимит Открытых файлов в Ubuntu/Debian/CentOS/Fedora

Как увеличить лимит Открытых файлов в Ubuntu/Debian/CentOS/Fedora

Периодически при работе сервера вы можете столкнуться с ошибкой “Too many open files” в Linux системах. Чаще всего это бывает на нагруженных серверах. Это значит, что сервер достиг лимита на количество открытых файлов. Этот лимит может быть указан для конкретного пользователя или сессии.

В этой статье я расскажу какие бывают лимиты (а их два вида) и как их увеличить.

Лимитов существует два вида:

  • Жесткий лимит – максимальное количество открытых файлов для пользователя или сессии. Устанавливается только администратором/root
  • Мягкий лимит – текущее эффективное значение для пользователя или сессии. Может быть изменен самим пользователем, но значение не может превышать жесткого лимита.

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

Для контроля лимита ресурсов в Linux имеется утилита ulimit.

Получим текущее значение лимитов:

ulimit -a

В результате выполнения команды вы увидите список текущих лимитов, а именно тип лимита и его значение.

Чтобы узнать жесткий и мягкие лимиты, используйте следующие команды:

ulimit -Sn       # Мягкий лимит
ulimit -Hn       # Жесткий лимит

Увеличение лимита для текущей сесии

Большинство операционных систем позволяют изменить лимит открытых файлов для текущей сессии с помощью команды ulimit -n:

ulimit -n 20000

Увеличение лимита для пользователя

Вы также можете изменить лимиты для каждого пользователя в отдельности. Для этого нужно отредактировать файл /etc/security/limits.conf в удобном вам редакторе, в моем случае это будет vim

vim /etc/security/limits.conf

и добавить в него следующие строки:

* 	 soft     nproc          65535
* 	 hard     nproc          65535
* 	 soft     nofile         65535
* 	 hard     nofile         65535
max 	 soft     nproc          20000
max 	 hard     nproc          20000
max 	 soft     nofile         20000
max 	 hard     nofile         20000

Это значит, что для пользователя “max” будут установлены лимиты в 20000, а для всех остальных пользователей – 65535. Измените эти значение по своему усмотрению.

Изменение лимита для всей системы

Вы также можете изменить лимиты для всех пользователей системы, для этого нужно отредактировать параметры sysctl. Откройте в редакторе файл /etc/sysctl.conf и добавьте следующую строку:

fs.file-max = 131070

После чего примените эти изменения командой

sysctl -p

Этим вы установили лимиты для всей системы. Лимиты для конкретного пользователя или сессии не могут превышать лимитов системы.

Обо мне cyber01

Прочитайте также

Как установить Java в CentOS 8

В этой статье я расскажу как установить Java в CentOS 8 и RHEL 8. Java …

Как установить Red5 Server на Ubuntu 18.04 и 16.04

Red5 Media Server это сервер предназначенный для раздачи потокового медиа, работает сервер по протоколу RTMP. …

Как обновить библиотеку ICU и PHP intl в CentOS 7/Ubuntu/Debian

Недавно столкнулся с такой проблемой: после переноса проекта с сервера (Debian) на другой сервер (CentOS) …

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *