2011-11-09 18 views
5

Estaba usando un servidor basado en cherrypy en AWS para manejar algunas llamadas de REST API. Pero al implementar el servidor y con un poco de tráfico serio (alrededor de 200,000 solicitudes en 8 horas) el servidor terminó. El registro de errores muestra solo un tipo de error.Servidor de Cherrypy llegando a demasiadas solicitudes

ENGINE Error in HTTPServer.tick 
Traceback (most recent call last): 
    File "/usr/local/lib/python2.7/dist-packages/CherryPy-3.2.2-py2.7.egg/cherrypy/wsgiserver/wsgiserver2.py", line 1837, in start 
    File "/usr/local/lib/python2.7/dist-packages/CherryPy-3.2.2-py2.7.egg/cherrypy/wsgiserver/wsgiserver2.py", line 1887, in tick 
    File "/usr/lib/python2.7/socket.py", line 202, in accept 
error: [Errno 24] Too many open files 

¿Esto es porque cherrypy no puede escalar si hay demasiadas solicitudes, o hay algo mal en el código?

+0

Puede ser ambos. ¿Qué hace tu código? ¿Cierra manualmente todos los objetos de archivo abiertos o confía en la recolección de basura de Pythons? – Fabian

+0

Confiamos en python. – Codevalley

Respuesta

2

Parece que acumuló más conexiones de las que el sistema operativo estaba configurado para permitir. Intente verificar ulimit -n y aumentarlo si puede.