4 ответов:
вы всегда можете попробовать сделать
ulimit -n 2048. Это приведет только к сбросу лимита для вашей текущей оболочки, и указанное число не должно превышать жесткий пределкаждая операционная система имеет различные жесткие ограничения установки в файле конфигурации. Например, предел жесткого открытия файла на Solaris может быть установлен при загрузке из /etc / system.
set rlim_fd_max = 166384 set rlim_fd_cur = 8192в OS X эти же данные должны быть установлены в /etc / sysctl.конф.
kern.maxfilesperproc=166384 kern.maxfiles=8192в Linux эти настройки часто находятся в в /etc/безопасности/ограничения.конф.
есть два вида лимитов:
- софт ограничения-это просто применяемые в настоящее время ограничения
- жесткий пределы отметьте максимальное значение, которое не может быть превышено путем установки мягкого предела
мягкие ограничения могут быть установлены любым пользователем, в то время как жесткие ограничения изменяются только root. Ограничения-это свойство процесса. Они наследуются, когда дочерний процесс создается так общесистемные ограничения должны быть установлены во время инициализации системы в сценариях init, а пользовательские ограничения должны быть установлены во время входа пользователя, например, с помощью pam_limits.
при загрузке машины часто устанавливаются значения по умолчанию. Таким образом, даже если вы можете сбросить ulimit в отдельной оболочке, вы можете обнаружить, что он сбрасывается обратно к предыдущему значению при перезагрузке. Если вы хотите изменить значение по умолчанию, вы можете использовать сценарии загрузки для команд existence ulimit.
если вы используете Linux, и вы получили ошибку разрешения, вам нужно будет поднять допустимый предел в
/etc/limits.confили/etc/security/limits.confфайл (расположение файла зависит от конкретного дистрибутива Linux).например, чтобы позволить кому-либо на машине увеличить количество открытых файлов до 10000 добавьте строку в .
* hard nofile 10000затем выход из системы и relogin к вашей системе, и вы должны быть в состоянии сделать:
ulimit -n 10000без разрешения ошибки.
1) добавьте следующую строку в
/etc/security/limits.confwebuser hard nofile 64000затем войдите в систему как пользователя
su - webuser2) отредактируйте следующие два файла для webuser
добавить .bashrc и и .файл под управлением
echo "ulimit -n 64000" >> .bashrc ; echo "ulimit -n 64000" >> .bash_profile3) выйдите из системы, затем войдите обратно и убедитесь, что изменения были сделаны правильно:
$ ulimit -a | grep open open files (-n) 64000вот это и их Бум, Бум-Бум.
Если некоторые из ваших сервисов отказываются от ulimits, иногда проще поместить соответствующие команды в init-скрипт службы. Например, когда Apache сообщает
[alert] (11)ресурс временно недоступен: apr_thread_create: не удается создать рабочий поток
попробуйте поставить
ulimit -s unlimitedна/etc/init.d/httpd. Это не требует перезагрузки сервера.
Comments