Zram

zram
발표일2014년 3월 30일(12년 전)(2014-03-30) (리눅스 3.14)
프로그래밍 언어C
운영 체제리눅스
종류리눅스 커널 기능
라이선스GNU 일반 공중 사용 허가서
웹사이트www.kernel.org

zram은 과거 compcache라고 불렸던 것으로, RAM 내에 압축된 블록 장치를 생성하기 위한 리눅스 커널 모듈이며, 즉 즉석에서 디스크 압축을 수행하는 RAM 디스크이다. zram으로 생성된 블록 장치는 스왑이나 범용 RAM 디스크로 사용할 수 있다. zram의 가장 일반적인 두 가지 용도는 임시 파일(/tmp) 저장과 스왑 장치이다. 초기에 zram은 후자의 기능만 있었기 때문에 원래 이름인 "compcache"("압축된 캐시")라는 이름이 붙었다. 비어 있을 때 zram 블록 장치는 크기의 약 0.1%를 할당한다.

리눅스 커널의 드라이버 스테이징 영역에서 4년을 보낸 후, zram은 2014년 3월 30일에 출시된 메인라인 리눅스 커널 버전 3.14에 도입되었다. 리눅스 커널 버전 3.15(2014년 6월 8일 출시)부터 zram은 다중 압축 스트림과 다중 압축 알고리즘을 지원한다. 압축 알고리즘에는 DEFLATE (DEFLATE), LZ4 (LZ4 및 LZ4HC "고압축"), LZO (LZO-RLE "런-길이 인코딩"), Zstandard (ZSTD), 842 (842)가 포함된다. 커널 5.1부터는 속도와 압축률의 균형을 맞춘 LZO-RLE가 기본값이다. 대부분의 다른 시스템 매개변수와 마찬가지로, 압축 알고리즘은 sysfs를 통해 선택할 수 있다.

압축 스왑 공간으로 사용될 때 zram은 Zswap과 유사한데, 이는 범용 RAM 디스크가 아니라 스왑 페이지를 위한 커널 내 압축 캐시이다. 그러나 Zswap은 항상 백업 저장소가 필요하지만, zram은 그렇지 않다. 커널 버전 4.14에서 CONFIG_ZRAM_WRITEBACK이 도입된 이후, zram도 백업 저장소로 저장 장치를 사용할 수 있게 되어 자주 사용하지 않는 페이지를 디스크로 옮길 수 있게 되었다. 다만 현재는 장치가 파티션일 수만 있으며 (메모리를 비워야 할 때 커널이 이 과정을 자동으로 관리할 수 없으며 선제적인 사용자 공간 프로그래밍이 필요하다). 커널 버전 7.0부터는 zram이 데이터를 먼저 압축 해제하지 않고 백업 저장소로 보낼 수 있다.

스왑에 사용될 때 zram은 (zswap과 마찬가지로) 리눅스가 RAM을 더 효율적으로 사용할 수 있게 해주는데, 운영 체제가 동일한 양의 RAM을 애플리케이션 메모리나 디스크 캐시로 사용했을 때보다 압축된 스왑에 더 많은 메모리 페이지를 담을 수 있기 때문이다. 이는 메모리가 부족한 기기에서 특히 효과적이다. 2012년에 우분투는 설치된 RAM 양이 적은 컴퓨터에서 zram을 기본적으로 활성화하는 것을 고려했었다. 같은 이유로 페도라는 33 릴리스부터 zram을 기본적으로 활성화했다.

zram이나 zswap으로 압축 스왑 공간을 사용하는 것은 임베디드 장치나 넷북과 같은 저사양 하드웨어 기기에도 이점을 제공한다. 이러한 장치들은 보통 쓰기 증폭으로 인해 수명이 제한적인 플래시 기반 저장소를 사용하며, 이를 스왑 공간으로 제공하기도 한다. zram이나 zswap을 사용하면 스왑 사용량이 줄어들어 플래시 기반 저장소의 마모를 효과적으로 줄이고 수명을 연장할 수 있다. 또한 zram을 사용하면 스와핑이 필요한 리눅스 시스템의 I/O가 상당히 감소한다.

추가로, 특정 작업 부하에서 zram은 zram을 비활성화했을 때보다 더 빠르게 실행되면서도 메모리를 거의 두 배로 늘리는 방법으로 작동할 수 있다(물론 백업 스왑 없이는 큰 위험이 따른다). 이는 보통 저사양 하드웨어에서 쓰레기 수집 및 I/O 집약적인 작업 부하를 실행하고 느린(예: USB) 저장소를 사용할 때 나타나며, 스왑에 대한 쓰기가 긴 멈춤 현상을 유발할 수 있다. 이는 지속적 USB 리눅스 설치를 메모리가 적은 시스템에서 더 유용하게 만들 수 있다.

안드로이드에서의 사용

zram은 안드로이드에서 메모리 관리의 일부로 사용되며, 제조사들은 보통 이 기능을 삼성의 경우 RAM Plus, 비보의 경우 Extended RAM, 샤오미의 경우 Memory Extension, 아너(Honor)의 경우 가상 RAM/RAM Turbo와 같이 각자의 이름으로 부른다.

같이 보기

각주

  1. ↑ “zram: Compressed RAM-based block devices — The Linux Kernel documentation”. 《docs.kernel.org》. 2024년 2월 25일에 확인함.
  2. ↑ “Linux kernel 3.14, Section 1.2. zram: Memory compression mechanism considered stable”. 《kernelnewbies.org》. 2014년 3월 30일. 2014년 4월 1일에 확인함.
  3. 1 2 “ZRAM Will See Greater Performance On Linux 5.1 - It Changed Its Default Compressor - Phoronix”. 《Phoronix.com》.
  4. ↑ “Linux kernel 3.15, Section 1.7. zram: LZ4 compression support, improved performance”. 《kernelnewbies.org》. 2014년 6월 8일. 2014년 6월 15일에 확인함.
  5. ↑ Jonathan Corbet (2026년 2월 19일). “Modernizing swapping: virtual swap spaces”. 《lwn.net》. 2026년 6월 19일에 확인함.
  6. ↑ “zram: Compressed RAM-based block devices — The Linux Kernel documentation”. 《www.kernel.org》. 2026. 2026년 6월 19일에 확인함.
  7. ↑ “Debunking zswap and zram myths - Performance under memory pressure”. 《chrisdown.name》. 2026. 2026년 6월 19일에 확인함.
  8. ↑ Daroc Alden (2026년 2월 23일). “The second half of the 7.0 merge window”. 《lwn.net》. 2026년 6월 19일에 확인함.
  9. ↑ “Increased performance in Linux with zram (virtual swap compressed in ram)”. 《webupd8.org》. 2011년 10월 2일. 2011년 11월 8일에 확인함.
  10. ↑ “compcache Compressed Caching for Linux”. 《code.google.com》. 2010년 4월 27일. 2011년 11월 11일에 확인함.
  11. ↑ Dinsan, Francis (2012년 12월 8일). “Ubuntu Linux Considers Greater Usage of zRAM”. 2013년 10월 30일에 확인함.
  12. ↑ “Fedora 33 Looking To Use Swap On zRAM By Default With systemd's zram-generator - Phoronix”. 《Phoronix.com》. 2021년 3월 29일에 확인함.
  13. ↑ “ZRAM Might Finally Be Moved Out Of Linux Staging”. Phoronix. 2013년 8월 14일. 2014년 2월 9일에 확인함.
  14. ↑ “zRAM Is Still Hoping For A Promotion”. Phoronix. 2013년 11월 25일. 2014년 2월 9일에 확인함.
  15. ↑ “Using zram with the Raspberry Pi”. Pi My Life Up. 2022년 1월 30일. 2026년 2월 16일에 확인함.
  16. ↑ “Memory allocation among processes | App quality” (영어). 《Android Developers》. 2026년 1월 22일에 확인함.
  17. ↑ Debasish (2025년 4월 30일). “The truth about Android’s virtual RAM: it barely uses internal storage” (미국 영어). 《Gizmochina》. 2026년 1월 22일에 확인함.

외부 링크