目前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
会导致达到最大打开文件限制错误。
答案 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种方法正在运作:
答案 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配置:
在下方输入
website soft nofile 8192
website hard nofile 8192
website soft nproc 4096
website hard nproc 8192
website soft core unlimited
website hard core unlimited
为所有用户设置以下条目
* soft nofile 8192
* hard nofile 8192
* soft nproc 4096
* hard nproc 8192
* soft core unlimited
* hard core unlimited
修改文件后,用户需要注销并再次登录才能看到新值。