
| 환경 | Windows·macOS·Linux |
|---|---|
| 증상 | 모델 로드 중 500 오류 |
| 원인 | RAM·VRAM 할당량 초과 |
| 해결 | 로드 해제·컨텍스트 축소 |
| 바로가기 | Ollama 공식 FAQ |
증상: 모델을 실행하자마자 멈춘다

ollama run 직후 응답이 시작되지 않고 다음 메시지가 나타난다면 모델을 올릴 가용 메모리가 부족한 상태다. 괄호 안 수치는 모델과 컴퓨터 상태에 따라 달라진다.
Error: 500 Internal Server Error: model requires more system memory (17.7 GiB) than is available (13.6 GiB)
먼저 설치 버전, 현재 올라간 모델, GPU 메모리를 차례로 확인한다.
아래 명령은 Ollama CLI를 사용하는 Windows PowerShell·macOS·Linux 터미널에서 실행할 수 있으며, nvidia-smi는 NVIDIA 환경에만 해당한다.
ollama --version
ollama ps
nvidia-smi
오류의 required와 available 차이부터 확인해야 필요한 절감 폭을 정할 수 있다.
원인: 모델 파일 크기만 보면 안 된다
실행할 때는 모델 가중치뿐 아니라 컨텍스트의 K/V 캐시와 병렬 요청용 공간도 필요하다.
공식 문서에 따르면 컨텍스트를 늘릴수록 메모리 사용량이 증가하며, 필요한 RAM은 OLLAMA_NUM_PARALLEL × OLLAMA_CONTEXT_LENGTH의 영향을 받는다.
ollama ps의 PROCESSOR가 100% GPU면 전부 GPU에, 100% CPU면 시스템 메모리에 올라간 것이다.
48%/52% CPU/GPU처럼 표시되면 두 영역으로 나뉘어 실행된다.
| 확인 결과 | 먼저 할 조치 | 적합한 상황 |
|---|---|---|
| 여러 모델 실행 중 | 불필요한 모델 중지 | 평소에는 정상 실행 |
| 컨텍스트가 큼 | num_ctx 축소 | 긴 입력에서만 실패 |
| 단일 모델도 초과 | 작은 양자화 모델 사용 | 로드 단계부터 실패 |
모델 크기와 실행 메모리는 같은 값이 아니므로 실행 중인 모델과 컨텍스트를 함께 봐야 한다.
해결 1: 기존 모델을 내리고 다시 로드한다

다른 모델이 RAM이나 VRAM을 점유했다면 가장 먼저 적용할 방법이다.
Ollama는 기본적으로 사용한 모델을 일정 시간 메모리에 유지하므로 ollama ps에서 이름을 확인한 뒤 중지한다.
ollama ps
ollama stop llama3.2
ollama run llama3.2
API를 사용한다면 생성이 끝난 모델에 keep_alive: 0을 보내 즉시 내릴 수 있다. 모델을 자주 바꾸는 단일 GPU 서버에서 특히 유용하다.
curl http://localhost:11434/api/generate -d '{
"model": "llama3.2",
"keep_alive": 0
}'
이전에는 실행됐던 모델이라면 새 모델을 받기 전에 잔류 프로세스부터 비운다.
해결 2: 컨텍스트와 병렬 처리를 줄인다
긴 대화 기록이나 코딩 도구가 필요하지 않다면 컨텍스트를 4096으로 제한해 캐시 할당을 줄인다. API 호출별로 설정하면 다른 애플리케이션에는 영향을 주지 않는다.
curl http://localhost:11434/api/generate -d '{
"model": "llama3.2",
"prompt": "메모리 점검 테스트",
"options": {"num_ctx": 4096}
}'
서버 전체를 제한해야 하는 Linux·macOS 수동 실행 환경에서는 다음처럼 시작한다. 동시에 여러 요청이 들어오는 서버라면 병렬 수도 1로 고정한다.
OLLAMA_CONTEXT_LENGTH=4096 \
OLLAMA_NUM_PARALLEL=1 \
OLLAMA_MAX_LOADED_MODELS=1 \
ollama serve
짧은 질의가 중심이라면 모델을 바꾸기 전에 컨텍스트와 병렬 수를 낮추는 편이 손실이 적다.
해결 3과 재발 방지: 작은 모델을 고른다

한 모델만 남기고 컨텍스트도 줄였는데 로드가 실패하면 현재 장비보다 모델 자체가 큰 경우다.
/api/show에서 파라미터 규모와 양자화 수준을 확인한 뒤 더 작은 파라미터 또는 Q4 계열 태그를 선택한다.
curl http://localhost:11434/api/show -d '{
"model": "gemma3"
}'
대형 모델이 꼭 필요하지만 로컬 RAM·VRAM을 늘릴 수 없다면 Ollama Cloud 모델도 대안이다.
로컬 실행을 유지할 때는 컨텍스트 길이 문서를 기준으로 설정하고, 변경 후 ollama ps의 SIZE와 PROCESSOR를 기록해 비교한다.
재발을 막으려면 모델 교체 전 ollama stop, 서비스 설정의 병렬 수 1, 작업에 필요한 최소 컨텍스트라는 순서를 유지한다.
업데이트 뒤 갑자기 실패했다면 ollama --version과 서버 로그의 required·available 값을 함께 남겨 설정 변화와 실제 부족을 구분한다.
단일 모델·최소 컨텍스트에서도 부족하면 더 작은 양자화 모델이나 클라우드 실행으로 전환해야 한다.
사진: Yan Krukau, Tim Gouw, Ketut Subiyanto, Helena Lopes · Pexels
'개발 오류 해결' 카테고리의 다른 글
| Flutter pub get 실패 해결|버전 충돌·캐시·네트워크 점검 (0) | 2026.08.30 |
|---|---|
| Gradle 의존성 다운로드 실패 해결|오류별 진단·복구 순서 (0) | 2026.08.30 |
| 판다스 데이터프레임 값이 안 바뀔 때 SettingWithCopyWarning 해결법 (0) | 2026.08.29 |
| 파이썬 requests SSL 인증서 오류 해결 방법과 점검 순서 (0) | 2026.08.29 |
| 파이썬 UTF-8 디코딩 오류 해결|UnicodeDecodeError 원인과 인코딩 설정 (0) | 2026.08.29 |