我们相信我们增加了root用户的最大打开文件描述符。 这是通过将此行添加到/etc/security/limits.conf中完成的:
* - nofile 2048
我们认为我们已经证实root用户的限制增加了,因为我们可以告诉(这里没有描述)我们的应用程序(solr – 它是由root运行的)已经打开了1098个文件。 但是,我们无法确定允许root用户有多less个打开的文件。 我们希望这个命令能够工作,但似乎并不是这样:
$ sudo -u root -s "ulimit -Sn" 1024
有任何想法吗? 谢谢!
获取solr正在运行的进程的PID,然后cat /proc/$SOLR_PID/limits – 这将告诉你进程的实际限制。
我build议像solr那样运行一个独立的非特权用户。 当你这样做时,你有多个选项( limits.conf或者在init脚本中添加一个ulimit -n 2048 ,…)。 最后一个不是那么有光泽,但适用于快速设置和重新启动守护进程
RANT:不要告诉我你不能重新启动因为你会失去服务。 如果是这种情况,你应该有一个HA设置:)
在更改/etc/security/limits.conf的打开文件数后,用户必须注销并重新login才能生效。 所以,试试这个:
$ sudo su - # ulimit -Sn
我知道这个问题有一个答案,但是这看起来更像是一个工作,而不是一个真正的解决scheme。
根据Ubuntu的这不是一个错误,而是一个文档问题,请参阅: https : //bugs.launchpad.net/ubuntu/+source/pam/+bug/65244
感谢您的报告。 正如你所说,这不是在帕姆的错误,而是一个文档问题。 显式允许用户root限制的事实前一段时间(2000年8月30日)已被解决,但您需要明确指定用户root来应用限制。
所以如果你想改变所有用户的ulimit,包括root用户,你必须指定:
* - nofile 2048 root - nofile 2048