본문 바로가기
728x90

MMAP2

[PYTHON] 대용량 로그 파일 처리 속도를 10배 높이는 mmap 활용 방법과 해결 전략 서버를 운영하다 보면 수십 기가바이트(GB)에 달하는 대용량 로그 파일을 분석해야 하는 상황이 발생합니다. 일반적인 open().read() 방식은 메모리 부족(OOM)을 유발하고, readline() 방식은 반복적인 I/O 호출로 인해 속도가 매우 느려집니다. 이러한 성능 병목을 해결하기 위한 가장 강력한 도구가 바로 mmap(Memory-mapped file)입니다. 본 포스팅에서는 파이썬의 mmap 모듈을 사용하여 대용량 파일을 메모리에 매핑하고, OS 레벨의 가상 메모리 관리 기법을 활용하여 처리 효율을 극대화하는 3가지 실전 전략을 심층적으로 다룹니다.1. 일반 I/O와 mmap의 근본적인 차이일반적인 파일 읽기는 커널 공간의 데이터를 사용자 공간의 버퍼로 복사하는 과정이 필요합니다. 반면, m.. 2026. 3. 27.
[PYTHON] 기가바이트급 대용량 데이터 처리 해결 : mmap 활용 방법과 일반 I/O의 3가지 차이 데이터 사이언스와 백엔드 엔지니어링 분야에서 기가바이트(GB) 혹은 테라바이트(TB) 단위의 파일을 다루는 것은 일상적인 과제가 되었습니다. 하지만 파이썬의 일반적인 read()나 readlines() 방식을 사용하여 큰 데이터를 메모리에 올리려 하면 곧바로 MemoryError를 마주하게 됩니다. 이를 우아하게 극복할 수 있는 치밀한 방법이 바로 메모리 맵 파일(Memory-mapped File, mmap)입니다. 본 글에서는 OS 레벨의 메모리 관리 기법을 파이썬에 녹여내어 성능을 극대화하는 전략을 분석합니다.1. mmap이란 무엇인가? (개념과 원리)mmap은 디스크에 있는 파일의 내용을 프로세스의 가상 메모리 주소 공간에 직접 매핑하는 기술입니다. 파일을 마치 메모리에 올라와 있는 거대한 '바이트.. 2026. 2. 28.
728x90