如何在Ubuntu中增加Neo4j的最大文件打开限制(ulimit)?

时间:2014-02-02 19:58:01

标签: linux ubuntu neo4j limit ulimit

目前ulimit -n显示10000。我想将其增加到40000。我编辑了“/etc/sysctl.conf”并放了fs.file-max=40000。我还编辑了/etc/security/limits.conf并更新了硬和软值。但仍然是ulimit显示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会导致达到最大打开文件限制错误。

10 个答案:

答案 0 :(得分:82)

您正在做的事情对root用户不起作用。也许你是以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

这将更新root用户的ulimit。正如评论中所提到的,您甚至可能无需重新启动即可查看更改。

答案 1 :(得分:63)

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

答案 2 :(得分:8)

我使用的是Debian,但这个解决方案应该可以和Ubuntu一起使用 您必须在 neo4j-service 脚本中添加一行 这就是我所做的:

  

nano /etc/init.d/neo4j-service
start-stop-daemon之前添加« ulimit -n 40000 » do_start部分 中的行

请注意,我使用的是2.0版企业版。 希望这会对你有所帮助。

答案 3 :(得分:3)

我遇到了同样的问题,并通过向/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添加到init脚本,我会看到初始登录用户的限制已经到位。我没有机会验证在系统引导期间使用了哪些用户限制,或者确定了我正在运行的服务的实际nofile限制(使用start-stop-daemon启动)。

目前有2种方法正在运作:

  1. 在start-stop-daemon之前的init脚本中添加ulimit调整。
  2. 安全文件中的通配符或更广泛的ulimit设置。

答案 4 :(得分:2)

在运行neo4j之前,您可以更改ulimit -n 40000的初始化脚本以执行neo4j

然而,我忍不住觉得你正在咆哮错误的树。 neo4j合法地需要超过10,000个打开文件描述符吗?这听起来非常像neo4j中的错误或您使用它的方式。我会尝试解决这个问题。

答案 5 :(得分:2)

我很难解决这个问题。

使用以下功能,无论您的用户权限如何,都可以更新它。

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

答案 6 :(得分:2)

尝试运行此命令,它将在*_limits.conf

下创建一个/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进行验证即可为* users

设置

答案 7 :(得分:2)

tl; dr设置软限制和硬限制

我确定它按预期工作但我会在这里添加以防万一。 为了完整性,在此处设置限制(请参阅下面的语法): 在/etc/security/limits.conf

<img src="“images/nicole.pngâ€""> 

并在/etc/pam.d/common-session中激活以下内容:

some_user       soft    nofile          60000
some_user       hard    nofile          60000

如果您只设置了硬限制,session required pam_limits.so 将显示默认值(1024): 如果你只设置软限制ulimit -a将显示(4096)

如果你设置它们ulimit -a将显示软限制(当然是硬限制)

答案 8 :(得分:2)

我这样做了

echo "NEO4J_ULIMIT_NOFILE=50000" >> neo4j
mv neo4j /etc/default/

答案 9 :(得分:1)

ULIMIT配置:

  1. 以root身份登录
  2. vi security / limits.conf
  3. 在下方输入

    网站用户

    的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
    
  4. 为所有用户设置以下条目

    每个用户的Ulimit配置

    *   soft   nofile    8192
    *   hard   nofile    8192
    *   soft   nproc    4096
    *   hard   nproc    8192
    *   soft   core    unlimited
    *   hard   core    unlimited
    
  5. 修改文件后,用户需要注销并再次登录才能看到新值。