본문 바로가기
C.W.K.
Stream
Lesson 01 of 05 · published

성능 튜닝

~22 min · ops, performance

Level 0Downloader
0 XP0/41 lessons0/11 achievements
0/120 XP to next level120 XP to go0% complete

의미 있는 다섯 환경변수

변수하는 일Default
OLLAMA_FLASH_ATTENTIONFlash Attention을 강제로 켜거나(1) 끄는(0) 스위치야. Ollama는 백엔드랑 장치가 지원하는 곳이면 이미 알아서 쓰고 있어. 그러니까 찾아서 켜야 하는 게 아니라 덮어쓰는 거야자동
OLLAMA_KV_CACHE_TYPEKV cache 양자화 (q8_0면 절반, q4_0면 1/4). Flash Attention이 있어야 하는데 이미 있어f16
OLLAMA_NUM_PARALLEL모델당 동시 request1
OLLAMA_MAX_LOADED_MODELS동시에 메모리에 있을 수 있는 모델 수3
OLLAMA_KEEP_ALIVERequest 후 모델 로드 유지 시간5m

macOS에서 persist

macOS에서 Ollama는 launchd가 띄워. 그래서 shell에서 export한 건 안 보여. launchctl setenv로 env를 박아두고 Ollama service를 재시작해야 그걸 집어 가.

Context window 수학

동시 request가 늘면 KV cache도 그만큼 배로 불어나. num_ctx=8192에 NUM_PARALLEL=4면 실제로는 32K짜리 KV cache를 쓰는 거야. OLLAMA_KV_CACHE_TYPE=q8_0이 그걸 반으로 줄여주고. 대부분 모델 default num_ctx는 4096 — 실전엔 8192나 16384로 올려, 메모리 봐가면서.

Code

macOS에 persistent 튜닝·bash
# 다섯 knob 설정 (launchd 통해 재시작 후에도 persist)
launchctl setenv OLLAMA_FLASH_ATTENTION 1
launchctl setenv OLLAMA_KV_CACHE_TYPE q8_0
launchctl setenv OLLAMA_NUM_PARALLEL 2
launchctl setenv OLLAMA_MAX_LOADED_MODELS 3
launchctl setenv OLLAMA_KEEP_ALIVE 30m

# Ollama 재시작해서 daemon이 새 env 픽업
osascript -e 'tell application "Ollama" to quit'
open -a Ollama

# Daemon이 보는지 확인
curl -s http://localhost:11434/api/version
ps eauwx | grep -i ollama | head -1   # process listing에서 env 확인
Linux (systemd) 버전·bash
# Systemd unit 편집 — 공식 install이 여기 둠:
sudo systemctl edit ollama.service
# [Service] 아래 추가:
#   Environment="OLLAMA_FLASH_ATTENTION=1"
#   Environment="OLLAMA_KV_CACHE_TYPE=q8_0"
#   Environment="OLLAMA_NUM_PARALLEL=2"
#   Environment="OLLAMA_MAX_LOADED_MODELS=3"
#   Environment="OLLAMA_KEEP_ALIVE=30m"

sudo systemctl daemon-reload
sudo systemctl restart ollama

External links

Exercise

머신에 다섯 env var 박아 (persistent — launchctl setenv 또는 systemd unit 편집). Ollama 재시작. 이제 이 손잡이들이 실제로 움직이는 두 가지를 재. warm decode 한 번을 빠르게 만드는 건 이 중에 없거든. (1) 7B 모델에 같은 prompt를 *cold*로 한 번, *warm*으로 한 번 재서 두 번째 호출에 OLLAMA_KEEP_ALIVE가 얼마를 벌어주는지 봐. (2) OLLAMA_KV_CACHE_TYPE을 안 걸었을 때랑 q8_0일 때 ollama ps의 상주 메모리를 적어. num_ctx는 차이가 보일 만큼 크게 잡고. warm decode가 진짜로 빨라졌다면 뭐가 또 바뀌었는지 적어둬. 이 변수들은 아니야.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인 — 댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.