AI Atlas
Başlangıç · ~2 dk okuma #keep_alive #ollama #inference

keep_alive

Ollama'da modelin bellekte kalma süresi

Ollama'nın, son istekten sonra modeli RAM/VRAM'de ne kadar süre yüklü tutacağını belirleyen ayar. Default 5 dakika; süre dolunca model boşaltılır ve sonraki istek soğuk başlar.

İKİ İSTEK, 8 DAKİKA ARAYLA0 dk2 dk4 dk6 dk8 dk10 dkistek 1istek 2keep_alive: 0boşaltıldısoğuk başlangıç5m (default)boşaltıldısoğuk başlangıçkeep_alive: -1anında yanıtbellekteyükleniyorSüre son istekten itibaren sayılır; ollama ps içindeki UNTIL sütunu kalan süreyi gösterir
Tanım

Bir modeli diskten okuyup RAM/VRAM'e yüklemek saniyeler sürer. Ollama bu yüzden modeli istekten sonra bir süre bellekte tutar; o süre boyunca gelen istekler anında yanıtlanır. Süre dolunca model boşaltılır ve bir sonraki istek yüklemeyi baştan bekler (cold start).

Ayar iki yerden yapılır:

  • İstek başına: /api/generate ve /api/chat gövdesinde keep_alive. Bu değer sunucu ayarını ezer.
  • Sunucu geneli: OLLAMA_KEEP_ALIVE ortam değişkeni.

Kabul edilen değerler (Ekim 2026 itibarıyla, default 5m):

DeğerAnlamı
"10m", "24h"Süre (Go duration formatı)
3600Sayı = saniye
-1 veya "-1m"Negatif = süresiz yüklü kalır
0Yanıttan hemen sonra boşalt

Komut satırında ollama run model --keepalive 1h ile, anında boşaltmak için ollama stop model ile yönetilir. Hangi modelin ne zamana kadar yüklü kalacağını ollama ps çıktısındaki UNTIL sütunu gösterir.

Benzetme

Restoranda ocağı açık tutmak. Sipariş gelmeye devam ediyorsa ocağı kapatıp her seferinde yeniden yakmak (cold start) zaman kaybı. Ama gece boyunca hiç müşteri gelmeyecekse açık ocak boşuna gaz yakar (bellek işgal eder). keep_alive "son siparişten sonra ocak kaç dakika açık kalsın" sorusunun cevabı.

Gerçek dünyadan örnek

Bir kod asistanı her 10-15 dakikada bir Ollama'ya istek atıyor. Default 5 dakika olduğu için model her seferinde boşalmış oluyor ve ilk yanıt, yükleme yüzünden belirgin şekilde gecikiyor.

Çözüm 1, sunucu geneli (macOS uygulaması): `` launchctl setenv OLLAMA_KEEP_ALIVE "1h" ` Ardından Ollama'yı yeniden başlat. Linux'ta systemd servisine Environment="OLLAMA_KEEP_ALIVE=1h"` eklenir.

Çözüm 2, istek başına: `` curl http://localhost:11434/api/generate -d '{ "model": "llama3.2", "keep_alive": "1h", "prompt": "Merhaba" }' ``

Tersi: tek seferlik bir toplu işten sonra belleği hemen geri almak istiyorsan "keep_alive": 0 gönder.

Kod örnekleri
Ollama · modeli önceden yükle, süresiz tut, sonra boşalt bash
# Boş prompt = sadece yükle (preload). -1 = süresiz kal.
curl http://localhost:11434/api/generate -d '{"model": "llama3.2", "keep_alive": -1}'

# Ne yüklü, ne zamana kadar? (UNTIL sütunu)
ollama ps

# Belleği hemen geri al
ollama stop llama3.2
# ya da API ile:
curl http://localhost:11434/api/generate -d '{"model": "llama3.2", "keep_alive": 0}'
Ollama · sunucu geneli varsayılanı değiştirmek bash
# Tek seferlik (terminalden başlatılan sunucu)
OLLAMA_KEEP_ALIVE=30m ollama serve

# Ortam değişkeninde birimsiz sayı da olur: saniye olarak okunur
OLLAMA_KEEP_ALIVE=1800 ollama serve
Ne zaman kullan
  • Seyrek ama düzenli istekler (IDE asistanı, Slack botu) — süreyi uzat ki her istek soğuk başlamasın
  • Tek modeli sürekli kullanan sunucu — -1 ile kalıcı tut
  • Benchmark — ölçümden önce modeli preload et, yükleme süresi sonuçlara karışmasın
  • Toplu iş bitince — 0 ile belleği hemen başka işe bırak
Ne zaman kullanma
  • Bellek kıt ve birden fazla model dönüşümlü kullanılıyor — -1 diğer modellerin yerini tutar
  • Dizüstünde pil ve RAM önemliyse — default 5 dakika makul bir denge
  • llama.cpp sunucusu — keep_alive Ollama'ya özgü; llama.cpp'de karşılığı --sleep-idle-seconds (default -1 = kapalı, model süreç açık kaldıkça yüklü)
Sık yapılan hatalar

API'deki değer env'i ezer

OLLAMA_KEEP_ALIVE=-1 ayarladın ama bir istemci her istekte keep_alive: "5m" gönderiyorsa model yine 5 dakika sonra boşalır. İstek başına değer her zaman kazanır; istemcinin ne gönderdiğine bak.

Birimsiz string

JSON'da "keep_alive": 300 (sayı) 300 saniye demektir; "keep_alive": "300" (birimsiz string) ise Go duration olarak ayrıştırılamaz ve hata verir. Ya sayı ya "300s" yaz.

Süresiz tutmak = belleği kilitlemek

Yeni bir model için yer yoksa Ollama istekleri kuyruğa alır ve boşta kalan modelleri boşaltarak yer açar. Aynı anda yüklü model sayısını OLLAMA_MAX_LOADED_MODELS sınırlar (default: GPU sayısı × 3, CPU'da 3). Büyük bir modeli -1 ile tutmak, diğer modellerin daha az belleğe sığmasına ya da CPU'ya kaymasına yol açabilir.