Как увеличить максимальный лимит открытия файлов Neo4j (ulimit) в Ubuntu?
в настоящее время ulimit -n
показывает 10000
. Я хочу увеличить его до 40000
. Я редактировал " / etc / sysctl.конф" и поставил fs.file-max=40000
. Я также редактировал /etc/security/limits.conf
и обновленные жесткие и мягкие значения. Но все же ограничение показывает 10000
. После внесения всех этих изменений я перезагрузил свой ноутбук. У меня есть доступ к корневому паролю.
usr_name@usr_name-lap:/etc$ /sbin/sysctl fs.file-max
fs.file-max = 500000
добавлены следующие строки в /etc/security/limits.conf
-
* soft nofile 40000
* hard nofile 40000
Я также добавил следующую строку в /etc/pam.d/su
-
session required pam_limits.so
Я перепробовал все возможные путь, как указано на других форумах, но я могу достичь максимального предела 10000
не за что. В чем может быть проблема?
я делаю это изменение, потому что neo4j
выдает максимальное количество открытых пределов файлов, достигших ошибки.
10 ответов:
Я использую Debian, но это решение должно работать с Ubuntu.
Вы должны добавить строку в neo4j-service сценарий.
Вот что я сделал :nano / etc / init.d / neo4j-service
добавить " ulimit-n 40000 " перед start-stop-daemon line на раздел do_startобратите внимание, что я использую версию 2.0 Enterprise edition. Надеюсь, что это будет помочь тебе.
что вы делаете, не будет работать для пользователя root. Возможно, вы используете свои службы как root, и поэтому вы не видите изменения.
увеличить ulimit для пользователя root, вы должны заменить
*
по корень.*
не применяется для пользователя root. Отдых такой же, как и у вас. Я перефразирую его здесь.добавьте в файл следующие строки:
/etc/security/limits.conf
root soft nofile 40000 root hard nofile 40000
а затем добавить следующую строку в файл:
/etc/pam.d/common-session
session required pam_limits.so
это обновит ulimit для пользователя root. Как уже упоминалось в комментариях, вам может даже не нужно перезагружаться, чтобы увидеть изменения.
1) Проверьте sysctl
file-max
ограничения:$ cat /proc/sys/fs/file-max
если ограничение ниже желаемого значения, откройте
sysctl.conf
и добавьте эту строку в конце файла:fs.file-max = 65536
и, наконец, применить
sysctl
ограничения:$ sysctl -p
2) редактировать
/etc/security/limits.conf
и добавить ниже указанной* soft nproc 65535 * hard nproc 65535 * soft nofile 65535 * hard nofile 65535
эти ограничения не будут применяться для
root
пользователь, если вы хотите изменитьroot
ограничения вы должны сделать это явно:root soft nofile 65535 root hard nofile 65535 ...
3) перезагрузка система или добавить следующую строку в конец
/etc/pam.d/common-session
:session required pam_limits.so
выйти из системы и войти снова.
4) Проверьте мягкие пределы:
$ ulimit -a
и жесткие ограничения:
$ ulimit -Ha .... open files (-n) 65535
ссылка : http://ithubinfo.blogspot.in/2013/07/how-to-increase-ulimit-open-file-and.html
у меня была та же проблема, и я получил его на работу, добавив записи в
/etc/security/limits.d/90-somefile.conf
. Обратите внимание, что для того, чтобы увидеть, что ограничения работают, мне пришлось полностью выйти из сеанса ssh, а затем снова войти в систему.Я хотел установить ограничение для конкретного пользователя, который запускает службу, но, похоже, я получал ограничение, которое было установлено для пользователя, в который я входил. Вот пример, чтобы показать, как ulimit устанавливается на основе аутентифицированного пользователя, а не эффективного пользователь:
$ sudo cat /etc/security/limits.d/90-nofiles.conf loginuser soft nofile 10240 loginuser hard nofile 10240 root soft nofile 10241 root hard nofile 10241 serviceuser soft nofile 10242 serviceuser hard nofile 10242 $ whoami loginuser $ ulimit -n 10240 $ sudo -i # ulimit -n 10240 # loginuser's limit # su - serviceuser $ ulimit -n 10240 # still loginuser's limit.
можно использовать
*
чтобы указать увеличение для всех пользователей. Если я перезапущу службу как пользователь, в который я вошел, и добавлюulimit -n
для сценария инициализации я вижу, что ограничения начального пользователя входа в систему установлены. У меня не было возможности проверить, какие ограничения пользователя используются во время загрузки системы или определения того, что фактическое ограничение nofile является службой, которую я запускаю (которая запускается с помощью start-stop-daemon).есть 2 подхода, которые работают на данный момент:
- добавьте настройку ulimit в сценарий инициализации, непосредственно перед запуском-остановкой-демоном.
- подстановочный знак или более обширные настройки ulimit в файле безопасности.
вы можете изменить сценарий инициализации для
neo4j
сделатьulimit -n 40000
передneo4j
.однако, я не могу не чувствовать, что вы лаете не на то дерево. Делает
neo4j
законно нужно более 10 000 открытых файловых дескрипторов? Это звучит очень похоже на ошибку вneo4j
или то, как вы его используете. Я бы попытался решить эту проблему.
у меня много проблем с получением этой работы.
используя следующее, Вы можете обновить его независимо от вашего разрешения пользователя.
sudo sysctl -w fs.inotify.max_user_watches=100000
Edit
просто видел это от другого пользователя также на другом сайте stackexchange (оба работают, но эта версия постоянно обновления настройки системы, а не временно):
echo fs.inotify.max_user_watches=100000 | sudo tee -a /etc/sysctl.conf; sudo sysctl -p
попробуйте запустить эту команду, она создаст под
/etc/security/limits.d
echo "* soft nofile 102400" > /etc/security/limits.d/*_limits.conf && echo "* hard nofile 102400" >> /etc/security/limits.d/*_limits.conf
просто выйдите из терминала и войдите снова и проверьте с помощью
ulimit -n
он будет установлен для * пользователей
tl; dr устанавливает как мягкие, так и жесткие пределы
Я уверен, что это работает, как задумано, но я добавлю его здесь на всякий случай. Для полноты предел установлен здесь (см. ниже синтаксис): в /etc/безопасности/ограничения.conf
some_user soft nofile 60000 some_user hard nofile 60000
и активируется следующим образом в /etc / pam.d / common-session:
session required pam_limits.so
если вы устанавливаете только жесткий предел,
ulimit -a
покажет значение по умолчанию (1024): Если вы установите только мягкий предел ulimit-a покажет (4096)если вы устанавливаете их обоих
ulimit -a
покажет мягкий предел (до жесткого предела, конечно)
конфигурация ULIMIT:
- вход через root
- vi безопасность / ограничения.conf
сделать ниже запись
запуск конфигурации Ulimit для сайт пользователей
website soft nofile 8192 website hard nofile 8192 website soft nproc 4096 website hard nproc 8192 website soft core unlimited website hard core unlimited
сделать ниже запись для всех пользователей
конфигурация Ulimit для каждого пользователя
* soft nofile 8192 * hard nofile 8192 * soft nproc 4096 * hard nproc 8192 * soft core unlimited * hard core unlimited
после изменения файла, пользователь должен выйти из системы и войти снова, чтобы увидеть новый ценности.