确定root用户的ulimit


8

我们相信我们已经增加了root用户的最大打开文件描述符。这是通过将以下行添加到/etc/security/limits.conf来完成的:

*         -    nofile            2048

我们认为已经确认增加了root用户的限制,因为我们可以告诉(此处未描述)我们的应用程序(solr-由root运行)已打开1098个文件。但是,我们无法确定root用户可以打开多少个文件。我们希望该命令能够正常工作,但似乎并非如此:

$ sudo -u root -s "ulimit -Sn"
1024

有任何想法吗?谢谢!


limits.conf中是否还有nofile的其他条目?也许它被覆盖了。如何解析limits.conf的错误。您可以附加整个文件吗?
安德鲁·凯斯

您正在运行selinux吗?ls -lZ /etc/security/limits.conf的输出是什么
Andrew Case

Answers:


6

获取solr正在运行的进程的PID,然后cat /proc/$SOLR_PID/limits-这将告诉您该进程的实际限制。

我建议以solr独立的非特权用户身份运行。这样做时,您有多个选项(limits.conf或将ulimit -n 2048init 添加到初始化脚本中,...)。最后一个不是很闪亮,但是可以用于快速设置和重新启动守护程序

兰特:不要告诉我您不能重启,因为您会失去服务。如果是这种情况,您仍然应该设置HA :)


5

更改中的打开文件数后/etc/security/limits.conf,用户必须注销并重新登录才能生效。因此,请尝试以下操作:

$ sudo su -
# ulimit -Sn

2

我知道这个问题有一个答案,但这看起来更像是一种解决方法,而不是真正的解决方案。

根据ubuntu的说法,这不是错误,而是文档问题,请参阅:https : //bugs.launchpad.net/ubuntu/+source/pam/+bug/65244

感谢您的举报。如您所说,这不是pam中的错误,而是文档问题。早在2000年8月30日就解决了允许显式允许用户root限制的事实,但是您需要显式命名用户root才能应用限制。

因此,如果要更改所有用户(包括根用户)的ulimit,则必须指定:

*         -    nofile            2048
root      -    nofile            2048
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.