Eu acho que meu problema era / está em outro lugar e está relacionado com processos php que permanecem vivos. Eu consertei de alguma forma por não deixá-los permanecerem vivos para sempre.
No php-fpm.conf eu tenho:
rlimit_files = 8192
Meu servidor é um 1G SmartMachine da Joyent, o que significa que é um Solaris com 1GB de memória.
Meu problema é que, com carga alta, recebo erros como este:
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]
Meus arquivos rlimit_files são muito baixos e, em caso afirmativo, quão alto devo configurá-lo?
Tem certeza de que está funcionando? Você pode usar "pfiles" no ID do processo para ver o que ele realmente abriu. Você também pode executar "prctl" no ID do processo e procurar o valor "process.max-file-descriptor". Haverá um valor básico, privilegiado e do sistema listado. O limite no processo é o menor deles. Poderia ser um bug de vazamento de descritor de arquivo no aplicativo se ele realmente tiver muitos abertos.
Há outro limite no número de arquivos abertos que podem ser impostos pelo próprio Solaris. Por exemplo, há um artigo sobre como contornar a limitação de 256 descritores de arquivos em binários de 32 bits no Solaris .
Tente descobrir se o seu binário do php é de 32 ou 64 bits.