zswap 및 zram 신화 깨기
zswap과 zram은 리눅스에서 메모리 압박 시 사용하는 압축 스왑 기술로, 구조와 동작 방식에서 큰 차이가 있습니다.
zswap은 커널 메모리 관리와 긴밀히 통합되어, 압축된 페이지를 RAM에 저장하고 필요 시 자동으로 디스크 스왑으로 계층화하여 메모리 압박을 부드럽게 처리합니다. 반면, zram은 압축된 RAM 블록 장치로, 용량 제한이 엄격하며 자동 페이지 퇴출 기능이 없어 메모리 부족 시 시스템이 멈추거나 성능 저하가 심각할 수 있습니다.
실용적으로는 디스크 스왑이 가능한 환경에서는 zswap을 우선적으로 사용하는 것이 권장되며, zram은 임베디드 시스템이나 디스크가 전혀 없는 환경, 또는 보안상 디스크에 데이터를 남기지 않아야 하는 특수한 경우에만 사용하는 것이 적합합니다.
또한, zram 단독 사용 시 발생하는 LRU 역전 현상과 메모리 관리의 복잡성, 그리고 Fedora 등 일부 배포판이 zram을 디폴트로 사용하는 이유와 한계점도 상세히 설명되어 있습니다.
요약하면, zswap은 커널 내장 메모리 관리와 자동 조율 기능 덕분에 대부분의 일반적인 서버 및 데스크톱 환경에서 더 안정적이고 효율적인 압축 스왑 솔루션입니다.
