Files
obsidian/infra/platform/ollama.md
kaffa 08313cd4d4 infra/platform/ollama: add GPU and VRAM details
GTX 1080 Ti(11GB VRAM, CUDA 12.4) GPU 가속 확인. gemma4:e4b 로드 시
10GB 점유(89%), 동시 로드 한계·GPU 공유 제약·36 tok/s 실측치 추가.
infra-hosts.md §GPU 링크.
2026-04-21 12:29:11 +09:00

4.1 KiB

title, updated, tags
title updated tags
Ollama — LLM 로컬 추론 엔드포인트 2026-04-21
infra
llm
ollama
inference
gpu

개요

kr1 호스트에 직접 설치된 Ollama 런타임. 컨테이너 아닌 호스트 systemd service. GTX 1080 Ti GPU 가속 (CPU 추론 아님). tailnet 전체에서 단일 엔드포인트로 공유.

항목
위치 incus-kr1 호스트 (컨테이너 아님)
서비스 ollama.service (systemd, User=ollama, Restart=always)
버전 0.20.2
바이너리 /usr/local/bin/ollama
GPU NVIDIA GeForce GTX 1080 Ti (VRAM 11GB, CUDA 12.4, 드라이버 550.163.01) — infra-hosts#GPU 참조
엔드포인트 http://100.84.111.28:11434 (Tailscale IP, tailnet 공유)
바인딩 0.0.0.0:11434 (OLLAMA_HOST=0.0.0.0)
인증 없음 (tailnet 내부 전용, WAN 노출 아님)
모델 저장소 /usr/share/ollama/.ollama (12GB 사용)
Keep-alive 무제한 (OLLAMA_KEEP_ALIVE=-1) — 모델 언로드 안 함

설치된 모델

모델 크기 Capability 용도
qwen3:4b-instruct-2507-q4_K_M 2.5 GB tools 경량 tool-calling, 빠른 응답
gemma4:e4b 9.6 GB tools, thinking, vision, audio 멀티모달 + tool-calling, 에이전트 기본값

Capability는 /api/show 응답의 capabilities 필드로 확인.

GPU 자원

  • gemma4:e4b (9.6 GB 모델) 로드 시 VRAM 10,062 MiB / 11,264 MiB (89%) 점유.
  • OLLAMA_KEEP_ALIVE=-1 때문에 한 번 로드되면 메모리 상주 — 자동 언로드 없음.
  • 모델 동시 로드 한계: gemma4:e4b 로드 상태에서 qwen3:4b를 추가 로드하려면 VRAM 부족 → 하나를 수동 언로드해야 함 (/api/generate 호출 시 keep_alive: 0).
  • 현재 GPU 공유 사용 프로세스는 Ollama 단독. K3s나 Incus 컨테이너가 GPU를 쓰지 않음.
  • 관측 처리 속도: gemma4:e4b tool-calling 루프에서 약 36 tok/s (2026-04-21 실측).

접근 방법

모델 목록

curl -sS http://100.84.111.28:11434/api/tags | jq

Tool-calling chat (OpenAI-style)

curl -sS http://100.84.111.28:11434/api/chat -d '{
  "model": "gemma4:e4b",
  "messages": [{"role":"user","content":"..."}],
  "tools": [ { "type":"function", "function": {...} } ],
  "stream": false,
  "options": {"temperature": 0.2, "num_ctx": 8192}
}'

모델 pull (필요 시)

ollama 사용자만 가능. kr1 호스트에서:

sudo -u ollama ollama pull <model>

검증된 용도

일시 용도 결과
2026-04-21 agent.py stdio 에이전트 루프 (gemma4:e4b, tools 2개, Obsidian 탐색) 6턴 만에 최종 답변 성공. tool calling·한국어 응답 정상. ~/experiments/ollama-agent/

보안

  • 바인딩은 0.0.0.0이지만 노출 범위는 tailnet에 한정. kr1 호스트의 외부 인터페이스(WAN)는 방화벽으로 차단. Tailscale을 통해서만 11434 포트 도달 가능.
  • 인증·TLS 없음. 별도 프록시를 붙이지 않음 (tailnet 신뢰 경계로 충분).
  • OpenClaw·ops-agent 등 다수 클라이언트가 공유할 경우 개별 API 키 구분 불가 → 사용처는 OpenMemory/Obsidian에 명시 기록.

운영 주의점

  • GPU를 다른 워크로드와 공유할 수 없음: 현재 VRAM이 거의 풀 점유 상태라 GPU를 쓰는 다른 컨테이너(예: docker-gpu Incus 이미지) 스케줄링 시 충돌 가능. 추가 GPU 워크로드는 OLLAMA_KEEP_ALIVE=0으로 Ollama 모델을 먼저 언로드해야 함.
  • kr1 호스트 자원(CPU/RAM)도 Ollama가 일부 점유. heimdall·brokkr·postgres-2·mariadb-2가 같은 호스트라는 점 유의.
  • OLLAMA_KEEP_ALIVE=-1이라 한 번 로드된 모델은 OOM 전까지 상주. 모델 전환 시 이전 모델 수동 언로드 필요.
  • 모델 저장소 /usr/share/ollama/.ollama 는 호스트 로컬 디스크. 백업 대상 아님 (모델은 재다운로드 가능).

참조