미니 zram 등등 메모리 관련 용어 정리
- 콜홍
- 조회 수 1723
- 2021.09.12. 10:58
램 디스크 : 램을 디스크로 씁니다.
128기가램 달린 컴퓨터에 80기가정도 램디스크를 만들어서 거기에 GTA를 깔아서 실행했어. 그랬더니 로딩이 엄청 빨라지더라
라고 말할 때 쓰는 단어입니다.
zram : 메모리 압축 기법 중 리눅스에서 사용하는 기법
자주 쓰이지 않는 데이터를 압축합니다. 평균 50%정도 효율을 보입니다.
swap : 압축된 데이터를 디스크(요즘은 디스크는 안 쓰지만 편의상 디스크)에 저장합니다.
윈도에선 페이징 파일이라고 부릅니다.
디스크는 무적권 느리기 때문에 무적권 압축 후에 디스크로 이동합니다.
4기가 정도를 스왑으로 한다면 램에 풀었을 때는 8기가 정도가 되는겁니다.
압축이나 스왑을 할 때는 그 정보를 램에 저장해야 합니다.
작업을 진행할 때는 램에 여유가 있어서 속도가 개선되지만
앱을 실행하거나 종료할 때는 메모리 압축/스왑이 반복되기 때문에 발열이 생기고 더 느려질 수 있습니다.
공간을 미리 할당해두고 램-디스크 사이 우선순위 하나 추가하는게 zram이고 파라미터 따라서 효율성 고려해 압축 선정하는게 zswap아닌가요?
https://m.blog.naver.com/loveall0926/220040174288
zram이 램 일부분을 파티션 잡아서 쓰는거 같긴 하더라고요
사진내용은 조금 이상해서 지웠습니다.
https://www.google.co.kr/amp/s/www.maketecheasier.com/zram-zcache-zswap/%3famp
zram은 램 내에 파티션 공간이 할당 되어 압축된 페이지를 저장 (램-디스크 스왑 공간 사이에 저장 계층 하나가 더 추가된 느낌). 이때 이 램 내 파티션은 처음부터 잡힌게 아니라 필요한 순간 부터 잡힌다곤 하는데 할당 부분은 정확이 못찾겠네요. 램->디스크로 보내기 전에 최대한 zram공간이 먼저 채워 지는게 우선이고 다 차면 디스크내 스왑 파티션으로 보내게 된다 하네요.
zswap이 스왑을 램공간에 하는개념으로 표현하기 보다는 캐시 압축 기능 이라는게 더 맞을거 같네요. 먼저 압축 효율성을 고려해서 압축이 가능한 경우 램에 보관, 아닌경우 디스크로 바로 스왑 해버리는방식인거 같고요. zswap은 zram과 같이 램내 파티션을 잡고 하는 방식은 아니라고도 하고요.
압축을 해서 공간 효율 찾는건 zram,zswap둘다 동일 하지만 전부다 압축해서 논리적 저장 공간으로 ram의 일부를 잡아서 활용하는게 zram이고 zswap은 압축을 통해 Disk io 시간과 압축 cpu타임 간을 비교해서 효율성을 찾는 방식인게 다른거 같더라고요
아 그리고 zram 공간은 따로 할당해두지는 않습니다. 여러가지 파라미터에 따라서 필요에 압축 대상을 선정하고, 그걸 압축하여 저장합니다..
애초에 불필요한 걸 압축하는건데 그 공간을 할당해둔다는건 불필요한 걸 메모리에 두겠다는 굳은 의지인걸요...
스왑이야 디스크의 용도와 다르게 메모리 용도로 사용하고자 하는거니 미리 빼두는거구요.
앱에서 zram라고 나온 건, 스왑해야 할 데이터는 무조건 압축이 되어야 하기 때문에 그런게 아닌가 싶습니다.