太多打开的文件

在php-fpm.conf中我有:

rlimit_files = 8192 

我的服务器是来自Joyent的1G SmartMachine,这意味着它是一个具有1GB内存的Solaris。

我的问题是,在高负载我得到像这样的错误:

 Warning (2): touch() [function.touch]: Unable to create file app/tmp/cache/persistent/cake_core_users_da because Too many open files in [cake/libs/file.php, line 125] 

我的rlimit_files太低了,如果有的话,我应该设置多高?

你确定它实际上工作吗? 您可以在进程ID上使用“pfiles”来查看实际打开的内容。 您也可以在进程ID上运行“prctl”并查找“process.max-file-descriptor”值。 将会列出一个基本的,特权的和系统的价值。 这个过程的限制是最低的。 它可能是一个文件描述符漏洞的应用程序,如果它真的有很多打开。

Solaris本身可能强加的打开文件的数量有另一个限制。 例如,有一篇关于解决Solaris上的32位二进制文​​件中的256个文件描述符限制的文章 。

试着弄清楚你的php二进制文件是32位还是64位。

我认为我的问题是/其他地方,并与PHP进程活着有关。 我以某种方式固定它,不让它们永远活着。