如何在PHP中查看最大打开文件数?

3
使用PHP时,我遇到了“failed to open stream: Too many open files”错误,无论是通过wp-cli还是fpm-php。
我已经调整了像fpm的rlimit和ulimit这样的东西,但现在如果我可以看到脚本可以打开的最大文件数就太好了,而不必运行(缓慢的)代码。
我该如何从PHP本身看到我可以打开的文件数量?
我知道我可以查看配置文件,但我想看到当前脚本可用的实际数字,以便我可以调整配置文件并查看哪个更改实际上是有意义的。
不幸的是,phpinfo()不显示此数字。
如果有一个显示此数字的shell命令,当然就足够好了,因为我可以执行它。

在/etc/security/limits.conf文件中:不确定 - undefined
在Debian服务器上,您也可以前往以下目录:/etc/php/php7.xx/fpm/pool.d/www.conf找到"rlimit_files",然后重新启动服务器。 - undefined
1
PHP脚本的最大可用文件描述符似乎接近于posix_getrlimit()['soft_openfiles'](对于Linux或POSIX系统而言),尽管减去了一个小但是变动的文件描述符数量(根据环境而异,可能是由于PHP或父进程内部打开的文件?)。在脚本中,您可以通过使用count(get_resources('stream'))的结果来获取正在使用的文件描述符数量。 - undefined
更正我的上一条评论:'soft_openfiles' 中的下划线需要改成空格。 - undefined
请参考https://www.php.net/manual/en/install.fpm.configuration.php中的`rlimit_files`。 还可以参考https://forum.hestiacp.com/t/too-many-open-files-despite-config-adjustments/8858/44?u=xeruf。 - undefined
1个回答

1

在php中,在执行之前,试试这个

exec('ulimit -S -n 2048');

1
这很有用,但它没有显示给我最大打开文件数。为了避免在每个脚本中添加额外的exec,我必须找出要更改的配置文件以达到所需的效果。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接