Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[메모리 관련 문제] 크롤링 시 메모리 효율성 고민 #9

Open
JunYupK opened this issue Jan 10, 2025 · 0 comments
Open

Comments

@JunYupK
Copy link
Owner

JunYupK commented Jan 10, 2025

Crwal4AI를 이용한 크롤링 진행 중 현재 크롤링 방식은 우선

  1. 기사 목록에서 제목, 기사 URL을 추출 (N개의 URL 크롤링)
  2. N개의 URL을 반복문을 돌며 각 기사의 내용과 컨텐츠 추출(1개의 Crawler 객체)
  3. N개의 반복문 종료시 N개의 기사 데이터를 DB에 저장

이었습니다. 그런데 N이 100개 이상이 넘어가면 브라우저 창이 100개가 열리기 때문에 해당 컴퓨터의 메모리 문제가 발생하여, 컴퓨터가 멈추는 문제가 발생하였습니다.

그래서 2번 방식을 매번 Crawler 객체를 생성하고, 1개의 기사를 수집하고 브라우저 창을 종료하는 방법으로 전환하였습니다.
해당방식으로 전환하여, 브라우저 창 중첩현상은 발생안하였으나, 크롤링 속도가 떨어지고 python에서의 GC문제와 메모리 문제가 걱정되어 이에 대한 효율성을 탐색 중 BATCH 사이즈를 정하여 일정 갯수의 브라우저 창이 열리면, 해당 크롤러 객체를 종료하고 새 객체를 생성하는 방법을 설정하였습니다.

이에 대한 자세한 탐구가 필요합니다. 더 개선할 수 있는 방향은

  1. 단순 브라우저 창 갯수가 아닌 메모리 사용량을 측정하여 일정 메모리 사용량이 넘으면 브라우저 창 종료

이러한 점들을 모니터링 하기 위해서는 다음과 같은 요소들을 지속적으로 추적해야합니다.

  • 서버 메모리 사용량
  • GC(가비지 컬렉터)
  • 크롤링 시간(1개 단위)
    입니다.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant