如何在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限制是什么。

目前有两种方法正在工作:

  1. 在start-stop-daemon之前,在init脚本中添加一个ulimit调整。
  2. 通配符或安全文件中更广泛的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 -nvalidationulimit -n将为*用户设置

ULIMITconfiguration:

  1. 通过rootlogin
  2. vi security / limits.conf
  3. 在下面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 
  4. 修改文件后,用户需要注销并重新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/