Как изменить ограничение на количество открытых файлов в Linux?
При запуске моего приложения я иногда получаю 9X_linux сообщение об ошибке too many files open
.
Выполнение ulimit -a
сообщает, что 9X_linux лимит 1024. Как увеличить лимит выше 1024?
Редактировать
ulimit -n 2048
приводит 9X_linux к ошибке разрешения.
Ответ #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 по умолчанию.
- подскажите, как это использовать в окнах?< ...
Ответ #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
без ошибки разрешения.
- @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
Вот и все, бум, бум, бум.
- Если вы измените свою строку в 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 сервера.
-
11
-
8
-
11
-
10
-
12
-
2
-
8
-
9
-
10
-
12
-
16
-
18
-
13
-
7
-
40
-
2
-
4
-
5
-
9
-
8
-
3
-
6
-
6
-
1
-
12
-
12
-
10
-
10
-
2
-
3
-
7
-
2
-
13
-
10
-
12
-
9
-
9
-
9
-
23
-
12
-
5
-
15
-
21
-
4
-
18
-
7
-
8
-
8
-
3
-
6