SSD Nodes Learn Hosting plans →
Rehberler Matt ConnorYazan Matt Connor · Güncellendi 2026-08-27

Ollama modeli sürekli bellekte tutma yöntemi

Ollama varsayılan olarak 5 dakika sonunda modelleri bellekten kaldırır. Yeniden yükleme gecikmesini önlemek için keep_alive ayarını systemd üzerinden kalıcı yapın.

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 istekte ağırlıkların diskten tekrar okunması ve RAM veya VRAM'e eşlenmesi gerektiğinden, 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 sonraki mesajda yavaşlamasının nedeni budur. Herhangi bir arıza yoktur; boşta kalma zamanlayıcısı dolmuştur.

Bu zamanlayıcı keep_alive olarak adlandırılır. 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 ayarını yapmak için iki yer vardır: bireysel istek üzerinde veya sunucu varsayılanı olarak. Sunucu varsayılanının yeniden başlatmalardan sonra da korunması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, VPS üzerinde Ollama kurulumu 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ğeriyle 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 seti sürümler arasında değiştiği için, bir betik içerisinde alanları saymak yerine başlığı 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 o 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üklediği için 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ı süresi dolduğunda her kullanıcının ödediği bedeldir ve keep_alive ayarını değiştirmenin temel nedenidir. Bu farkın büyük bölümü disk okuma işlemidir; bu nedenle model dizinini ikinci bir birime taşıdıysanız, o birimin hızı her soğuk yükleme için alt sınırı belirler. Bu duraklamanın her iki tarafındaki üretim hızı için kendi sunucunuzda saniye başına token ölçümü yapma konusuna 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"
  • istek biter bitmez modeli bellekten kaldıran 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 şeyin önüne geçer.

Ayrıca herhangi bir üretim yapmadan da 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 komut, yeniden başlatma sonrasında veya yeni bir model çekildikten sonra çalıştırılacak komuttur; böylece ilk gerçek kullanıcı isteği yükleme süresini beklemez. CLI aracı 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 olmayan her model için bu değeri kullanır. İstek alanıyla aynı biçimleri kabul eder; bu nedenle 30m, 3600 ve -1 ifadelerinin tümü çalışır.

Buradaki kritik nokta, bu ortam değişkeninin hangi ortamda tanımlanması gerektiğidir. SSH oturumunuzda export OLLAMA_KEEP_ALIVE=30m komutunu çalıştırmak 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. Giriş kabuğunuz 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, yüklü birim dosyasını doğrudan düzenlemek yerine bir drop-in dosyası oluşturduğundan, ollama.service dosyasını değiştiren bir Ollama paket güncellemesi ayarlarınıza dokunmaz. Drop-in dosyaları ve birim dosyaları sizin için yeniyse, systemd servis ve zamanlayıcı kılavuzu 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 bu satırda OLLAMA_KEEP_ALIVE=30m eksikse, 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 çalıştırmanın bellek hesabı, modeli bellekte tutmaya karar vermeden önce mutlaka yapılmalıdır. keep_alive değerini -1 olarak ayarladığınızda, modelin sunucudaki diğer her şeyden daha öncelikli olduğuna ve kalıcı olarak bellekte kalacağına karar vermiş olursunuz. Küçük bir VPS üzerinde bu, veritabanınız, web uygulamanız ve derleme işlerinizden doğrudan feragat etmek 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 kontrol edin:

free -h

available sütunu, çekirdeğin yeni bir işleme ayırabileceği boş bellek miktarını gösterir. NVIDIA GPU bulunan bir sunucuda nvidia-smi aynı durumu VRAM için gösterir. Sunucunun belleği biterse, çekirdek alanı geri kazanmak için bir işlemi sonlandırır:

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

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

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 (key value cache, modelin üretim sırasında tuttuğu her bir belirteç için dikkat durumu) ayırır ve bu önbellek, bellekte tutulan boyutun bir parçasıdır. Ne kadar büyüyeceği num_ctx değerine bağlıdır; bu nedenle bağlam penceresini artırmak, bellekte tutulan modelin yalnızca yanıt verirken değil, tüm boşta kalma süresi boyunca kapladığı belleği de artırı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 yalnızca ağırlıklara göre değil, yuvalara göre hesaplayın.

Makul bir varsayılan değer: yeterli boş alanı olan bir sunucuda 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 pencere 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 prompt 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 taşır. 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 yalnızca CPU kullanılan bir sistemde üçtür. Sınır model sayısını esas alır ancak asıl kısıtlayıcı faktör bellektir; bu nedenle üç modele ulaşmadan çok önce ikinci büyük bir model için yer 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 modelleri tercih eder ve -1 ile yüklenmiş bir model de dahil olmak üzere, zamanlayıcısı dolmamış bir modeli dahi tahliye edebilir. Dolayısıyla negatif bir keep_alive değeri, boşta kalma zaman aşımı 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 izleyin:

sudo journalctl -u ollama -f

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

Gelecek sürümlerin ötesine geçen rehberlik

Ollama sık sık yeni sürümler yayınlar ve varsayılan ayarları değişebilir; bu nedenle sayıları ezberlemek yerine elinizdeki derlemeyi kontrol edin:

ollama --version
ollama serve --help

ollama serve --help, ilgili derlemenin 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 vardır. İstek üzerindeki bir değer, sunucu varsayılanını geçersiz kılar. Ayrıca ollama ps, bir yapılandırma dosyasının ne olması gerektiğini söylediğinden bağımsız olarak, nelerin yüklü olduğuna dair kesin bilgiyi sunar.

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 rehberi, bu istek ayarlarının nerede bulunduğunu açıklar.

FAQ

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

Beş dakika, bir istek tamamlandığında Ollama'nın başlattığı boşta kalma zamanlayıcısı olan keep_alive değerinin varsayılan süresidir. Bu 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 yeniden 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: İstek ü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. Başka bir model istendiğinde ve bellek yetersiz kaldığında, zamanlayıcı yer açmak için bu modeli yine de bellekten kaldırabilir.

OLLAMA_KEEP_ALIVE neden göz ardı ediliyor?

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 üzerinde 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. Bir diğer neden ise, sunucu varsayılanını geçersiz kılan ve istek üzerinde kendi keep_alive değerini gönderen bir istemci kullanıyor olmanızdır.

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 yüklü olan diğer tüm modeller çalışmaya devam eder. API üzerinden, istem içermeyen ve "keep_alive": 0 içeren 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.