피드로 돌아가기![[Side A] Building a RAM Disk on Windows without Admin Privileges — Python I/O Acceleration Techniques](/_next/image?url=https%3A%2F%2Ftsewlmecqtvqphyhezcm.supabase.co%2Fstorage%2Fv1%2Fobject%2Fpublic%2Fthumbnails%2F837b69bc-bac7-4441-9dac-ed4314c42fbe.webp%3F&w=3840&q=75)
Dev.toBackend
원문 읽기
D-MemFS가 Python 프로세스 메모리를 가상 파일시스템으로 활용해 관리자 권한 없이 RAM 디스크 기능 구현
[Side A] Building a RAM Disk on Windows without Admin Privileges — Python I/O Acceleration Techniques
AI 요약
Context
Windows에서 ImDisk Toolkit, OSFMount 같은 RAM 디스크 도구를 사용하려면 관리자 권한이 필수이거나 유료 라이선스가 필요하므로 CI 환경이나 공유 개발 머신에서 사용할 수 없다. SSD 기반 임시 디렉토리(tempfile)를 사용하면 디스크 I/O 레이턴시가 증가하고 SSD 쓰기 수명이 단축되는 문제가 발생한다.
Technical Solution
- Python 프로세스 메모리를 가상 파일시스템으로 추상화: MemoryFileSystem 클래스를 통해 Python 코드 내에서만 접근 가능한 in-memory 파일시스템 제공
- tempfile.TemporaryDirectory() 대체: mfs.open()으로 메모리상의 파일 읽기/쓰기 수행하여 디스크 접근 제거
- Hard Quotas로 메모리 사용량 제한: max_quota 파라미터로 가상 파일시스템의 최대 할당량 설정 (예: 64MB, 32MB)
- Memory Guard로 물리 메모리 부족 방지: v0.3.0에서 도입하여 호스트 머신의 남은 물리 메모리 확인 후 쓰기 거부
- pytest 픽스처로 테스트 격리: 각 테스트마다 독립적인 MemoryFileSystem 인스턴스 제공하여 quota 독립성 확보
- 표준 라이브러리만 사용: 외부 의존성 없이 pip install D-MemFS로 설치 가능하며 Windows/macOS/Linux 크로스플랫폼 지원
Impact
- 순차 I/O 성능: ~1.9 GB/s (SSD 기반 tempfile과 동일, RAM 디스크와 동일)
- 랜덤 액세스 I/O: ~1.4 GB/s (RAM 디스크 1.3 GB/s와 유사)
- 디스크 쓰기: 0회 (다운로드한 아카이브 추출 시 SSD 쓰기 완전 제거)
Key Takeaway
관리자 권한이 필요 없고 외부 드라이버를 설치하지 않아도 Python 코드 내에서 메모리 기반 임시 저장소를 구성할 수 있으며, 이를 통해 디스크 I/O 제거와 자동 가비지 컬렉션을 동시에 달성할 수 있다. 순수 Python 처리에 국한되지만 CI/CD 환경과 개발 머신의 권한 제약을 완전히 회피할 수 있는 설계 전략이다.
실천 포인트
Python 데이터 처리 파이프라인이나 테스트 환경에서 tempfile.TemporaryDirectory()를 D-MemFS의 MemoryFileSystem으로 교체하면 디스크 I/O를 완전히 제거하고 SSD 쓰기 수명을 보호할 수 있으며, 외부 도구나 관리자 권한 없이 모든 플랫폼에서 동작한다.