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

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

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

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

원문 읽기