zram - 리눅스의 메모리 압축 기능 리눅스

리눅스에서 가상 메모리로 사용하기 위해 디스크에 할당해 놓은 파티션을 스왑(swap)이라고 하는데, 디스크를 사용하는 대신 메모리 영역에 데이터 압축 기술을 적용해서 스왑을 대신할 수 있다. (물론 스왑과 같이 사용해도 무방하다.)

zram이라는 기술인데, 메모리 사용량이 일정 수준 이상이 되면 메모리 영역의 데이터를 (스왑 영역 대신) zram 영역으로 옮기면서 압축을 함으로써 메모리 부족을 완화하는 방식인 듯. (물론 이렇게 해도 메모리가 모자라면 디스크의 스왑 영역도 사용하게 될 것이다.)

메모리가 충분할 경우에는 별 필요가 없겠으나, 몇가지 특정한 상황에서는 상당히 유용한 기능이 될 수 있다.

RAM 1GB~2GB 수준의 구형 노트북에서 리눅스를 사용하는 경우, 디스크의 스왑 영역을 사용하는 것보다 속도가 빠르므로 쾌적한 사용에 도움이 될 것으로 보인다.

버추얼박스(VirtualBox) 또는 VM웨어(VMWare)를 통해서 가상 머신으로 리눅스를 사용하는 경우에도 RAM 할당을 충분히 하기 어렵다면 zram 활용을 고려해 볼 수 있겠다.

SSD에 리눅스를 설치할 때도 SSD 용량을 절약하는 동시에 수명을 단축시키는 쓰기(write) 동작을 줄이기 위해 스왑 파티션을 아예 할당하지 않고 설치한 후 zram을 사용하는 것도 괜찮을 듯하다. 실제로 구글 크롬OS(Chrome OS)에서 zram을 채택하고 있는데, 크롬북이 주로 저용량 SSD를 저장장치로 채택하고 있다는 점과 무관하지 않아 보인다.

zram을 사용할 경우, 압축/해제 과정에 의해 RAM 입출력에서의 시간 지연이 발생할 것이고 이로 인해 메모리 입출력 성능이 조금 저하될 것이다. 또한 압축/해제를 위해 CPU 자원을 사용할 것이므로 노트북 같은 이동형 기기는 전력 소모가 조금 늘어날 여지도 있다. 그러나 디스크에 접근하는 것보다는 메모리에 접근하는 것이 훨씬 빠르기 때문에 위에서 언급한 사용 조건이라면 충분히 고려해 볼 만하다.

우분투 계열 리눅스 배포판에서 아주 간단하게 활성화할 수 있다. 14.04 LTS 기준으로, zram-config 패키지를 설치하면 된다.

sudo apt-get install zram-config

설치가 완료되고 난 후 재부팅을 하면 zram이 활성화된다. zram 활성화 여부는 아래와 같이 확인해 볼 수 있다.

cat /proc/swaps

출력된 결과에 /dev/zram0 이런 것이 보이면 zram 영역이 생긴 것이다.

메모리 사용량이 총 메모리 용량의 절반이 넘으면 데이터가 zram 영역으로 이동하면서 압축되기 시작한다. zram의 설정은 /etc/zram-config.conf 파일에 있는데, 굳이 편집할 필요는 없을 듯.

zram을 비활성화하려면 아래와 같이 zram-config 패키지를 제거하면 되겠다. 관련 시스템 설정을 다 제거해야 하므로 --purge 옵션을 사용한다.

sudo apt-get remove --purge zram-config

제거가 완료된 후 재부팅하면 된다.



덧글

  • 긁적 2014/12/31 22:43 # 답글

    흠. 신박한 기술이긴 한데 크게 효율적일지는..;; CPU 파워가 많이 필요한데 CPU가 널널한 머신에서는 메모리도 널널하기 마련이라...
    뭐 쓸모가 있으니까 만들었겠죠 ^^;;;
  • 반달가면 2014/12/31 23:52 #

    제 경우에는 가상 머신에서 요긴하게 쓰고 있습니다. 여러개의 가상머신을 동시에 사용해야 하기 때문에 메모리를 1GB 이하로 할당하거든요. 메모리 부족으로 디스크 입출력이 발생하는 상황을 줄여준다는 것이 큰 장점입니다. 압축/해제로 인한 CPU 부하는 의외로 별로 높지 않았습니다.

    메모리가 충분하다면 굳이 사용할 필요가 없습니다.
  • 긁적 2014/12/31 23:54 #

    아하. 생각보다 부하가 높지 않군요. 답변 감사합니다.
  • jklin 2015/01/03 13:08 # 답글

    이런 쌈빡한 방법이. ㅎㅎ 포스팅 감사합니다.

    오래전에 하드 압축 유틸 생각이 나네요. 하드 압축은 하드가 워낙 느리고 시피유는 부하는 별로 안걸려서 실제 하드 압축 유틸을 깔면 시스템 체감 속도가 빨라졌죠. 어쨌든 이거 깔아봐야겠습니다.
  • 반달가면 2015/01/04 21:19 #

    아 네. 잘 쓰시길~
댓글 입력 영역
* 비로그인 덧글의 IP 전체보기를 설정한 이글루입니다.

Google Analytics


B-Side


adsense(w160_h600)2

통계 위젯 (화이트)

509889
4772
1903197

ad_widget_2