SSD Nodes Learn 🎉 VPS $5.50/aydan başlayan
Rehberler Matt ConnorYazan Matt Connor · Güncellendi 2026-08-13

Ollama modelini sürekli bellekte tutma yöntemi

Ollama varsayılan olarak 5 dakika sonra modelleri bellekten kaldırır. keep_alive parametresini systemd yapılandırması ile kalıcı hale getirerek model yükleme gecikmesini engelleyin.

Ollama modeli neden birkaç dakika sonra bellekten kaldırıyor?

Ollama, son istekten sonra modeli beş dakika boyunca bellekte tutar ve ardından serbest bırakır. Bir sonraki istek, ağırlıkları diskten tekrar okuyup RAM veya VRAM'e eşlemek zorunda kaldığı için ilk token gelmeden önce bir gecikme yaşanır. Sohbet arayüzlerinin veya kodlama yardımcılarının hızlı çalışıp bir süre sessiz kaldıktan sonra bir sonraki mesajda yavaşlamasının nedeni budur. Herhangi bir hata yoktur; boşta kalma zamanlayıcısı dolmuştur.

Bu zamanlayıcıya keep_alive adı verilir. Model bazlıdır ve her istek tamamlandığında yeniden başlar. Şu anda bir isteğe yanıt veren model asla bellekten kaldırılmaz, çünkü sunucu yalnızca aktif isteği olmayan modellerin süresini dolmuş kabul eder. Ağustos 2026 itibarıyla varsayılan süre beş dakikadır ve sunucunun yüklediği her model için geçerlidir.

keep_alive değerini ayarlamak için iki yer vardır: bireysel istek üzerinde veya sunucu varsayılanı olarak. Sunucu varsayılanının yeniden başlatmalarda kalıcı olmasını sağlayan yöntem systemd drop-in dosyasıdır. Bu kılavuz, Ollama'nın halihazırda bir servis olarak çalıştığını varsayar. Eğer çalışmıyorsa, Ollama'nın bir VPS üzerine kurulması ile başlayıp buraya geri dönün.

Şu anda hangi modeller yüklü ve ne zaman sona eriyorlar?

ollama ps
NAME        ID              SIZE      PROCESSOR    CONTEXT    UNTIL
qwen3:8b    500a1f067a9f    6.6 GB    100% GPU     4096       4 minutes from now

Boş çıktı, hiçbir modelin yüklü olmadığı anlamına gelir; bu durumda bir sonraki istek tam yükleme süresine tabi olur. PROCESSOR, ağırlıkların nereye yerleştirildiğini gösterir. 100% GPU ve 100% CPU net durumlardır. 25%/75% CPU/GPU gibi bir bölünme, modelin VRAM'e sığmadığını, bu nedenle bir kısmının işlemci üzerinde çalıştığını ve üretim hızının daha yavaş olduğunu belirtir.

UNTIL geri sayımı temsil eder ve 4 minutes from now gibi göreceli bir zaman dilimi yazdırır. Model, negatif bir keep_alive değeri ile yüklendiğinde Forever çıktısını verir. Sunucu boşaltma işlemini gerçekleştirirken oluşan kısa süre zarfında ise Stopping... çıktısını verir.

Sütun kümesi sürümler arasında değişiklik gösterdiğinden, bir betik içerisinde alanları saymak yerine başlık kısmını okuyun. Otomasyon gerektiren işlemler için API'ye danışın:

curl -s http://localhost:11434/api/ps

Her girdi, 2026-08-09T14:38:31.83753Z gibi mutlak bir zaman damgası olan expires_at değerini ve modelin GPU belleğinde bulunan kısmını ifade eden size_vram değerini taşır. size_vram değerinin 0 olması, modelin CPU üzerinde çalıştığı anlamına gelir.

Yeniden yüklemenin gerçek maliyeti

Tahmin yürütmeyin. Ollama, her yanıtta yükleme süresini load_duration olarak nanosaniye cinsinden bildirir.

sudo apt install -y jq
ollama stop qwen3:8b
curl -s http://localhost:11434/api/generate -d '{"model": "qwen3:8b", "prompt": "hi", "stream": false}' | jq '{load_duration, total_duration}'
curl -s http://localhost:11434/api/generate -d '{"model": "qwen3:8b", "prompt": "hi", "stream": false}' | jq '{load_duration, total_duration}'

İlk çağrı modeli yükler, bu nedenle load_duration değeri büyüktür. Saniye cinsinden okumak için 1000000000 değerine bölün. İkinci çağrı, model bellekteyken çalışır ve çok daha küçük bir sayı bildirir. Bu iki rakam arasındaki fark, zamanlayıcı dolduğunda her kullanıcının ödediği bedeldir ve keep_alive değerini değiştirmenin tek nedeni budur. Bu duraklamanın her iki tarafındaki üretim hızı için kendi sunucunuzda saniye başına token hızı nasıl ölçülür bölümüne bakın.

Bir Ollama modelini tek bir istekte bellekte tutma

İstekle birlikte keep_alive gönderin. Bu ayar, istek tamamlandığı andan itibaren ilgili model için geçerli olur.

curl -s http://localhost:11434/api/chat -d '{
  "model": "qwen3:8b",
  "messages": [{"role": "user", "content": "hello"}],
  "keep_alive": "30m"
}'

Dört farklı değer biçimi kabul edilir:

  • süre dizgisi: "30m", "24h", "90s"
  • saniye cinsinden okunan düz bir sayı: 3600
  • boşta kalma zaman aşımını tamamen devre dışı bırakan negatif bir değer: -1 veya "-1m"
  • isteğin tamamlanmasıyla birlikte modelin bellekten atılmasını sağlayan 0

İstek üzerindeki bir değer, sunucu varsayılanını her iki yönde de geçersiz kılar. Bu durum göründüğünden daha önemlidir: kendi keep_alive değerini gönderen bir istemci, sunucuda yapılandırdığınız her türlü ayarı geçersiz kılar.

Ayrıca hiçbir şey üretmeden de bir model yükleyebilirsiniz. Yalnızca model adını gönderin. Sunucu modeli yükler ve "done": true ile boş bir yanıt döndürür.

curl -s http://localhost:11434/api/generate -d '{"model": "qwen3:8b", "keep_alive": "30m"}'

Bu, yeniden başlatma sonrasında veya yeni bir model çekildikten sonra çalıştırılması gereken komuttur; böylece ilk gerçek kullanıcı isteği yükleme süresini beklemek zorunda kalmaz. CLI aynı işlemi bir bayrak ile gerçekleştirir:

ollama run --keepalive 30m qwen3:8b "hello"

OLLAMA_KEEP_ALIVE ile varsayılan olarak yüklü tutun

Sunucu, başlangıçta OLLAMA_KEEP_ALIVE değerini okur ve kendi değeri bulunmayan her model için bu değeri kullanır. İstek alanıyla aynı biçimleri kabul eder; dolayısıyla 30m, 3600 ve -1 değerlerinin tümü çalışır.

Buradaki kritik nokta, bu değişkenin hangi ortamda tanımlanması gerektiğidir. SSH oturumunuzda export OLLAMA_KEEP_ALIVE=30m komutunu çalıştırmak hiçbir sonuç vermez; çünkü paket kurulumu, sunucuyu kendi kullanıcısı ve kendi ortam değişkenleriyle bir systemd servisi olarak çalıştırır. Oturum açtığınız kabuk ile bu servis hiçbir zaman etkileşime girmez. Ayarın yok sayılıyor gibi görünmesinin en yaygın nedeni budur.

Bir systemd drop-in dosyası ile yeniden başlatma sonrası kalıcılık sağlama

sudo systemctl edit ollama.service

Düzenleyici iki yorum işaretiyle açılır. Bu işaretlerin arasına yazın: systemd, ikinci işaretin altına yazdığınız her şeyi yok sayar.

[Service]
Environment="OLLAMA_KEEP_ALIVE=30m"

Kaydetme işlemi /etc/systemd/system/ollama.service.d/override.conf dosyasını oluşturur. Bu, orijinal unit dosyasını düzenlemek yerine kullanılan bir drop-in dosyasıdır; dolayısıyla ollama.service dosyasını değiştiren bir Ollama paket güncellemesi, sizin ayarlarınıza dokunmaz. Drop-in dosyaları ve unit dosyaları sizin için yeniyse, systemd servis ve zamanlayıcı rehberi bu mekanizmanın işleyişini açıklar.

sudo systemctl daemon-reload
sudo systemctl restart ollama
systemctl show ollama --property=Environment

Son komut, servisin gerçekten çalışacağı ortam değişkenlerini yazdırır. Eğer OLLAMA_KEEP_ALIVE=30m bu satırda görünmüyorsa, drop-in dosyası devreye girmemiştir; bunun nedeni neredeyse her zaman eksik bir [Service] başlığı veya işaretin altına yazılmış satırlardır. Yeniden başlatma işlemi yüklü tüm modelleri bellekten atar, bu nedenle bir sonraki istek soğuk yükleme (cold load) olacaktır. Yukarıdaki ön yükleme (preload) çağrısı ile modeli tekrar hazır hale getirin.

Bir modeli bellekte tutmanın maliyeti

ollama ps içindeki SIZE sütunu, yalnızca bir istek sırasında değil, tüm boşta kalma süresi boyunca tutulan belleği ifade eder. 4-bit kuantizasyon ile 8B bir model yaklaşık 5 ila 6 GB yer kaplar. 27B bir model ise bambaşka bir konudur ve yalnızca CPU kullanan bir VPS üzerinde bir model çalıştırmanın bellek hesaplaması, modeli bellekte tutmaya karar vermeden önce üzerinde çalışılmaya değerdir. keep_alive değerini -1 olarak ayarladığınızda, modelin sunucudaki diğer her şeyden daha öncelikli olduğuna kalıcı olarak karar vermiş olursunuz. Küçük bir VPS üzerinde bu, veritabanınız, web uygulamanız ve derleme işlerinizle doğrudan bir takas anlamına gelir.

Tahminlere güvenmek yerine gerçek sayıları izleyin. Bir model yüklüyken bu komutu çalıştırın, ardından ollama stop işleminden sonra tekrar deneyin:

free -h

available sütunu, çekirdeğin yeni bir sürece hala verebileceği belleği gösterir. Bir NVIDIA GPU sunucusunda nvidia-smi aynı durumu VRAM için gösterir. Sunucuda bellek biterse, çekirdek alanı geri kazanmak için bir süreci sonlandırır:

sudo dmesg -T | grep -i "out of memory"

ollama adını içeren bir satır, model sunucusunun kurban olduğunu gösterir. Veritabanınızın adını içeren bir satır ise modelin kazandığını ve sizin için önemli olan bir şeyin kaybettiğini gösterir. Her iki sonuç da aynı karardan kaynaklanır: yeterli boş alanı olmayan bir sunucuda uzun bir keep-alive süresi.

Burada gözden kaçırılması kolay iki maliyet vardır. Daha uzun bir bağlam uzunluğu (context length), daha büyük bir KV cache (anahtar değer önbelleği, modelin üretim sırasında tuttuğu her bir belirteç dikkat durumu) ayırır ve bu önbellek, bellekte tutulan boyutun bir parçasıdır. 1'den büyük OLLAMA_NUM_PARALLEL değeri, her paralel yuva (slot) için bu önbelleği bir kez ayırır. Eğer tek bir model üzerinden birden fazla kişiye hizmet vermeyi planlıyorsanız, bellek boyutunu sadece ağırlıklar için değil, yuvalar için de hesaplayın.

Makul bir varsayılan değer: boş alanı olan bir sunucuda tek bir model -1 kullanabilir. Paylaşımlı bir sunucuda ise, çalışmayı bıraktığınızda belleğin geri kazanılabilmesi için istekleriniz arasındaki boşlukları kapsayan 30m gibi bir süre kullanılmalıdır.

Bir modeli anında bellekten kaldırma

ollama stop qwen3:8b

Komut herhangi bir çıktı döndürmez ve model ollama ps içerisinden silinir. Yüklenmemiş bir isim girilmesi durumunda couldn't find model "qwen3:8b" to stop hatası alınır. API formu, herhangi bir istem içermeyen ve keep_alive parametresi 0 olarak ayarlanmış bir istektir:

curl -s http://localhost:11434/api/chat -d '{"model": "qwen3:8b", "messages": [], "keep_alive": 0}'

Yanıt "done_reason": "unload" değerini içerir. Servisi yeniden başlatmak yerine bu yöntemi kullanın. systemctl restart ollama komutu da belleği boşaltır ancak yüklü olan diğer tüm modelleri siler ve çalışmakta olan tüm istekleri sonlandırır.

Tek bir sunucuda birden fazla model çalıştırma

OLLAMA_MAX_LOADED_MODELS, aynı anda kaç modelin yüklü kalacağını sınırlar; Ağustos 2026 itibarıyla varsayılan değer GPU başına üç veya CPU tabanlı sistemlerde toplam üçtür. Sınır model sayısını esas alsa da asıl kısıtlayıcı faktör bellektir; bu nedenle ikinci büyük bir model, üç sınırına ulaşılmadan çok önce bellek yetersizliği nedeniyle reddedilebilir.

Yeni bir model istendiğinde ve yeterli bellek bulunmadığında, zamanlayıcı yer açmak için yüklü modellerden birini bellekten kaldırır. Aktif isteği olmayan modeller öncelikli olarak seçilir; ancak -1 ile yüklenmiş bir model de dahil olmak üzere, zamanlayıcısı dolmamış bir model de sistemden çıkarılabilir. Dolayısıyla negatif bir keep_alive değeri, boşta kalma zaman aşımının olmadığı anlamına gelir. Bu ayar, ağırlıkları başka bir modelin isteğine karşı sabitlemez.

Bu karar, hata ayıklama (debug) seviyesinde günlüğe kaydedilir. Aynı drop-in dosyasına ikinci bir Environment="OLLAMA_DEBUG=1" satırı ekleyin, servisi yeniden başlatın ve günlükleri izleyin:

sudo journalctl -u ollama -f

Bir modelin yer açmak için kaldırıldığına dair bir satır, bunu tetikleyen isteğin hemen yanında yer alıyorsa, bu iki modelin bu makinede birlikte çalışamayacağı anlamına gelir. Çözüm, bu sunucudaki model sayısını azaltmak veya hızlı yanıt vermesi gereken model için uzun bir pencere süresi, nadiren çağırdığınız model için ise 0 kullanmaktır.

Gelecek sürümlerden daha uzun ömürlü rehberlik

Ollama sık sık güncellenir ve varsayılan ayarları değişebilir; bu nedenle sayıları ezberlemek yerine elinizdeki sürümü kontrol edin:

ollama --version
ollama serve --help

ollama serve --help, ilgili sürümün gerçekten okuduğu ortam değişkenlerini listeler; OLLAMA_KEEP_ALIVE de bunlar arasındadır. Sürümler boyunca geçerliliğini koruyan ve üzerine yapı kurabileceğiniz iki kural mevcuttur. İstek üzerindeki bir değer, sunucu varsayılanını geçersiz kılar. Ayrıca ollama ps, yapılandırma dosyasında ne yazarsa yazsın, yüklenen değerin ne olduğuna dair kesin bilgiyi verir.

Eğer sunucunuzu bir düzenleyici veya bir aracı (agent) yönetiyorsa, sunucuyu suçlamadan önce istemcinin ne gönderdiğini kontrol edin. Bir kodlama aracını kendi Ollama sunucunuza yönlendirme bölümü, bu istek ayarlarının nerede bulunduğunu açıklar.

FAQ

Ollama modelimi neden 5 dakika sonra bellekten kaldırıyor?

Beş dakika, Ollama'nın bir istek tamamlandığında başlattığı boşta kalma zamanlayıcısı olan keep_alive için varsayılan değerdir. Süre dolduğunda sunucu ağırlıkları bellekten siler; bu nedenle bir sonraki istekte model diskten tekrar yüklenir ve hissettiğiniz gecikme bu yükleme işleminden kaynaklanır. Bu süreyi tek bir istek için JSON gövdesinde "keep_alive": "30m" göndererek veya tüm sunucu için OLLAMA_KEEP_ALIVE ortam değişkenini kullanarak artırabilirsiniz.

Bir Ollama modelini kalıcı olarak bellekte nasıl tutabilirim?

Negatif bir değer kullanın: istek üzerinde "keep_alive": -1 veya sunucu için OLLAMA_KEEP_ALIVE=-1 değerini atayın. Bu durumda ollama ps komutu, UNTIL sütununda Forever değerini gösterecektir. Bu işlem yalnızca boşta kalma zamanlayıcısını kaldırır. Eğer başka bir model istenirse ve bellek yetersiz kalırsa, zamanlayıcı yer açmak için bu modeli yine de bellekten kaldıracaktır.

OLLAMA_KEEP_ALIVE neden yok sayılıyor?

Değişkeni nereye tanımladığınızı kontrol edin. systemctl show ollama --property=Environment komutunu çalıştırın; eğer değişken bu çıktıda görünmüyorsa sunucu onu hiç görmemiştir, çünkü shell içerisinde export edilen bir değişken systemd servisine ulaşmaz. Değişkeni sudo systemctl edit ollama.service ile ayarlayın, ardından sudo systemctl daemon-reload ve sudo systemctl restart ollama komutlarını çalıştırın. Diğer bir neden ise, isteğinde kendi keep_alive değerini gönderen ve sunucu varsayılanını geçersiz kılan bir istemcidir.

Ollama'yı yeniden başlatmadan belleği nasıl boşaltabilirim?

ollama stop qwen3:8b komutu, ilgili modeli anında bellekten kaldırır; sunucu ve bellekteki diğer tüm modeller çalışmaya devam eder. API üzerinden, herhangi bir istem (prompt) içermeyen ve "keep_alive": 0 değerine sahip bir istek gönderin; yanıt "done_reason": "unload" ile dönecektir. Modeli artık listelememesi gereken ollama ps komutu ile durumu doğrulayın.