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

VPS uzerinde Ollama ve llama.cpp arasindaki farklar

VPS sunucunuzda LLM calistirmak icin Ollama ile llama.cpp arasindaki farklari inceleyin. CPU tabanli sistemlerde RAM tasarrufu ve model quantisation secimini ogrenin.

Ollama ve llama.cpp: hangi katmanı çalıştırmak istiyorsunuz?

Ollama ve llama.cpp, soruda ima edildiği gibi birbirinin rakibi değildir. llama.cpp bir çıkarım motorudur: bir model dosyasını yükler ve istemi token'lara dönüştürür. Ollama ise bu motorun üzerinde çalışan bir model yöneticisi, arka plan daemon'ı ve HTTP API'sidir. Ollama'nın README dosyası, 2 Ağustos 2026 itibarıyla llama.cpp'yi hala çıkarım altyapısı olarak listelemektedir. Dolayısıyla asıl soru hangisinin daha hızlı olduğu değil, VPS üzerinde hangi katmanla işlem yapmak istediğinizdir.

Modelleri isme göre getiren ve müdahale gerektirmeden çalışmaya devam eden bir servis istiyorsanız Ollama'yı çalıştırın. Sunucunuz küçükse ve tam olarak hangi model dosyasını, hangi bağlam boyutunu ve kaç iş parçacığı (thread) kullanacağınızı seçmeniz gerekiyorsa llama.cpp'yi doğrudan çalıştırın; çünkü küçük bir VPS üzerinde bu ayarların her biri, sahip olmadığınız bellekten harcar.

Her projenin gerçekte ne olduğu

llama.cpp, ggml kütüphanesi üzerine inşa edilmiş bir transformer çıkarım (inference) C ve C++ uygulamasıdır. GGUF dosyalarını okur. GGUF (GGML universal file format), modelin çalışması için gereken ağırlıkları, belirteçleyiciyi (tokeniser) ve meta verileri içeren tek dosyalık bir kapsayıcıdır. Proje, farklı işler için ayrı ikili dosyalar (binaries) sunar. llama-server bir HTTP sunucusudur, llama-cli etkileşimli bir komut satırı istemcisidir ve llama-bench iş hacmini (throughput) ölçer. Sürümler, anlamsal sürümleme yerine yapı numarası ile etiketlenir. Mevcut etiket, 2 Ağustos 2026 tarihinde yayınlanan b10224'tür ve neredeyse her iş günü yeni bir etiket yayınlanır.

Ollama bir Go programıdır. ollama serve ile başlatılan bir arka plan servisi (daemon), modelleri yükler ve HTTP isteklerini yanıtlar; bir komut satırı istemcisi ise bu servis ile iletişim kurar. Her ikisinin arkasında, önceden paketlenmiş modelleri barındıran ollama.com adresindeki bir kayıt defteri bulunur. Ollama anlamsal sürümleme kullanır ve v0.32.5 sürümü 27 Temmuz 2026 tarihinde yayınlanmıştır. ollama pull, bir GGUF dosyasını bir istem şablonu ve bir dizi varsayılan parametre ile birlikte getirir, ardından Linux üzerinde /usr/share/ollama/.ollama/models dizininde saklar.

Bu paketleme, aradaki temel farktır. Ollama; nicemleme (quantisation), şablon ve bağlam uzunluğu (context length) kararlarını sizin yerinize verir ve hatırlamanız gereken tek bir isim sunar. llama.cpp ise hiçbir şeye karar vermez ve size bayraklar (flags) sunar.

Eksen 1: model ve nicemleme kontrolü

Nicemleme (quantisation), her ağırlığı 16 veya 32 bitten 4, 5 veya 8 bite düşürür. 8 milyar parametreli bir modelin sıradan bir VPS'in RAM'ine sığmasını sağlayan budur. GGUF isimlendirmesi, düzeni bildiğinizde okunabilir hale gelir: Q4_K_M, 4-bit K-nicemleme ve orta boyutu ifade eder. Daha yüksek bir sayı daha fazla hassasiyet korur ancak daha fazla bellek tüketir.

ChartMeta-Llama-3.1-8B-Instruct GGUF file size by quantisation (GiB)
The data behind this chart
[
  {
    "label": "Q2_K",
    "file_size_gib": 2.96
  },
  {
    "label": "Q3_K_M",
    "file_size_gib": 3.74
  },
  {
    "label": "Q4_K_M",
    "file_size_gib": 4.58
  },
  {
    "label": "Q5_K_M",
    "file_size_gib": 5.34
  },
  {
    "label": "Q6_K",
    "file_size_gib": 6.14
  },
  {
    "label": "Q8_0",
    "file_size_gib": 7.95
  }
]

Bunlar, 2 Ağustos 2026 tarihinde Hugging Face üzerindeki bartowski/Meta-Llama-3.1-8B-Instruct-GGUF deposunda okunan ve bayttan GiB'a dönüştürülen yayınlanmış dosya boyutlarıdır. Tek bir modelin 6 adet derlemesi mevcuttur; en küçüğü 2.96 GiB iken en büyüğü 7.95 GiB'dır. Yaygın varsayılan olan Q4_K_M ise 4.58 GiB'dır. 4 GiB'lık bir VPS üzerinde bu tek seçim, modelin yüklenip yüklenmeyeceğini belirler.

llama.cpp ile dosya adını siz belirlersiniz, dolayısıyla ilgili satırı kendiniz seçersiniz.

llama-server -m ~/models/Meta-Llama-3.1-8B-Instruct-Q4_K_M.gguf \
  -c 4096 -t 4 --host 127.0.0.1 --port 8080

-c token cinsinden bağlam boyutudur, -t iş parçacığı sayısıdır ve -ngl kaç katmanın GPU'ya aktarılacağını belirler (sadece CPU olan bir sunucuda 0 olmalıdır). Sizin yerinize hiçbir şey tahmin edilmez.

Ollama ile nicemleme, çektiğiniz etiketle birlikte gelir ve ollama ls diskte fiilen neye sahip olduğunuzu gösterir. Kayıt defterinde istediğiniz derleme bulunmuyorsa, bir GGUF dosyasını kendiniz içe aktarın. Bir Modelfile yazın:

FROM ./Meta-Llama-3.1-8B-Instruct-Q4_K_M.gguf
PARAMETER num_ctx 4096

Ardından derleyin ve sonucu kontrol edin:

ollama create llama31-q4 -f ./Modelfile
ollama ls

Bağlam uzunluğu, kullanıcıları yanıltan ayardır. Ollama varsayılan değerini mevcut VRAM'e göre seçer ve GPU'su olmayan bir sunucu en küçük kategoriye düşer: 4096 token. Sisteme 20.000 token'lık bir belge gönderdiğinizde, fazladan token'lar model onları görmeden önce atılır; bu nedenle model, sadece yarısını okuduğu bir dosya hakkında kendinden emin bir şekilde yanlış cevap verir. Bu değeri daemon üzerinde OLLAMA_CONTEXT_LENGTH ile veya bir Modelfile içinde PARAMETER num_ctx ile artırın. llama.cpp'nin de güvenilir bir varsayılan değeri yoktur. -c değerini açıkça ayarlayın ve neyi yapılandırdığınızı bilin.

Kimsenin göstermediği bellek hesabı

Model dosyası maliyetin tamamı değildir. KV cache (anahtar/değer önbelleği), bağlamın her bir belirteci (token) için katman başına bir girdi tutar ve konuşma uzadıkça bu miktar artar.

Llama 3.1 8B için hesaplama yapalım. Model 32 katmana, 8 anahtar/değer başlığına ve 128'lik bir başlık boyutuna sahiptir. Her belirteç, f16 formatında 2 baytlık hem bir anahtar hem de bir değer saklar; yani katman başına 2 x 8 x 128 x 2 = 4096 bayt. 32 katman boyunca bu, belirteç başına 128 KiB eder. Dolayısıyla 4096 belirteçlik bir bağlam 512 MiB, 32.768 belirteçlik bir bağlam ise 4 GiB maliyet oluşturur.

Bu durumda, 4k bağlamlı bir Q4_K_M 8B model, ağırlıklar için yaklaşık 4.58 GiB, yaklaşık 0.5 GiB önbellek ve çalışma zamanının kendisi için alana ihtiyaç duyar. Bu model 4 GiB RAM'e sığmaz. 8 GiB RAM'e ise çalışma payı bırakacak şekilde sığar. Aynı 8 GiB'lık sistemde bağlamı 32k'ya yükseltirseniz, sadece önbellek tüm boş alanı tüketir. Model yüklendiği sırada free -h ile canlı olarak izleyin ve ölçmediğiniz hiçbir tahmine güvenmeyin.

Ollama bu durumu katlar. OLLAMA_NUM_PARALLEL varsayılan olarak 1 değerindedir ve bir modelin ihtiyaç duyduğu bellek, bu sayı ile bağlam uzunluğunun çarpımı oranında ölçeklenir. Her ikisini de aynı anda yükseltirseniz, daemon sessizce beklediğinizden birkaç kat daha fazla RAM talep eder.

Eksen 2: yönetmeniz gereken daemon

Ollama kurulum betiği bir systemd birimi yazar, bir ollama sistem kullanıcısı oluşturur ve servisi etkinleştirir. Bunların hiçbirini yazmanıza gerek kalmadan yaşam döngüsü yönetimine sahip olursunuz. Yapılandırma systemd üzerinden gerçekleştirilir:

sudo systemctl edit ollama
[Service]
Environment="OLLAMA_CONTEXT_LENGTH=8192"
Environment="OLLAMA_KEEP_ALIVE=30m"
sudo systemctl daemon-reload
sudo systemctl restart ollama
journalctl -e -u ollama

OLLAMA_KEEP_ALIVE, bir CPU VPS üzerinde başka her yerden daha fazla önem taşır. Modeller varsayılan olarak 5 dakika boyunca bellekte tutulur ve ardından bellekten boşaltılır. Bir sonraki istek, yanıt verebilmek için tüm dosyayı diskten tekrar okumak zorundadır; bu nedenle 4.58 GiB boyutundaki bir yeniden yükleme, yavaş depolama birimlerinde iki saniyelik bir yanıtı otuz saniyeye çıkarır. Uzun bir keep-alive süresi gecikmeyi düzeltir ve RAM'i kalıcı olarak kullanır. Her ikisi de gerçek maliyetlerdir. Hangisinin daha az zarar verdiğini seçin.

llama.cpp size bir daemon sunmaz, bu yüzden birimi /etc/systemd/system/llama-server.service olarak kendiniz yazarsınız:

[Unit]
Description=llama.cpp server
After=network-online.target

[Service]
ExecStart=/usr/local/bin/llama-server -m /srv/models/model-Q4_K_M.gguf -c 4096 -t 4 --host 127.0.0.1 --port 8080
Restart=always
RestartSec=3
User=llama

[Install]
WantedBy=multi-user.target

Bunu sudo systemctl enable --now llama-server ile etkinleştirin. Süreç, modeli tüm yaşam döngüsü boyunca bellekte tutar. Boşta kaldığında hiçbir şey bellekten boşaltılmaz; bu da yeniden yükleme sürprizi yaşanmayacağı ve servisi durdurmak dışında belleği geri kazanmanın bir yolu olmadığı anlamına gelir. Birim yazmak sizin için yeni bir konuysa, bu kendi servislerinizi bir VPS üzerinde systemd ile çalıştırma ile aynı kalıptır.

Eksen 3: Uygulamanızın iletişim kuracağı API

Bu eksen oldukça daraldı. Her iki proje de artık OpenAI sohbet formatını desteklediğinden, çoğu istemci kütüphanesi yalnızca temel URL değişikliği yapılarak her iki projeyle de çalışabilmektedir.

Ollama, 127.0.0.1:11434 üzerinde dinleme yapar. OpenAI uyumlu rotası http://localhost:11434/v1/chat/completions şeklindedir ve bunun yanı sıra /api/chat adresinde yerel bir API bulundurmaya devam eder. Anthropic uyumlu bir rota da belgelenmiştir.

curl -X POST http://localhost:11434/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{"model": "llama31-q4", "messages": [{"role": "user", "content": "Say this is a test"}]}'

llama-server, 127.0.0.1:8080 üzerinde dinleme yapar ve /v1/chat/completions, /v1/completions ve /v1/embeddings servislerinin yanı sıra kendi /completion uç noktasını ve yerleşik bir web arayüzünü sunar. Ayrıca Ollama'da bulunmayan operasyonel rotaları da dışa açar: hazır olma durumu kontrolü için /health, yüklü modelin ayarları için /props, her bir istek yuvasının ne yaptığına dair /slots ve Prometheus formatında /metrics. Eğer bu servisi izlemeyi planlıyorsanız, kararınızı muhtemelen bu fark belirleyecektir.

Her iki sunucu da sizin yerinize kimlik doğrulamasını etkinleştirmez. Her ikisi de güvenlik gerekçesiyle varsayılan olarak loopback adresini kullanır. Bu servislere bir SSH tüneli üzerinden veya bir reverse proxy arkasından erişin; 11434 veya 8080 portlarını asla internete açmayın.

Sadece CPU içeren bir VPS'in gerçek kapasitesi

Sadece CPU içeren bir VPS, küçük modelleri yavaş çalıştırır. Dürüst özet budur; faydalı olan kısım ise sınırın nerede olduğunu bilmektir. Herhangi bir tasarım yapmadan önce ölçüm yapın:

llama-bench -m ~/models/Meta-Llama-3.1-8B-Instruct-Q4_K_M.gguf -p 512 -n 128

pp sütunu istem işleme hızını, tg sütunu ise saniyedeki token cinsinden token üretim hızını gösterir. Paylaşımlı bir vCPU planında, Q4_K_M formatındaki 8B bir model genellikle tg için düşük tek haneli değerler verir. İstem işleme kısmı en çok zorlayan bölümdür: tüm istem, ilk çıktı token'ı görünmeden önce işlenir; bu nedenle uzun bir sistem istemi, her bir istekte bekleme süresini artırır.

CPU üzerinde kullanılabilir olanlar: sınıflandırma, veri çıkarma, kısa özetleme veya yönlendirme yapan 1B ile 4B arası modeller. Yanıtlar saniyeler içinde gelir ve bellek miktarı standart bir plana sığar. CPU üzerinde kullanılamayacak olanlar: okuma hızında etkileşimli sohbet, kodlama asistanları, uzun doküman çalışmaları veya arka arkaya birçok çağrı yapan bir aracı döngüsü içeren herhangi bir işlem. Her biri dört saniye süren on iki çağrılık bir döngü, herhangi bir çıktı üretmeden önce bir dakika sürer.

Rakamlar beklentiyi karşılamadığında iki çıkış yolu vardır. Sorun eşzamanlılık ise, yani birçok kullanıcı aynı anda tek bir modele erişiyorsa, motor tercihi değişir ve eşzamanlı sunum için Ollama ile vLLM karşılaştırması bu konuyu ele alır. Sorun ham hız ise, çözüm GPU içeren bir VPS kullanmaktır; burada -ngl bir anlam ifade etmeye başlar. Her ikisinden önce donanım için bir temel performans ölçümü yapın, çünkü disk ve bellek bant genişliği yükleme süresini en az CPU kadar etkiler. Tekrarlanabilir bir VPS kıyaslaması için harcayacağınız bir saate değer.

llama.cpp kurulumu ve belirli bir sürüme sabitleme

Her iki proje de haftalık olarak güncellendiği için dağıtımını yaptığınız sürümü not edin. Yukarı akış (upstream) tek satırlık komutu mevcut sürümü kurar:

curl -LsSf https://llama.app/install.sh | sh
llama serve -hf ggml-org/Qwen3.5-0.8B-GGUF

Belirli bir sürümü sabitlemek için bunun yerine yayınlar sayfasından önceden derlenmiş tarball dosyasını alın. 2 Ağustos 2026 itibarıyla b10224 sürümü güncel etikettir:

curl -LO https://github.com/ggml-org/llama.cpp/releases/download/b10224/llama-b10224-bin-ubuntu-x64.tar.gz
tar xf llama-b10224-bin-ubuntu-x64.tar.gz
find . -type f -name 'llama-server'

Veya aynı etiketi kaynak koddan derleyin:

sudo apt update && sudo apt install -y build-essential cmake git libssl-dev
git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp
git checkout b10224
cmake -B build
cmake --build build --config Release -j $(nproc)

libssl-dev, HTTPS özellikleri için belgelenmiş bağımlılıktır. Derleme işlemi birkaç dakika sürer ve en küçük planların sunduğundan daha fazla RAM gerektirir; bu nedenle küçük sunucunuzda bellek yetersiz kalırsa daha büyük bir makinede derleme yapın ve ikili dosyaları kopyalayın.

Ollama kurulumu ve belirli bir sürüme sabitleme

curl -fsSL https://ollama.com/install.sh | OLLAMA_VERSION=0.32.5 sh
ollama -v

Betik OLLAMA_VERSION dosyasını okur; böylece bugün yayınlanan sürümü almak yerine, doğrulanmış bir sürümü sabit tutabilirsiniz. v0.32.5 sürümü 27 Temmuz 2026 tarihinde yayınlanmıştır. Bir betiği doğrudan kabuğa yönlendirmek (pipe) istemiyorsanız, manuel kurulum yolu da mevcuttur:

sudo rm -rf /usr/lib/ollama
curl -fsSL https://ollama.com/download/ollama-linux-amd64.tar.zst | sudo tar x -C /usr
ollama -v

Manuel kurulum yöntemi systemd birimini veya servis kullanıcısını oluşturmaz, bu yüzden bunları kendiniz eklemeniz gerekir. Bir VPS üzerinde tam Ollama kurulumu kılavuzu, bu servis kurulumu adımını detaylıca açıklamaktadır.

Hata modları ve karşılaşacağınız dizeler

Ollama modeli yüklemeyi reddediyor. ollama run şu biçimde bir satır döndürür:

Error: model requires more system memory (5.6 GiB) than is available (3.2 GiB)

Ollama, yükleme öncesinde boyutu kontrol eder; bu nedenle işlem hızlıca başarısız olur ve nedenini belirtir. Bir alt kuantizasyon satırına geçin, bağlam uzunluğunu (context length) düşürün veya daha küçük bir model seçin.

llama.cpp başarısız olmuyor ancak çok yavaş çalışıyor. llama.cpp, GGUF dosyalarını varsayılan olarak bellek eşlemeli (memory-map) kullanır; bu yüzden RAM'den daha büyük bir dosya bile çalışmaya başlar. Çekirdek, her token için ağırlıkları diskten belleğe alıp çıkarır (paging) ve disk kullanımı yüzde 100'e ulaştığında üretim hızı token başına saniyelere düşer. Gerçek bir bellek tahsisini zorunlu kılmak ve performans düşüşü yerine işlemin hemen başarısız olmasını sağlamak için --no-mmap parametresini kullanın. Çekirdek devreye girdiğinde, dmesg nedenini şu şekilde gösterir:

Out of memory: Killed process 1234 (llama-server)

Model dosyası hiçbir şekilde yüklenmiyor. Motorunuzdan daha yeni bir model ailesi için oluşturulmuş bir GGUF dosyası, tanımadığı mimariyi belirten bir hata verir:

error loading model architecture: unknown model architecture: 'qwen3next'

Çözüm, farklı bir dosya değil, motor yükseltmesidir. Bu, sürüm sabitlemenin (pinning) bedelidir ve yapı numarasını not etmenizin nedeni budur. Hangi sürümden yükseltme yaptığınızı bilmeniz gerekir.

API yerel olarak yanıt veriyor ancak uygulamanızdan yanıt alamıyorsunuz. Ollama varsayılan olarak 127.0.0.1:11434 adresine bağlanır, bu nedenle başka bir ana bilgisayar "connection refused" hatası alır. OLLAMA_HOST=0.0.0.0:11434 değişkenini yalnızca systemctl edit ollama ile birlikte, port bir güvenlik duvarı veya özel ağ arkasında kaldığında ayarlayın; çünkü API'nin önünde herhangi bir kimlik doğrulama mekanizması bulunmaz.

Duraklamadan sonraki ilk yanıt çok yavaş. 5 dakikalık boşta kalma süresi dolduğunda model bellekten atılmıştır ve tekrar diskten okunuyordur. İstekten hemen önce çalıştırılan ollama ps komutu hiçbir şeyin yüklü olmadığını gösterir ve bu durumu doğrular. OLLAMA_KEEP_ALIVE değerini yükseltin.

Peki hangisini çalıştırmalısınız?

Modellerin sizin yerinize yönetilmesini ve herhangi bir ek çaba gerektirmeden OpenAI uyumlu bir uç nokta (endpoint) istiyorsanız Ollama çalıştırın. İlk kurulumlar ve model tercihinin sürekli değişeceği durumlar için en uygun varsayılan budur.

Bellek kısıtlı olduğunda ve kuantizasyon (quantisation) satırını kendiniz seçmeniz gerektiğinde, izleme için /health, /slots ve /metrics özelliklerine ihtiyaç duyduğunuzda veya Ollama tarafından sunulmayan bir bayrağa (flag) gereksinim duyduğunuzda doğrudan llama.cpp çalıştırın. Modelin zar zor sığdığı bir VPS üzerinde en dürüst seçenek budur; çünkü modelin sığmasını sağlayan ayarlar, Ollama'nın sizin adınıza seçtiği ayarların aynısıdır.

Her ikisini birden çalıştırmak normaldir. Denemeler için Ollama, üretime aldığınız ve yerinden kıpırdamasını istemediğiniz tek bir model için ise llama.cpp kullanın.

FAQ

Ollama sadece llama.cpp etrafında bir sarmalayıcı mıdır?

Yakın, ancak bu sarmalayıcı gerçek işlevler sunar. Ollama'nın README dosyası, llama.cpp'yi çıkarım (inference) arka ucu olarak listeler (2 Ağustos 2026 tarihinde kontrol edilmiştir). Ollama bunun üzerine bir model kayıt defteri, sohbet mesajlarını bir isteme dönüştüren şablon sistemi, varsayılan örnekleme parametreleri, boşta kaldığında bellekten boşaltma yapan bir daemon ve bir HTTP API ekler. Aynı ayarlarda saniye başına üretilen token sayısını karşılaştırdığınızda, aslında aynı motoru kendisiyle kıyaslıyorsunuz demektir. Seçim yapmanız gereken nokta, yönetim katmanıdır.

Sadece CPU içeren bir VPS üzerinde hangisi daha hızlıdır?

Aynı motoru kullandıkları için; aynı model dosyası, kuantizasyon, bağlam (context) boyutu ve iş parçacığı (thread) sayısı ile birbirlerine yakın sonuçlar verirler. Kullanıcıların bildirdiği farklar genellikle motordan değil, çoğunlukla bağlam uzunluğu ve iş parçacığı sayısı gibi farklı varsayılan ayarlardan kaynaklanır. Herhangi bir yayınlanmış veriye inanmadan önce llama-bench -m <file> -p 512 -n 128 ile ölçüm yapın ve kendi sunucunuzda tg sütununu karşılaştırın.

Ollama ile kendi GGUF dosyamı kullanabilir miyim?

Evet. Dosyayı sunucuya yerleştirin, ilk satırı FROM ./your-model.gguf olan bir Modelfile oluşturun, num_ctx gibi ihtiyacınız olan PARAMETER satırlarını ekleyin ve ardından ollama create your-name -f ./Modelfile komutunu çalıştırın. ollama ls, bu modeli kayıt defterinden çektiklerinizin yanında listeleyecektir. Kayıt defterinde bulunmayan bir kuantizasyon türünü bu şekilde kullanabilirsiniz.

8B bir model için ne kadar RAM gerekir?

Dosya boyutunu, KV önbelleğini ve çalışma zamanı gereksinimlerini hesaba katın. Llama 3.1 8B modelinin Q4_K_M sürümü diskte yaklaşık 4.58 GiB yer kaplar ve 4096 token'lık bir bağlam yaklaşık 512 MiB önbellek ekler; bu nedenle 8 GiB RAM rahat bir kullanım sağlar, 4 GiB ise yeterli değildir. Önbellek, bağlam boyutuyla birlikte ölçeklenir: aynı model 32,768 token'lık bir bağlamda tek başına yaklaşık 4 GiB önbelleğe ihtiyaç duyar. Ollama kullanırken, gereksinimin OLLAMA_NUM_PARALLEL ile de ölçeklendiğini unutmayın.

#ollama#llama-cpp#local-llm#self-hosted-ai#gguf