피드로 돌아가기
[Side A] Building a RAM Disk on Windows without Admin Privileges — Python I/O Acceleration Techniques
Dev.toDev.to
Backend

D-MemFS가 Python 프로세스 메모리를 가상 파일시스템으로 활용해 관리자 권한 없이 RAM 디스크 기능 구현

[Side A] Building a RAM Disk on Windows without Admin Privileges — Python I/O Acceleration Techniques

D2026년 3월 25일9intermediate

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 쓰기 수명을 보호할 수 있으며, 외부 도구나 관리자 권한 없이 모든 플랫폼에서 동작한다.

원문 읽기