79

目前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抛出最大打开文件限制达到错误。

4

10 回答 10

83

您正在做的事情不适用于 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。如评论中所述,您甚至不必重新启动即可看到更改。

于 2014-06-21T08:32:33.087 回答
63

1) 检查 sysctlfile-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

于 2014-07-17T06:37:39.070 回答
8

我正在使用 Debian,但这个解决方案应该适用于 Ubuntu。
您必须在neo4j-service脚本中添加一行。
这是我所做的:

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

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

于 2014-02-03T19:31:27.453 回答
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.

您可以使用 an*来指定所有用户的增加。如果我以我登录的用户身份重新启动服务,并添加ulimit -n到初始化脚本,我会看到初始登录用户的限制已经到位。我没有机会验证在系统引导期间使用了哪些用户的限制,或者确定我正在运行的服务的实际 nofile 限制是多少(以 start-stop-daemon 启动)。

目前有两种方法有效:

  1. 在 start-stop-daemon 之前向 init 脚本添加 ulimit 调整。
  2. 安全文件中的通配符或更广泛的 ulimit 设置。
于 2014-10-03T09:03:14.820 回答
2

您可以更改 init 脚本neo4julimit -n 40000在运行之前执行neo4j.

然而,我不禁觉得你在找错树。是否neo4j合法需要超过 10,000 个打开的文件描述符?这听起来很像一个错误neo4j或您使用它的方式。我会尝试解决这个问题。

于 2014-02-02T23:31:08.173 回答
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
于 2015-07-10T15:41:41.387 回答
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它将设置为 * 用户进行验证

于 2015-07-29T07:36:17.703 回答
2

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将显示软限制(当然是硬限制)

于 2015-09-12T00:51:23.020 回答
2

我是这样做的

echo "NEO4J_ULIMIT_NOFILE=50000" >> neo4j
mv neo4j /etc/default/
于 2016-07-23T14:35:20.593 回答
1

极限配置:

  1. 以root登录
  2. vi 安全/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. 修改文件后,用户需要注销并再次登录才能看到新值。

于 2015-09-09T07:00:51.237 回答