vLLM vs Ollama @RTX 4070 Ti SUPER
Tek kullanıcı için Ollama ölçtüğüm her eksende vLLM'i geçti: %28 daha hızlı üretim, 1,9 kat prefill, VRAM'de 2,5 kat bağlam, 3 saniyede açılış ve token başına daha az enerji.
- Test tarihi
- Kurulum
GeForce RTX 4070 Ti SUPER 16 GB — Proxmox sanal makinesi (GPU passthrough)PCIe passthrough ile Proxmox VE konuğu, Ubuntu 24.04, NVIDIA 595 açık sürücü · Intel Core i5-13400 sunucu; konukta 8 vCPU · Konukta 32 GB; sunucuda 64 GB DDR5
- Çalışma ortamı
- vLLM 0.29.0 (GGUF eklentisi) ve Ollama 0.34.1
- Modeller
Qwen3.8-27B GSQ-RCOISTA IQ3_Stest edilen
Karar
Ollama. vLLM'in asıl gücü — çok sayıda eşzamanlı istek — tek kullanıcılı, yalnızca gerektiğinde açtığım bir makinede boşa gidiyor; bu kartta 27B'yi de ancak kaynaktan derlenen deneysel bir GGUF eklentisi ve zorlanmış bellek ayarlarıyla çalıştırıyor.
İşe yarayan
- Ollama üretim 34,4'e karşı 43,9 tok/s; 8K'da prefill 833'e karşı 1.578 tok/s
- Ollama 49K token'ı tamamen GPU'da tutuyor, vLLM ~20K
- Ollama: 64–199 sn yerine 2,8 sn'de açılış
- Prizde token başına ~9,7 J yerine ~8,3 J
Yaramayan
- İlk Ollama ölçümüm (26,4 tok/s, yüklemeden sonraki tek istek) yanlıştı — tekrarlı koşular 43,9 verdi
- Priz değerleri wattmetre aralıkları; yük altında işlemci gücü ölçülmedi
- Üretim, Ollama / vLLM
- 43,9 / 34,4tok/s
- Tamamen VRAM'de bağlam
- 49K / ~20Ktoken
- Açılış süresi
- 2,8 sn / 64–199 sn
- Token başına enerji
- 8,3 / 9,7J
Verim, aynı GGUF dosyası
yüksek olan iyi- Ollama 0.34.1
- vLLM 0.29.0
Veri
| Ollama 0.34.1 | vLLM 0.29.0 | |
|---|---|---|
| Üretim, tek istek (8–9 × 1.024 token) | 43,9 tok/s | 34,4 tok/s |
| Prefill, 8K token'lık prompt | 1.578,0 tok/s | 833,0 tok/s |
Prizden güç (bütün sunucu)
düşük olan iyiWattmetre aralığının orta noktası
Veri
| Priz gücü | |
|---|---|
| Sunucu açık, bütün VM'ler kapalı (GPU sürücüsüz, fanlar dönüyor) | 53,5 W |
| VM açık, GPU boşta, motor yok | 42,5 W |
| Ollama, model yüklü, boşta | 42,0 W |
| vLLM, model yüklü, boşta | 46,5 W |
| vLLM üretirken | 335,0 W |
| Ollama üretirken | 365,0 W |
Kurulum
Ollama 0.34.1’i kullanıcı dizinimdeki bir arşivden çalıştırdım (systemd servisi yok). GGUF’u RENDERER qwen3.8 +
PARSER qwen3.5 ve registry’deki qwen3.8:27b-q8_0’dan kopyaladığım resmi örnekleme parametreleriyle içe aktardım.
fp16 KV, flash attention açık, num_ctx 20000. vLLM, kuantizasyon karşılaştırmasındakiyle
birebir aynı çalıştı. Ollama’da perplexity’yi ve 4 eşzamanlı isteği ölçmedim (prompt log-prob’u yok; zaten tek
kullanıcıyım).
Sonuçlar
| vLLM 0.29.0 + GGUF eklentisi | Ollama 0.34.1 | |
|---|---|---|
| Motor açılışı | 64 sn (derleme önbelleği dolu) – 199 sn (boş) | 2,8 sn |
| Üretim, tek istek (8–9 × 1.024 token) | 34,4 tok/s | 43,9 tok/s |
| Prefill, 8K token | 833 tok/s | 1.578 tok/s |
| Tamamen VRAM’deki bağlam (fp16 KV) | ~20K token | 49K |
| VRAM | her zaman 15,6 GiB (önceden ayırıyor) | 20K’da 12,1 GiB, 49K’da 13,9 GiB |
| 4 eşzamanlı istek (toplam) | 54,9 tok/s | ölçülmedi |
| Kontrol soruları / düşünmenin ayrılması | doğru / — | birebir aynı çıktı / evet |
Ollama aktivasyon/graph için pay ayırmıyor ve KV önbelleğini num_ctx’e göre boyutluyor — fazladan bağlam oradan
geliyor.
16 GB’da Ollama bağlam kapasitesi
| num_ctx | 8.192 | 20.000 | 32.768 | 49.152 | 65.536 | 98.304 |
|---|---|---|---|---|---|---|
| Model boyutu | 11,35 GiB | 12,09 GiB | 12,87 GiB | 13,89 GiB | 15,57 GiB | 17,77 GiB |
| GPU’da | %100 | %100 | %100 | %100 | %91 | %79 |
vLLM’in bir GGUF çalıştırmak için istedikleri
- GGUF desteği ayrı bir eklentide. PyPI sürümü Qwen3.8’i tanımıyordu, bu yüzden CUDA araç takımını kurup GitHub’dan derledim — artık güncellemeleri de elle takip etmem gerekiyor.
- Eklenti yapılandırmasını tokenizer dizininden okuyor ve görsel projektör olmadan yüklemeyi reddediyor →
mmproj+language_model_only. - Bellek ayarlarını zorlamak gerekiyor; FlashInfer’in ilk istekte JIT derleyebilmesi için
PATH’te venv ve CUDA olmalı. vLLM’in kendi dokümanı GGUF desteğini “highly experimental” diye tanımlıyor.
Ollama: indir, ollama create (21 sn), bitti.
Bir düzeltme. İlk karşılaştırmamda Ollama’yı yüklemenin hemen ardından tek bir istekte 26,4 tok/s ölçmüş ve “vLLM ~%30 önde” demiştim. Güç testi için isteği dokuz kez tekrarladım: hepsi ~44 tok/s verdi, vLLM ise iki oturumda da 34,4–34,5’te kaldı. Doğru sonuç: Ollama ~%28 önde.
Prizden güç
Bütün sunucuya (Intel i5-13400, 64 GB, 850 W Gold PSU) takılı priz tipi bir wattmetre, yalnızca bu VM açık. Yük: art arda tek istekler, her biri 1.024 token, düşünme kapalı, sıcaklık 0,7, 3,5 dakika boyunca.
| Durum | Priz | GPU (nvidia-smi) |
|---|---|---|
| Sunucu kapalı (Wake-on-LAN bekleme) | 1,6–2,0 W | — |
| Sunucu açık, bütün VM’ler kapalı | 52–55 W | sürücü yok, D3hot, fanlar dönüyor |
| VM açık, GPU boşta, motor yok | 42–43 W | P8, 13,3 W, fanlar duruyor |
| Ollama, model yüklü, boşta | 42 W | P8, 13,7 W, fanlar duruyor |
| vLLM, model yüklü, boşta | 46–47 W | P8, 14,8 W; işlemci paketi 2,0 W (motorsuz 0,5–0,6 W) |
| Ollama üretirken (43,9 tok/s) | 360–370 W | ort. 282,5 W, fan ≤ %69, ≤ 74 °C → ~8,3 J/token |
| vLLM üretirken (34,4 tok/s) | 330–340 W | ort. 283,8 W, fan ≤ %79, ≤ 74 °C → ~9,7 J/token |
- VM’i kapatmak tüketimi aslında ~11 W artırıyor. Sürücü yokken kartın VBIOS’u D3hot’ta bile fanları döndürüyor; konuk sürücü yüklenince ~10 sn içinde P8’e inip fanları durduruyor.
- Modeli VRAM’de tutmanın bir bedeli yok — iki motor da GPU’yu P8’de boşta bırakıyor.
- vLLM boşta ~4–5 W fazla çekiyor, çünkü motoru bir işlemci çekirdeğini yarı uyanık tutuyor.
- Yük altında GPU aynı çekiyor (285 W sınırın ~283 W’ı). Ollama’nın prizdeki fazladan ~30 W’ı büyük ihtimalle işlemci tarafında (ölçmedim); yine de daha hızlı ürettiği için token başına daha az enerji harcıyor.