Si Tomcat os devuelve un error HTTP 500 y en el 'catalina.out' encontráis algo de este tipo
[] org.apache.tomcat.util.net.JIoEndpoint$Acceptor run SEVERE: Socket accept failed
java.net.SocketException: Too many open files
java.net.SocketException: Too many open files
es que tenéis un problema de ficheros abiertos; con
> ulimit -a
puedes ver tu configuración actual; repasa la variable "open files" que te da cuántos ficheros abiertos puede haber por proceso. Puedes modificarla con
> ulimit -n #
donde # es el nuevo valor; prueba con 4096 y reinicia el tomcat para que coja el cambio de esta variable de sistema
Para controlar cuántos ficheros tiene un proceso abierto, lo puedes hacer con
> lsof -l | grep tomcat
Este tipo de fallo es aplicable a cualquier otra aplicación, no sólo a tomcat; también PHP requiere abrir muchos ficheros y puede arrojar un error similar. Tenlo en cuenta cuando una aplicación se pare de repente después de rato funcionando bien.
Gracias!