如何在Ubuntu中增加Neo4j的最大文件打开限制(ulimit)?
目前ulimit -n
显示10000
。 我想把它增加到40000
。 我编辑了“/etc/sysctl.conf”并把fs.file-max=40000
。 我也编辑了/etc/security/limits.conf
并更新了硬和软的值。 但仍然显示10000
。 完成所有这些更改后,我重新启动笔记本电脑。 我有权访问root密码。
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
抛出最大打开的文件限制达到了错误。
我使用的是Debian,但是这个解决scheme在Ubuntu上应该可以正常工作。
您必须在neo4j-service脚本中添加一行。
这是我所做的:
nano /etc/init.d/neo4j-service
在do_start部分的start-stop-daemon行之前添加« ulimit -n 40000 »
请注意,我正在使用2.0版企业版。 希望这会帮助你。
你在做什么不会为root用户工作。 也许你正在运行你的服务作为根,因此你不会看到变化。
要增加root用户的ulimit,你应该用root来replace*
。 *
不适用于root用户。 rest和你一样。 我会在这里重新引用。
/etc/security/limits.conf
添加到文件中: /etc/security/limits.conf
root soft nofile 40000 root hard nofile 40000
然后在文件中添加以下行: /etc/pam.d/common-session
session required pam_limits.so
这将更新root用户的ulimit。 正如评论中所提到的,您甚至不必重新启动即可查看更改。
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
注销并重新login。
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会话,然后重新login。
我想为运行一个服务的特定用户设置限制,但似乎我正在为我login的用户设置限制。 下面是一个示例,显示如何根据经过身份validation的用户设置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.
您可以使用*
来指定所有用户的增加。 如果以我login的用户身份重新启动服务,并将ulimit -n
添加到init脚本中,则会看到初始login用户的限制已到位。 我没有机会validation在系统引导过程中使用哪个用户的限制,或者确定正在运行的服务(启动 – 停止后台进程)的实际nofile限制是什么。
目前有两种方法正在工作:
- 在start-stop-daemon之前,在init脚本中添加一个ulimit调整。
- 通配符或安全文件中更广泛的ulimit设置。
在运行neo4j
之前,你可以修改neo4j
的init脚本来做一个ulimit -n 40000
。
但是,我不禁感到你在吠叫错误的树。 neo4j
合法需要超过10,000个打开的文件描述符吗? 这听起来很像neo4j
一个错误,或者你使用它的方式。 我会尽力解决这个问题。
我有很多麻烦得到这个工作。
使用以下内容可以让您更新它,无论您的用户权限如何。
sudo sysctl -w fs.inotify.max_user_watches=100000
编辑
刚刚从另一个用户也看到了另一个stackexchange站点(这两个工作,但这个版本永久更新系统设置,而不是暂时):
echo fs.inotify.max_user_watches=100000 | sudo tee -a /etc/sysctl.conf; sudo sysctl -p
尝试运行这个命令,它会在/etc/security/limits.d
下创build一个*_limits.conf
文件
echo "* soft nofile 102400" > /etc/security/limits.d/*_limits.conf && echo "* hard nofile 102400" >> /etc/security/limits.d/*_limits.conf
只需退出terminal并再次login并通过ulimit -n
validationulimit -n
将为*用户设置
ULIMITconfiguration:
- 通过rootlogin
- vi security / limits.conf
-
在下面input
Ulimitconfiguration开始为网站用户
website soft nofile 8192 website hard nofile 8192 website soft nproc 4096 website hard nproc 8192 website soft core unlimited website hard core unlimited
-
修改文件后,用户需要注销并重新login才能看到新的值。
tl; dr设置软限制和硬限制
我确定它是按照预期工作的,但为了以防万一,我会在这里添加它。 为了完整起见,在这里设置限制(参见下面的语法):/etc/security/limits.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
会显示软限制(当然是硬限制)
我是这样做的
echo "NEO4J_ULIMIT_NOFILE=50000" >> neo4j mv neo4j /etc/default/