개발자 노트북 램 16GB vs 32GB: 작업별 RAM 실측표
개발자 노트북 램을 16GB로 할지 32GB로 할지는 “무슨 작업을 하느냐”로 정해진다. 아래는 이 블로그에서 메모리 상한을 걸고 직접 잰 값만 모은 표다. 추정치나 제조사 권장 사양은 넣지 않았다. 새 실측이 나오면 행을 추가한다.
작업별 RAM 실측표
| 작업 | 4GB | 8GB | 16GB | 최대 메모리 |
|---|---|---|---|---|
| 로컬 LLM 3B (Ollama, Qwen2.5 q4) | 성공 | 성공 | 성공 | 3.1~3.8GiB |
| 로컬 LLM 7B | 실패(OOM) | 성공 | 성공 | 6.2~6.3GiB |
| 로컬 LLM 14B | 실패 | 실패 | 성공 | 13.6GiB |
| ROS 2 Nav2 빌드, 기본 설정 | 실패 | 성공 | 성공 | 8.1GiB(16GB에서) |
| Nav2 빌드, 순차 | 성공 | — | 성공 | 2.7GiB |
| MoveIt 2 빌드, 기본 설정 | 실패 | 실패 | 성공 | 8.7GiB(16GB에서) |
| MoveIt 2 빌드, 순차 | 성공 | 성공 | — | 2.4GiB |
“4GB·8GB·16GB”는 노트북 RAM이 아니라 측정할 때 건 메모리 상한이다. 실제 노트북에서는 OS·브라우저·IDE가 따로 2~4GB를 쓴다고 보고 한 칸 아래로 읽는 게 안전하다. 빌드 측정은 4코어 리눅스 서버, LLM은 GPU 없이 CPU만 쓴 결과다.
맥에서 Docker를 쓴다면 더한다
Docker Desktop 실측(8GB 인텔 맥북)에서는 VM 메모리 4GiB 설정일 때 맥 쪽 Docker 메모리가 최대 3,063MiB까지 올라갔다. 컨테이너를 지워도 몇 분 동안은 맥으로 돌아오지 않았다. 맥에서 위 작업을 Docker 안에서 돌린다면 표의 값에 Docker VM 몫이 더해진다.
16GB와 32GB, 어디서 갈리나
- 16GB면 되는 경우: 7B 로컬 LLM을 CPU로 돌리기, Nav2 소스 빌드, 순차 빌드로 돌리는 MoveIt 2, DB 컨테이너 한두 개. 측정값이 모두 8.7GiB 이하라 OS 몫을 더해도 16GB 안에 들어간다.
- 32GB가 필요한 경우: 14B 로컬 LLM(13.6GiB)을 돌리면서 브라우저·IDE도 쓸 때, MoveIt 2를 기본 설정으로 빌드하면서(8.7GiB) Docker나 다른 일을 같이 할 때, 코어가 8개 이상인 PC에서 기본 설정 빌드(동시 컴파일 수가 늘어 메모리도 는다).
- 8GB로 버티는 법: 빌드는 순차(
MAKEFLAGS=-j1 colcon build --parallel-workers 1), LLM은 3B, Docker Desktop은 Memory limit을 낮춘다.
측정 원칙
모든 값은 Docker 컨테이너에 메모리 상한을 걸고 스왑을 끈 채(성공 = RAM 안에서 끝남) cgroup의 memory.peak로 읽었다. Docker Desktop 값만 맥 실기기의 프로세스 RSS다. 스크립트와 원본 결과는 각 글의 실험 공개 폴더에 있다.