增加最大打开文件无效

时间:2016-10-12 21:10:10

标签: php linux centos

对于一个小型学校项目,我正在一个可以监控某些游戏服务器的网站上工作。我通过github项目GameQ收到服务器的信息,该项目使用由Autoloader php脚本加载的单独的类文件。现在我有一个大约10.000服务器ips的列表,我试图用GameQ监视,但是当我尝试运行脚本时它给了我以下错误:

警告:require(/httpdocs/game/src/GameQ/Exception/Query.php):无法打开流:第58行/httpdocs/game/src/GameQ/Autoloader.php中打开的文件太多

我已经尝试过1000个ip地址,这个工作正常。但是当我将列表增加到1500时,它会给我错误。似乎某个地方的限制被设置为1024,但无论我尝试过什么,我似乎无法找到哪里。

以下列出了我已经尝试将限制增加到200000的事项:

  • sysctl -w fs.file-max = 200000并将此行添加到/etc/sysctl.conf
  • 将此添加到文件/etc/security/limits.conf中:

    root soft nofile 200000
    root hard nofile 200000
    
  • 会话需要pam_limits.so 添加到/etc/pam.d/login

  • ulimit -n 200000 添加到/ etc / sysconfig / httpd

由于我没有更多的选项可以在网上找到,在这里堆栈溢出我变得非常绝望,我将如何解决这个问题,所以我希望有人知道如何解决这个问题或者知道我做错了什么这里。我的服务器在CentOS 7上运行,我使用Plesk进行网站管理。

2 个答案:

答案 0 :(得分:0)

可能是您的进程未以root用户身份运行。如果是这种情况,那么您在limits.conf中设置的限制将需要更改域。

您还可以像这样确认您的流程限制:

检查实际的过程限制:

yytext()

然后

# ps -u <userid running your code>
...

答案 1 :(得分:0)

可能与用户ID相关联-意味着您应该将相关的应用程序ID而不是root放入limits.conf。

就我而言,我在/etc/security/limits.conf中又添加了两行,如下所示。

* hard nofile 500000
* soft nofile 500000

更多帮助,请参阅http://qsok.com/x/LIAV