2012-11-22 5 views
7

치료로 인해 느린 크롤링 속도가 발생합니다 (약 1 페이지/초). aws 서버에서 주요 웹 사이트를 크롤링하므로 네트워크 문제가 아닌 것 같습니다. Cpu 사용률은 100에 가까우므로 여러 개의 치료 프로세스를 시작하면 크롤링 속도가 훨씬 빨라집니다.치료 크롤링 속도가 느림 (60 페이지/분)

치료법은 여러 페이지를 크롤링 한 다음 몇 초 동안 중단 한 다음 반복합니다.

내가 가지고 노는 시도했다 : CONCURRENT_REQUESTS = CONCURRENT_REQUESTS_PER_DOMAIN = 500

하지만이 정말 과거 바늘을 이동하지 않는 것 약 20

+0

어떤 치료 버전입니까? 기본이 아닌 확장 영역/미들웨어? 일시 중지가 일부 차단 코드 일 수 있습니다. 처리를 차단하는 원자로 스레드에서 무언가를 수행 할 수 있습니까 (예 : DB에 데이터 쓰기, s3에 업로드 등)? –

+0

@somewire check CPU | HDD | lxml로 페이지를 분석하지 않고 폐기만으로 네트워크 사용률. 'LOG_LEVEL = 'DEBUG''을 설정하십시오 – nk9

답변

2

당신은 반드시 대상을 크롤링 할 수 있습니다 있습니까 고속으로 사이트? 많은 사이트에서 다운로드 임계 값을 구현하고 "잠시 후"느리게 응답하기 시작합니다.

+0

요청이 503을 리턴하고 프론트 엔드 서버가 nginx 인 경우 당신이 옳습니다. http://nginx.org/en/docs/http/ngx_http_limit_conn_module.html – nk9