Как изменить ограничение на количество открытых файлов в Linux?

При запуске моего приложения я иногда получаю 9X_linux сообщение об ошибке too many files open.

Выполнение ulimit -a сообщает, что 9X_linux лимит 1024. Как увеличить лимит выше 1024?

Редактировать ulimit -n 2048 приводит 9X_linux к ошибке разрешения.

214
0
4
Общее количество ответов: 4

Ответ #1

Ответ на вопрос: Как изменить ограничение на количество открытых файлов в Linux?

Вы всегда можете попробовать сделать ulimit -n 2048. Это 9X_linux только сбросит ограничение для вашей текущей 9X_linux оболочки, и указанное вами число не должно 9X_linux превышать жесткого ограничения

Каждая операционная 9X_linux система имеет разные настройки жесткого 9X_linux ограничения в файле конфигурации. Например, ограничение 9X_linux жесткого открытия файлов в Solaris может 9X_linux быть установлено при загрузке из /etc/system.

set rlim_fd_max = 166384
set rlim_fd_cur = 8192

В 9X_linux OS X эти же данные должны быть установлены 9X_linux в /etc/sysctl.conf.

kern.maxfilesperproc=166384
kern.maxfiles=8192

В Linux эти настройки 9X_linux часто находятся в /etc/security/limits.conf.

Существует 9X_linux два вида лимитов:

  • мягкие ограничения — это просто ограничения, применяемые в настоящее время
  • жесткие пределы отмечают максимальное значение, которое не может быть превышено путем установки мягкого ограничения

Мягкие ограничения могут 9X_linux быть установлены любым пользователем, а 9X_linux жесткие ограничения могут быть изменены 9X_linux только пользователем root. Пределы являются 9X_linux свойством процесса. Они наследуются при 9X_linux создании дочернего процесса, поэтому общесистемные 9X_linux ограничения должны быть установлены во время 9X_linux инициализации системы в сценариях инициализации, а 9X_linux пользовательские ограничения должны быть 9X_linux установлены во время входа пользователя, например, с 9X_linux помощью pam_limits.

Часто при загрузке машины 9X_linux устанавливаются значения по умолчанию. Таким 9X_linux образом, даже если вы можете сбросить свой 9X_linux ulimit в отдельной оболочке, вы можете обнаружить, что 9X_linux он сбрасывается до предыдущего значения 9X_linux при перезагрузке. Возможно, вы захотите 9X_linux проверить свои загрузочные сценарии на наличие 9X_linux команд ulimit, если хотите изменить значение 9X_linux по умолчанию.

161
2

  • подскажите, как это использовать в окнах?< ...

Ответ #2

Ответ на вопрос: Как изменить ограничение на количество открытых файлов в Linux?

Если вы используете Linux и получили ошибку 9X_linux разрешения, вам нужно будет увеличить допустимый 9X_linux предел в файле /etc/limits.conf или /etc/security/limits.conf (расположение файла 9X_linux зависит от вашего конкретного дистрибутива 9X_linux Linux).

Например, чтобы разрешить любому 9X_linux пользователю увеличить количество открытых 9X_linux файлов до 10000, добавьте строку в файл 9X_linux limits.conf.

* hard nofile 10000

Затем выйдите из системы и снова войдите 9X_linux в систему, и вы сможете:

ulimit -n 10000

без ошибки разрешения.

110
4

  • @NiCkNewman Я рада, что вы смеетесь над этим! Это хорошая ...

Ответ #3

Ответ на вопрос: Как изменить ограничение на количество открытых файлов в Linux?

1) Добавьте следующую строку в /etc/security/limits.conf

webuser hard nofile 64000

затем войдите 9X_linux как веб-пользователь

su - webuser

2) Отредактируйте следующие 9X_linux два файла для веб-пользователя

добавьте файл 9X_linux .bashrc и .bash_profile, запустив

echo "ulimit -n 64000" >> .bashrc ; echo "ulimit -n 64000" >> .bash_profile

3) Выйдите из системы, затем войдите 9X_linux снова и убедитесь, что изменения были внесены 9X_linux правильно:

$ ulimit -a | grep open
open files                      (-n) 64000

Вот и все, бум, бум, бум.

41
1

  • Если вы измените свою строку в limits.conf с «жесткой» на ...

Ответ #4

Ответ на вопрос: Как изменить ограничение на количество открытых файлов в Linux?

Если некоторые из ваших сервисов не используют 9X_linux ulimit, иногда проще поместить соответствующие 9X_linux команды в скрипт инициализации сервиса. Например, когда 9X_linux Apache сообщает

[предупреждение] (11) Ресурс 9X_linux временно недоступен: apr_thread_create: невозможно 9X_linux создать рабочий поток

Попробуйте поместить 9X_linux ulimit -s unlimited в /etc/init.d/httpd. Для этого не требуется перезагрузка 9X_linux сервера.

7
0