이 문서는 삼성전자에서 지원하는 가상 메모리 기능에 대한 문서입니다. 이 기능의 메커니즘에 대한 내용은 가상 메모리 문서 참고하십시오.
앱 성능 개선을 위해 내장 메모리를 가상 RAM으로 사용할 수 있습니다.
1. 개요
RAM Plus(램 플러스)는 디바이스 케어의 가상 메모리 기술이다.2. 상세
2021년 삼성전자의 Android 스마트폰인 삼성 갤럭시에 적용된 가상 메모리 기술이다.해당 기술은 Android에서 사용되는 zRAM[1]이라는 메모리 압축기법에 기반한다. zRAM은 특정 조건의 메모리를 압축한 뒤 ROM(Storage)에 저장하는 방식으로 RAM 용량을 추가로 확보하는데, 메모리를 먼저 압축하고 저장하는 방식이기에 할당한 저장소 용량보다 더 큰 용량의 임시 파일을 저장할 수 있다.
삼성전자는 2021년부터 이 기술에 'RAM Plus'라는 이름을 부여하고 사용자의 스왑 용량 커스텀을 지원하고 있다.[2] 기존에 압축할 수 있는 용량은 최소 2GB, 최대 4GB였으나 소프트웨어 업데이트로 최대 8GB까지 설정이 가능해졌다. 다만 RAM Plus 용으로 할당할 수 있는 스토리지 용량은 기기 자체의 RAM 용량을 초과할 수 없다.[3]
삼성전자에서는 갤럭시 S21시리즈는 One UI 4.0 2차 베타부터, 갤럭시 Z 플립3와 갤럭시 Z 폴드3의 마이너 업데이트 이후 탑재하였고, 갤럭시 A52s 5G와 갤럭시 A32에 One UI 3 마이너 업데이트로 탑재되었다. 이후 다른 갤럭시에도 One UI 4 업데이트를 통해 추가되었다.
RAM Plus는 디바이스 케어의 RAM에서 확인할 수 있다.
2.1. 장점
가상 메모리를 사용하는 것이므로 사용가능한 RAM 용량이 늘어나는 것과 마찬가지의 효과를 볼 수 있다. 안드로이드 OS는 RAM 용량이 가득 차기 전에 자동으로 RAM에 올라가 있는 작업 일부를 날려서 최적화를 진행하기 때문에 백그라운드에 켜뒀던 앱들이 리프레시가 되는 경우가 많으나, RAM Plus는 지연시간이 조금 더 긴 RAM이 추가된 것과 같은 효과를 보이기 때문에 다수의 앱을 백그라운드에 띄워뒀을 때 리프레시 되는 빈도가 감소한다.더불어 가상 메모리 기능은 페이징 요청에 들어가는 I/O 소모를 줄이기 때문에 전반적인 성능 향상 효과를 볼 수 있다. 따라서 Windows와 마찬가지로 어디서 십수년 전 기준의 정보로 쓰인 최적화 팁을 듣고 zRAM을 아예 끄는 것은 추천되지 않는다. 가상 메모리 기능은 일부 사람들의 편견과는 달리 앱 구동속도를 엄청나게 느리게 만드는 꼼수 기능이 아니며, 오히려 멀티코어, 멀티스레드 작업에서는 최대 50% 이상의 성능 향상 효과를 가져올 수 있기 때문이다.Transparent Memory Compression in Linux
특히 One UI는 타사의 안드로이드 커스텀 UI에 비해서도 제법 무거운 UI라 메모리를 많이 잡아먹는데[4] 이 기능을 이용한다면 이로 인한 램 부족을 어느 정도 완화할 수 있다. 실제로도 체감할 수 있는데, 사양이 높은 고사양 게임에서 램플러스를 끄게 되면 프레임드랍이 심해지는 것을 느낄 수 있다.
2.2. 단점
이 문단은 RAM Plus의 단점을 설명합니다. 가상 메모리의 단점에 대한 내용은 가상 메모리 문서 참고하십시오.
zRAM의 동작 원리 상 메모리 스왑이 발생할 때 RAM<->압축/압축해제<->스토리지 순으로 데이터가 움직인다.
자주 오해하는 부분이지만 스토리지로 넘겼던 앱을 로딩하면 그 데이터를 스토리지에서 RAM으로 다시 가져와서 실행하는 것이다. 스토리지에서 돌아가는 것이 아니다! 이 과정에서 지연이 발생하기 때문에 압축하고 스토리지로 넘겨놨던 데이터를 다시 불러올 때 로딩이 좀 더 길어지게 된다.
이 로딩 시간은 스토리지의 데이터 전송 속도가 빠를수록, 프로세서의 성능이 높을수록 줄어들며, UFS 4.0 스토리지와 고성능 AP가 탑재된 플래그십 스마트폰에서는 RAM에 올라간 앱을 불러올 때와 큰 차이가 느껴지지 않을 정도로 지연이 짧아진다.
3. 지원
3.1. 지원 범위
- One UI
One UI 4 이상, 일부 갤럭시는 One UI 3.1 이상
3.2. 지원 기기
3.2.1. 기본으로 지원하는 기기
- 삼성 갤럭시
- 폰
- 갤럭시 S 시리즈
- 갤럭시 S21 FE
- 갤럭시 S22 | S22+ | S22 Ultra 이후 출시되는 모든 갤럭시 S 시리즈
- 갤럭시 Z 시리즈
- 갤럭시 A 시리즈
- 갤럭시 A33 5G | A53 5G | A73 5G 이후 출시되는 모든 갤럭시 A 시리즈
- 탭
- 갤럭시 탭 S 시리즈
- 갤럭시 탭 S8 | 탭 S8+ | 탭 S8 Ultra 이후 출시되는 모든 갤럭시 탭 S 시리즈
3.2.2. 사후 지원 기기
- 삼성 갤럭시
- 폰
- 갤럭시 S 시리즈
- 갤럭시 S10 | S10 5G | S10+ | S10e[OneUI4]
- 갤럭시 S20 | S20+ | S20 Ultra | S20 FE[OneUI4]
- 갤럭시 S21 | S21+ | S21 Ultra[OneUI4]
- 갤럭시 노트 시리즈
- 갤럭시 Z 시리즈
- 갤럭시 A 시리즈
- 갤럭시 A12
- 갤럭시 A21s[OneUiCore4.1]
- 갤럭시 A23
- 갤럭시 A31[OneUI4.1]
- 갤럭시 A32[OneUI3]
- 갤럭시 A42 5G[OneUI4]
- 갤럭시 A51 5G[OneUI4]
- 갤럭시 A52s 5G [A][OneUI3]
- 갤럭시 A 퀀텀[OneUI4]
- 갤럭시 퀀텀2[OneUI3]
- 갤럭시 A90 5G[OneUI4.1]
- 갤럭시 M 시리즈
- 갤럭시 XCover 시리즈
- 갤럭시 엑스커버 5 이후 출시되는 모든 갤럭시
- 탭
4. 여담
갤럭시 A12와 갤럭시 M12는 RAM Plus가 2GB로 제공된다.[27]RAM Plus는 삼성 갤럭시가 켜질 때 디바이스 케어에서 자동으로 켜져서 별도로 유저가 켤 필요가 없다. 비활성화 기능은 One UI 5.0 버전부터 지원한다. 5.0 미만의 버전에서는 비활성화를 지원하지 않는데, 강제로 비활성화하고 싶으면 이곳을 참고할 것.
삼성에서는 몇몇 하드웨어 RAM에 RAM Plus의 최대값을 더한 값을 RAM 스펙으로 소개하기도 한다. 일례로 인도에서 2023년 출시한 갤럭시 F04는 RAM Plus의 최댓값을 더한 8GB RAM으로 홍보한다.
RAM Plus보다 더 좋은 것은 더 많은 RAM 여유공간이다. 원하지 않는데 램을 차지하는 통신사 앱, 기본 앱 등의 블로트웨어를 ADB로 삭제하자. 또한 자주 쓰지 않는 앱들은 삭제하거나 절전하고, 불필요한 기능은 끄자. 자주 쓰지 않는 앱을 구형폰 등의 서브폰으로 옮겨도 좋다.
4.1. RAM Plus와 퍼포먼스의 관계에 대한 오해
zRAM 알고리즘이 가동되면서 잠시 사용을 중단한 메모리 영역을 압축하고 디스크에 얹어둘 때, 그리고 디스크에 얹어뒀던 메모리를 다시 불러올 때 CPU 리소스가 압축과 압축해제에 사용된다. 따라서 이 압축과 스왑 알고리즘이 CPU 리소스의 일부를 점유하게 되므로 Geekbench 등의 CPU 벤치마크를 돌려보면 RAM Plus를 껐을 때 점수가 약간이나마 더 높게 나오는 것을 확인할 수 있다. 다만 zRAM 8GB와 zRAM Off 상태를 비교하더라도 변동폭은 미미한 수준이다.이러한 점을 가지고 RAM Plus로 인한 전력소모 증가나 배터리타임 단축, 발열 등을 주장하는 허무맹랑한 글이 간혹 보이나, zRAM에 사용되는 연산력이 실 사용에서 체감이 될 정도의 성능 저하나 전력소모, 발열로 나타나지는 않는다. 애초에 zRAM은 성능 저하를 최소화하기 위해 빠른 압축 알고리즘을 사용하는 등 신경을 꽤나 써서 단순 메모리 스왑보다 시스템 I/O를 훨씬 적게 먹는 기술로, 성능 손실이 적다는 장점 때문에 저성능, 저전력 프로세서를 탑재한 NAS 등의 임베디드 시스템에서도 자주 사용하는 기능이다.
===# RAM Plus 공간 더 늘리기? #===
갤럭시 A12와 갤럭시 M12를 제외하고 기본적으로 RAM Plus 용량은 4GB로 설정되어 있고 사용자가 변경할 수 없다. 하지만 One UI 4.1 이상에서 특정 방법을 이용하면 루팅 없이 RAM Plus 용량을 변경할 수 있다.
우선, SetEdit 앱을 설치 후, PC[28] 와 연결하여 ADB 명령어를 통해 테이블 쓰기 권한[29]을 미리 주어야 한다.
권한 부여 후 앱 실행하여 Global Table에 들어간 후 "ram_expand_size_list"라는 값을 찾아 수정하면 된다. 기본값은 2,4,6,8이며, 사용하고자 하는 가상메모리의 용량을 추가하여 디바이스 케어에 들어간 후 가상메모리 용량을 선택한 후 재부팅하면 수정한 값으로 지정되어 있다.[30]
RAM truth 앱 설치 후 실행하여 Swap (total) 값이 바뀌면 정상적으로 적용이 된 것이다.[31]
펌웨어 업데이트 해도 값은 유지되나 공장 초기화 시 다시 설정해야 한다.
One UI 4.1 이후로는 단말에 따라 다르지만 2GB 단위로 최저 2GB 부터 최대 8GB까지 확장 가능하다. 갤럭시 엑스커버 5의 경우 2GB,4GB 까지만 지원한다.
One UI 5에서 막혔다.
[1] 출처: #1, #2[2] zRAM을 개발한 엔지니어는 삼성전자 - 레드햇 - LG전자를 거쳐 현재는 Google에 재직중.# 해당 개발자가 LG전자에 근무할 때 주도적으로 개발한 것으로 보인다.# #[3] 즉, RAM이 4GB인 기기는 RAM Plus에 4GB까지만 할당할 수 있다. 그리고 12GB RAM를 탑재한 기기더라도 RAM Plus에 최대 8GB까지만 설정할 수 있다.[4] 구글 순정과 LG UX를 비롯한 다른 안드로이드 UI들은 1.2~1.5GB, iOS는 0.8GB인 반면 One UI는 2~3GB를 점유한다. 특히 갤럭시 노트 시리즈, 갤럭시 S21 Ultra이후의 갤럭시 S 시리즈의 Ultra 시리즈, Z 폴드3 이후의 폴드 시리즈에는 S펜 관련 기능도 들어가기 때문에 기본 4GB 이상을 먹는다.[OneUI4] One UI 4 업데이트로 추가[OneUI4] [OneUI4] [OneUI4] [OneUI4] [OneUI4] [OneUI4] [OneUI4] [OneUiCore4.1] 업데이트로 추가[OneUI4.1] One UI 4.1 업데이트로 추가[OneUI3] [OneUI4] [OneUI4] [A] 최초 적용[OneUI3] One UI 3의 안드로이드 11 마이너 업데이트부터 추가[OneUI4] [OneUI3] [OneUI4.1] [OneUI4] [OneUI4] [OneUI3] [OneUI4.1] [27] A12와 M12 둘 다 내장메모리가 32GB라는 공통점이 있는데 이 때문인 것으로 보인다. 하지만 용량이 같은 갤럭시 A21s는 4GB도 같이 제공된다. 세 모델 다 eMMC 5.1 규격의 32GB 내장 메모리를 사용하고, A21s와 M12는 둘 다 동일한 프로세서를 사용하는 점을 생각하면 아이러니.[28] 핸드폰도 가능하다 brevent만 있으면 pc가 없어도 가능하다.무선디버그를 켠 후 페어링 코드 입력하고 앱으로 돌아와서 Exec command로 가서 pm grant by4a.setedit22 android.permission.WRITE_SECURE_SETTINGS만하면된다.[29] adb shell pm grant by4a.setedit22 android.permission.WRITE_SECURE_SETTINGS[30] 단, 소수점 단위로 적용 시 RAM Plus 설정에서 디바이스 케어 앱이 강제 중지되므로 정수로만 가능하다. 1~8 값 이외에는 4GB로 설정되며 유의[31]