¿Cómo puedo mejorar la velocidad de descarga de scrapy?

Estoy usando scrapy para descargar páginas de muchos dominios diferentes en paralelo. Tengo cientos de miles de páginas para descargar, por lo que el rendimiento es importante.

Desafortunadamente, como he perfilado la velocidad de scrapy, solo recibo un par de páginas por segundo. Realmente, alrededor de 2 páginas por segundo en promedio. Anteriormente, he escrito mis propias arañas multiproceso para hacer cientos de páginas por segundo. Pensé que, con seguridad, el uso de retorcido de tartas, etc. sería capaz de hacer magia similar.

¿Cómo apuro la chatarra? Realmente me gusta el marco, pero este problema de rendimiento podría ser un factor decisivo para mí.

Aquí está la parte relevante del archivo settings.py. ¿Hay algún ajuste importante que me haya perdido?

LOG_ENABLED = False
CONCURRENT_REQUESTS = 100
CONCURRENT_REQUESTS_PER_IP = 8

Algunos parámetros:

Usando la versión scrapy 0.14El proyecto se implementa en una instancia grande de EC2, por lo que debería haber mucha memoria, CPU y ancho de banda para jugar.Estoy programando rastreos utilizando el protocolo JSON, manteniendo el rastreador rellenado con unas docenas de rastreos simultáneos en un momento dado.Como dije al principio, estoy descargando páginas de muchos sitios, por lo que el rendimiento del servidor remoto y CONCURRENT_REQUESTS_PER_IP no deberían ser una preocupación.Por el momento, estoy haciendo muy poco post-procesamiento. No xpath; no regex Solo estoy guardando la url y algunas estadísticas básicas para cada página. (Esto cambiará más adelante, una vez que haya resuelto los problemas de rendimiento básicos).

Respuestas a la pregunta(1)

Su respuesta a la pregunta