파이썬. 메모리가 부족한 경우

조회수 5699회

일정 시간 간격으로 웹에서 데이터를 긁어서 계속 저장하려고 합니다.
그런데, 여러 날 동안 계속 데이터를 수집해오다 보면, 파이썬상에서 오브젝트로 가지고 있는 경우 메모리가 부족하는 사태가 발생하지 않을까 싶은데요.

이런 경우, 긁어온 데이터를 메모리상에서 누적해서 저장하지 파일에 바로바로 추가해버리거나 하는 방법으로 메모리 부족을 피할 수 있는 방법이 있는지요.

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 모든 자원은 유한한데 메모리는 스토리지중에 비싼편이고 가격대비 용량도 적습니다. 또한 ram이라면 프로세스가 종료될 때 사라지는 휘발성의 구조입니다.

    당연히 별도의 스토리지 공간에 저장을 해야 합니다. 실제적으로 hdfs 등에 저장을 하고 hdfs에서 분석을 마친 데이터는 rdbms로 이동하는 형태로 합니다.

    • 일단 분석 자체는 제 컴퓨터에서 하려는데, 인터넷 연결이 불안해서 데이터 수집은 AWS로 여러 날 동안 돌려보려고 합니다. 그런데, AWS에서 저렴한 인스턴스를 선택하면 램이 부족해버리는 문제가 있어서.. 알 수 없는 사용자 2018.1.19 19:22
    • 데이터를 수집하면서 램에 데이터를 누적시켜 저장하지 않고, 데이터를 수집하는 즉시 csv 등의 파일에 바로바로 추가해버리는 방법은 없는지요 알 수 없는 사용자 2018.1.19 19:24
    • 그렇게 하면 됩니다만 성능이 느리겠죠. 디스크는 느립니다. aws면 EBS가 SSD일겁니다. 자료를 디스크에 저장하고 완료하면 s3에 올리는 방법도 있겠죠. 문제는 프리티어는 제한이 있고 cpu바운드가 큰 작업이 되면 어쩔 수 없이 비용은 들어갈겁니다. 물론 시간당 비용이 발생하는 ec2 말고 lambda 로 구성해서 요청당 과금처리로 하는 방법도 있겠구요. lambda 로 한다면 저비용으로 고성능의 장점을 이용할 수 있죠. 정영훈 2018.1.20 01:57

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)