Вы используете старую версию PDF ifilter (и инструкции...) Попытка, получая PDF iFilter 9 для 64-разрядных платформ и следуете инструкциям внизу страницы для установки его в SharePoint.
$ echo "* hard nofile 102400" >> /etc/security/limits.conf
$ echo "* soft nofile 102400" >> /etc/security/limits.conf
$ sysctl -w fs.file-max=102400
$ sysctl -p
Эти 4 шага могут немедленно изменить ограничения вашей системы и могут работать после перезагрузки. Вы можете изменить число "102400" на максимальное количество открытых файлов в вашей системе Linux, как хотите. и
$ sysctl -p
для загрузки настроек sysctl из указанного файла или /etc/sysctl.conf, если не указан.
Мое решение просто делало это в нашем рецепте шеф-повара:
# Ensure ulimits are properly set for the initscript
bash "Set Ulimits" do
user "root"
code <<-EOH
echo -e "n#Setting ulimits. Performed by chef recipe MYSQLULIMIT\nulimit -l" >> /etc/sysconfig/init
EOH
not_if "grep MYSQLULIMIT /etc/sysconfig/init"
end
Это приводит к установке ulimit -l
для всех сценариев инициализации, что может быть нежелательно в некоторых средах , но мне подходит.
В идеальном мире я бы обновил RPM, включив в него / etc / sysconfig / mysqld
, и поместил бы туда ту же команду ulimit -l.
На самом деле я написал личную поварскую книгу, которая используется для установки ulimit для нас, и она работает очень хорошо. Мы обнаружили, что для ubuntu следующий трюк необходим, если вы хотите установить глобальный ulimit:
Добавьте следующее в свой common-session:
session required pam_limits.so
и в limit.conf у вас должно быть следующее:
* soft nofile 64000
* hard nofile 65000
root soft nofile 64000
root hard nofile 65000
Корневая часть важно, поскольку кажется, что без этого некоторые сценарии инициализации не будут работать правильно. Итак, у нас есть кулинарная книга для шеф-повара, которая настраивает следующее, и она отлично работает.
Другой вариант, который мы использовали для Tomcat, - это развернуть Tomcat, а затем перезаписать сценарий инициализации пользовательским, для которого мы бы установили ulimit и перезапустили tomcat. Это отлично работает, но немного сложнее, чем первое.
Надеюсь, это поможет,
/etc/sysctl.conf должен иметь возможность устанавливать элементы ulimits. Мне не удалось это хорошо протестировать, но в опросе говорится, что вы сможете остановиться после того, как он будет установлен в sysctl.conf.
Я нашел различные темы, которые показывают, что это все еще проблема, и мы с моей командой обсудили Некоторые варианты решения этой проблемы мы нашли два возможных решения.
Вариант 1: Большинство сценариев инициализации rhel исходят из /etc/init.d/functions, вы можете изменить там настройки ulimit
Вариант 2: init утверждает, что / etc / initscript создается каждый раз до того, как init порождает все, что видит: http://linux.die.net/man/5/initscript . Интересно, что они говорят, что здесь люди могут установить ulimit =)
Автономный фрагмент рецепта, основанный на этом URL:
http://pro.benjaminste.in/post/318453669/increase-the-number-of-file-descriptors-on-centos-
Фрагмент рецепта:
ruby_block "edit /etc/sysctl.conf" do
_file = "/etc/sysctl.conf"
_comment = "# TWEAK BY CHEF"
_content = "fs.file-max = 512000"
block do
file = Chef::Util::FileEdit.new(_file)
file.insert_line_if_no_match(/#{Regexp.escape(_comment)}/, "#{_comment}\n#{_content}")
file.write_file
end
not_if "cat #{_file} | grep '#{_comment}'"
notifies :run, "execute[sysctl -p]", :immediately
end
execute "sysctl -p" do
command "sysctl -p"
returns 255 # which would normally signify error, but doesn't on sysctl on CentOS
action :nothing
end
ruby_block "edit /etc/security/limits.conf" do
_file = "/etc/security/limits.conf"
_comment = "# TWEAK BY CHEF"
_content = "* - nofile 65535"
block do
file = Chef::Util::FileEdit.new(_file)
file.insert_line_if_no_match(/#{Regexp.escape(_comment)}/, "#{_comment}\n#{_content}")
file.write_file
end
not_if "cat #{_file} | grep '#{_comment}'"
end
Не уверен, насколько это зависит от дистрибутива, но я только что увеличил лимит безопасности, используя /etc/security/limits.d/20-somefile.conf
в Ubuntu.
Вместо того, чтобы изменять существующий файл, у меня есть шаблон ERB в моей кулинарной книге, я устанавливаю атрибуты по умолчанию в файле атрибутов, а затем мне не нужно беспокоиться об использовании рубиновых блоков с «insert_line_if_no_match» - это кажется немного более запутанным, а рецепт более читабельным:
execute "activate_sysctl" do
user "root"
command "sysctl -p /etc/sysctl.d/10-filemax.conf"
action :nothing
end
template "/etc/sysctl.d/10-filemax.conf" do
source "system/filemax.conf"
action :create
notifies :run, "execute[activate_sysctl]", :immediately
end
а затем это мой файл шаблона:
fs.filemax = <%= node[:mycookbook][:system_fs_filemax] %>
согласно man page ulimit устарел. Вы должны использовать сетримит. Проблема в том, что это системный вызов, а не команда bash.
У меня была проблема с супервизором, и вот что я выяснил. Если процесс не имеет конфигурационного файла, позволяющего сделать вызов setrlimit() системного вызова. Установите его с помощью ulimit в его скрипте /etc/init.d bash. Это служебный скрипт, который запускает ваш процесс.
Если у процесса есть конфигурационный файл, например, супервизор d, то вы можете использовать этот конфигурационный файл, чтобы установить количество файлов и заставить процесс сделать вызов непосредственно setrlimits().
супервизор: http://supervisord.org/configuration.html#supervisord-section-settings
Способ RedHat, как описано в статье 253043 (требуется подписка) заключается в добавлении соответствующих операторов ulimit в / etc / sysconfig / <имя службы>
. Например:
# echo "ulimit -SHn 10240 # nfile" >> /etc/sysconfig/myServiceName
(Используйте существующий файл для вашей службы вместо myServiceName.)
Для демонов, которые запускаются без использования сценария RedHat «sysconfig», вам необходимо добавить соответствующие строки ulimit в сценарий запуска демона.