ollama run llama3 und Sie servieren bereits. Unter der Haube umgibt es llama.cpp (und MLX auf Apple Silicon) und stellt eine Reihe von Umgebungsvariablen und Modellparametern bereit, die steuern, wie es Ihre Hardware nutzt. Die Standardwerte funktionieren für gelegentliche Nutzung, lassen aber erhebliche Leistung ungenutzt. Dieser Leitfaden behandelt jede wichtige Stellschraube und wie Sie sie für Ihre Workload setzen.
Zuletzt überprüft: 2026-10-14 — Ollama v0.33.2.
Apple Silicon verwendet MLX. Beginnend mit Ollama 0.19 ist das Standard-Backend auf Apple Silicon Apples MLX-Framework statt llama.cpp. MLX liefert erheblich schnellere Inferenz auf M-Series-Chips (siehe Apple Silicon and MLX optimization). Die meisten Umgebungsvariablen in diesem Leitfaden gelten für beide Backends; wo das Verhalten abweicht, wird es explizit hervorgehoben.
Kontextfenster-Abstimmung
Das Kontextfenster (num_ctx) steuert, wie viele Token das Modell in einer einzigen Anfrage verarbeiten kann — Ihr Prompt plus die generierte Antwort zusammen. Es ist der größte Treiber des Speicherverbrauchs nach den Modellgewichten selbst.
Wie Sie das Ollama-Kontextfenster erhöhen
Ollama verwendet standardmäßig ein 2048-Token-Kontextfenster. Die meisten modernen Modelle unterstützen 8K, 32K oder sogar 128K Token, aber Ollama nutzt standardmäßig nicht das Maximum des Modells — es verwendet 2048, um den Speicherverbrauch vorhersehbar zu halten. Setzen Sie es auf 3 Arten, von am spezifischsten bis am globalsten: Pro Anfrage (API):Windows
macOS
Kontextfenster-Speicherkosten
Der KV-Cache wächst linear mit der Kontextlänge. Die Formel:Flash Attention
Flash Attention ist das Nächste an einer kostenlosen Leistungsverbesserung, die Ollama bietet. Es überarbeitet, wie das Modell die Attention zwischen Token berechnet — statt die volle Attention-Matrix im Speicher zu materialisieren, berechnet es Attention in gekachelten Blöcken, die in schnellen SRAM passen. Das Ergebnis:- 30-50% niedrigere Speichernutzung für den KV-Cache — der größte Gewinn bei langen Kontextlängen.
- Schnellere Inferenz — besonders auf GPU, wo die gekachelte Berechnung gut auf Tensor-Cores abbildet.
- Gleiche Ausgabequalität — Flash Attention ist mathematisch äquivalent zu Standard-Attention, keine Approximation.
Flash Attention in Ollama aktivieren
Setzen Sie die Umgebungsvariable:Windows
macOS
Auf Apple Silicon mit dem MLX-Backend ist Flash Attention standardmäßig aktiviert und die Variable
OLLAMA_FLASH_ATTENTION hat keinen Effekt — MLX verwendet immer optimierte Attention-Kernel.GPU-Offload-Strategie
Ollama lädt automatisch Modellschichten auf Ihre GPU. Wenn das vollständige Modell in den VRAM passt, laufen alle Schichten auf der GPU für maximale Geschwindigkeit. Wenn der VRAM knapp ist, teilt Ollama Schichten zwischen GPU und CPU auf — die GPU führt aus, was sie kann, und der Rest fällt auf den System-RAM zurück.Wie Ollama GPU-Schichten entscheidet
Ollamas GPU-Scheduling funktioniert in dieser Reihenfolge:- Vollständiges Offload — wenn die Modellgewichte + KV-Cache in den VRAM passen, gehen alle Schichten auf die GPU. Das ist die schnellste Konfiguration.
- Partielles Offload — wenn das Modell nicht vollständig passt, legt Ollama so viele Schichten auf die GPU, wie der VRAM erlaubt, und führt den Rest auf der CPU aus. Die Leistung verschlechtert sich, weil jeder Forward-Pass für CPU-residente Schichten den PCIe-Bus überqueren muss.
- Nur CPU — wenn keine GPU verfügbar ist oder der VRAM sogar für wenige Schichten zu klein ist, läuft das gesamte Modell auf der CPU.
GPU-Schichten steuern mit num_gpu
Der Parameter num_gpu setzt, wie viele Schichten auf die GPU ausgelagert werden. Setzen Sie ihn in einem Modelfile oder pro Anfrage:
Modelfile
API
VRAM-Budgetierung
Jede ausgelagerte Schicht verbraucht VRAM für sowohl Gewichte als auch KV-Cache. Eine grobe Schätzung:
Lassen Sie 1-2 GB VRAM-Spielraum für CUDA-Kontext und Overhead.
KV-Cache-Präzision
Der KV-Cache speichert Key- und Value-Tensoren für jedes Token in jeder aktiven Sequenz. Standardmäßig verwendet Ollamaf16 (16-Bit-Gleitkommazahl). Sie können auf quantisierte Präzision wechseln, um den Speicherverbrauch auf Kosten einer kleinen Qualität zu reduzieren.
Setzen Sie den Cache-Typ mit der Umgebungsvariable OLLAMA_KV_CACHE_TYPE:
Thread-Konfiguration
Der Parameternum_thread steuert, wie viele CPU-Threads Ollama für Inferenz verwendet. Der richtige Wert hängt davon ab, wie viel Arbeit die CPU tatsächlich tut.
Setzen Sie ihn in einem Modelfile oder pro Anfrage:
Modelfile
API
OLLAMA_NUM_THREADS setzen:
Auf Apple Silicon ist Thread-Abstimmung weniger wichtig, da GPU und CPU sich einheitlichen Speicher teilen und das MLX-Backend das Scheduling übernimmt. Der Standard funktioniert normalerweise gut.
Batch-Größen-Abstimmung
Der Parameternum_batch steuert, wie viele Token Ollama auf einmal während der Prefill-Phase verarbeitet (Prompt-Aufnahme). Der Standard ist 512.
Modelfile
Parallele Anfragen
OLLAMA_NUM_PARALLEL steuert, wie viele Anfragen ein einzelnes Modell gleichzeitig verarbeitet. Der Standard ist 1 — Ollama bearbeitet eine Anfrage nach der anderen pro geladenem Modell.
RAM und VRAM skalieren mit
OLLAMA_NUM_PARALLEL. Jede parallele Anfrage benötigt ihren eigenen KV-Cache. Wenn Sie 4 parallele Anfragen mit num_ctx 8192 bedienen, benötigen Sie 4× den KV-Cache-Speicher im Vergleich zu einer einzelnen Anfrage.Wann Sie parallele Anfragen erhöhen
Erhöhen SieOLLAMA_NUM_PARALLEL, wenn:
- Sie mehrere Benutzer oder Agenten vom selben Modell bedienen.
- Sie Batch-Workloads ausführen, bei denen der Gesamtdurchsatz wichtiger ist als die Latenz einzelner Anfragen.
- Sie VRAM-Spielraum haben und die GPU bei einzelnen Anfragen unterausgelastet ist.
- Sie einen einzelnen Benutzer oder Agenten bedienen.
- Sie niedrige Latenz dem Durchsatz vorziehen.
- Der VRAM knapp ist.
Modell-Speicherverwaltung
Modelle geladen halten mit OLLAMA_KEEP_ALIVE
Standardmäßig entlädt Ollama ein Modell nach 5 Minuten Inaktivität aus dem Speicher. Die nächste Anfrage muss das Modell von der Festplatte neu laden, was je nach Modellgröße und Festplattengeschwindigkeit Sekunden bis Minuten dauert.
Setzen Sie OLLAMA_KEEP_ALIVE, um zu steuern, wie lange Modelle geladen bleiben:
Geladene Modelle begrenzen mit OLLAMA_MAX_LOADED_MODELS
Ollama kann mehrere Modelle gleichzeitig geladen halten. Der Standard ist 3 × (Anzahl der GPUs) oder 3 bei nur CPU. Wenn Sie viele Modelle bedienen und den Speicherverbrauch begrenzen wollen, senken Sie dies:
Apple Silicon und MLX-Optimierung
Beginnend mit Ollama 0.19 ist das Standard-Backend auf Apple Silicon Apples MLX-Framework. MLX ist für Apples einheitliche Speicherarchitektur optimiert und liefert erheblich schnellere Inferenz als llama.cpp auf M-Series-Chips.Leistungsgewinne
Benchmarks aus Ollamas MLX-Optimierungs-Update vom Juni 2026:
MLX unterstützt auch NVFP4-Quantisierung auf Apple Silicon, die Near-BF16-Qualität mit 4-Bit-Speicher-Footprint liefert — halb so viel Qualitätsverlust wie Q4-Quantisierung.
Apple Silicon Optimierungstipps
- Verwenden Sie MLX-optimierte Modelle. Wenn Sie ein Modell auf Apple Silicon ziehen, verwendet Ollama automatisch das MLX-Backend. Keine Konfiguration erforderlich.
- Flash Attention ist immer eingeschaltet. MLX verwendet standardmäßig optimierte Attention-Kernel. Die Variable
OLLAMA_FLASH_ATTENTIONhat keinen Effekt. - Einheitlicher Speicher bedeutet vollständiges GPU-Offload. Apples Silicon-GPU kann auf den vollständigen RAM-Pool zugreifen, daher funktioniert
-ngl 999(alle Schichten auf GPU), solange Modell und KV-Cache in den einheitlichen Speicher passen. - Verwenden Sie
OLLAMA_KV_CACHE_TYPE=q8_0, um Ihr Speicherbudget zu dehnen. Das Halbieren des KV-Cache ermöglicht das Ausführen größerer Modelle oder längerer Kontexte. - Setzen Sie
OLLAMA_KEEP_ALIVE=-1für immer-verfügbare Inferenz. Modelle bleiben im einheitlichen Speicher ohne Neu ladestrafen.
Wenn Sie plattformübergreifende Portabilität benötigen oder dieselbe Konfiguration auf NVIDIA GPU und Mac ausführen wollen, können Sie Ollama zwingen, das llama.cpp-Backend auf Apple Silicon zu verwenden. Kontaktieren Sie den Ollama-Support oder überprüfen Sie deren Dokumentation für die Umgebungsvariable, um die Backend-Auswahl zu überschreiben.
Beispielkonfigurationen
Mac Studio M2 Ultra — 128 GB einheitlicher Speicher
Modelfile
NVIDIA RTX 4090 — 24 GB VRAM
Modelfile
Multi-GPU-Server — 4× RTX 4090 (96 GB Gesamt-VRAM)
Modelfile
Nur-CPU-Server — 64 GB RAM, keine GPU
Modelfile
Hochdurchsatz-Batchverarbeitung — RTX 4090
Modelfile
Latenzarmes interaktives Serving — RTX 4090
Modelfile
Häufige Fehler und wie Sie sie vermeiden
Fehler 1: num_ctx zu hoch setzen
Problem: Sie setzennum_ctx 128000 „nur für den Fall”, aber Ihre Prompts sind unter 2K Token. Sie haben gerade 64 GB KV-Cache-Speicher verschwendet.
Lösung: Setzen Sie num_ctx passend zu Ihrer tatsächlichen Workload. Wenn Ihre Prompts unter 4K Token sind, verwenden Sie num_ctx 4096 oder num_ctx 8192. Sie können es später für bestimmte Anfragen über die API immer erhöhen.
Fehler 2: Flash Attention vergessen
Problem: Sie verwenden 30-50% mehr VRAM als nötig, weil Flash Attention nicht aktiviert ist. Lösung: Setzen Sie immerOLLAMA_FLASH_ATTENTION=1. Es gibt keinen Nachteil auf unterstützter Hardware.
Fehler 3: Modell-Entladen nicht steuern
Problem: Sie starten Ihre Anfrage nach einer 10-minütigen Pause neu, und die erste Anfrage dauert 30 Sekunden, weil Ollama das Modell von der Festplatte neu geladen hat. Lösung: Setzen SieOLLAMA_KEEP_ALIVE=-1 für immer-verfügbare Inferenz. Das Modell bleibt im Speicher und jede Anfrage bekommt sofortige Antwort.
Fehler 4: Zu viele Threads auf GPU verwenden
Problem: Sie setzennum_thread 32 auf einer 32-Thread-CPU, aber alle Schichten sind auf der GPU. Die zusätzlichen Threads konkurrieren um Cache und verlangsamen die Orchestrierung.
Lösung: Wenn alle Schichten auf der GPU sind, verwenden Sie num_thread 2 bis num_thread 4. Die CPU verarbeitet nur Orchestrierung und Tokenisierung, nicht Inferenz-Mathematik.
Fehler 5: KV-Cache-Präzision ignorieren
Problem: Ihr VRAM geht zur Neige und Ollama lagert Schichten auf die CPU aus, aber Sie haben nie bedacht, dass der KV-Cache 2× mehr Speicher als nötig verwendet. Lösung: Setzen SieOLLAMA_KV_CACHE_TYPE=q8_0, um den KV-Cache-Speicher zu halbieren. Das ist die beste Balance aus Qualität und Speichereinsparung.
Fehler 6: OLLAMA_NUM_PARALLEL zu hoch setzen
Problem: Sie setzenOLLAMA_NUM_PARALLEL=16 auf einer 24-GB-GPU, und jetzt hat jede Anfrage nur 1.5 GB KV-Cache. Anfragen schlagen fehl oder die Qualität verschlechtert sich.
Lösung: Berechnen Sie Ihr KV-Cache-Budget: (VRAM - model_weights) / num_parallel. Wenn das weniger als 1 GB pro Anfrage übrig lässt, reduzieren Sie num_parallel oder senken Sie num_ctx.
Fehlerbehebung
Ollama ist nach dem Start langsam
Ursache: Das Modell wurde entladen und musste von der Festplatte neu geladen werden. Lösung: Setzen SieOLLAMA_KEEP_ALIVE=-1, um das Modell unbegrenzt geladen zu halten.
Out-of-Memory-Fehler
Ursache: Das Modell + KV-Cache überschreitet den verfügbaren VRAM oder RAM. Lösung: Reduzieren Sienum_ctx, aktivieren Sie OLLAMA_FLASH_ATTENTION=1, setzen Sie OLLAMA_KV_CACHE_TYPE=q8_0 oder verwenden Sie eine kleinere Quantisierung.
GPU wird nicht verwendet
Ursache: Ollama hat die GPU nicht erkannt, oder der VRAM ist zu klein für sogar wenige Schichten. Lösung: Prüfen Sieollama ps, um zu sehen, ob Schichten auf der GPU sind. Stellen Sie für NVIDIA-GPUs sicher, dass die NVIDIA-Treiber und das CUDA-Toolkit installiert sind. Stellen Sie für AMD-GPUs sicher, dass ROCm installiert ist.
Langsame CPU-Inferenz
Ursache: Zu viele Threads oder Schichten zwischen GPU und CPU aufgeteilt. Lösung: Setzen Sienum_thread auf die physische Kernanzahl. Lagern Sie wenn möglich mehr Schichten auf die GPU aus mit num_gpu. Verwenden Sie eine kleinere Quantisierung (Q4_K_M oder Q5_K_M), um mehr Schichten auf die GPU zu bekommen.
Nächste Schritte
Ollama remote access
Machen Sie Ihr Ollama-Modell für Teamkollegen und Agenten über Tokios zugänglich — ohne Ports zu öffnen oder OLLAMA_HOST=0.0.0.0 zu setzen.
Hardware reference
Vergleichen Sie Hardware-Plattformen für lokale LLM-Inferenz — Spezifikationen, Modellkapazität und Empfehlungen.
Model fit finder
Finden Sie, welche Modelle auf Ihrer Hardware laufen, oder welche Hardware Ihr Zielmodell ausführen kann.
Test your deployment
Messen Sie Latenz und Durchsatz nach der Optimierung, um die Verbesserung zu bestätigen.
Häufig gestellte Fragen
What is the best Ollama configuration for fast inference?
What is the best Ollama configuration for fast inference?
Aktivieren Sie Flash Attention (
OLLAMA_FLASH_ATTENTION=1), setzen Sie das Kontextfenster auf das, was Ihre Aufgabe tatsächlich braucht (nicht das Modellmaximum), verwenden Sie quantisierten KV-Cache (OLLAMA_KV_CACHE_TYPE=q8_0 oder q4_0) für lange Kontexte und stellen Sie sicher, dass Ihr Modell vollständig auf der GPU ausgelagert ist. Siehe die Abschnitte oben für die genauen Befehle.How do I reduce Ollama memory usage?
How do I reduce Ollama memory usage?
Die 3 größten Hebel: (1)
num_ctx senken — Speicher skaliert linear mit der Kontextlänge, (2) den KV-Cache mit OLLAMA_KV_CACHE_TYPE=q4_0 für bis zu 75% KV-Einsparung quantisieren, (3) eine kleinere Quantisierung der Modellgewichte verwenden (z.B. Q4_0 statt Q8_0). Flash Attention spart auch 30-50% an Attention-Speicher.Does Ollama use MLX on Mac?
Does Ollama use MLX on Mac?
Ja — beginnend mit Ollama 0.19 ist das Standard-Backend auf Apple Silicon Apples MLX-Framework, nicht llama.cpp. MLX liefert erheblich schnellere Inferenz auf M-Series-Chips (55-80 tok/s auf M2 Ultra vs 25-40 tok/s mit llama.cpp). Die Variable
OLLAMA_FLASH_ATTENTION hat keinen Effekt auf MLX, weil MLX immer optimierte Attention-Kernel verwendet.How many parallel requests can Ollama handle?
How many parallel requests can Ollama handle?
Setzen Sie
OLLAMA_NUM_PARALLEL (Standard 1). Jeder parallele Slot fügt ungefähr 20-30% Speicher-Overhead für KV-Cache hinzu. Für ein 7B-Modell bei Q4 mit 8K Kontext passen 4 parallele Slots bequem in 8 GB VRAM. Für größere Modelle oder längere Kontexte, starten Sie mit 2 und messen Sie.Why is Ollama slow to load my model?
Why is Ollama slow to load my model?
Die Modellladezeit wird dominiert vom Lesen der Gewichte von der Festplatte und ihrem Transfer auf die GPU. Verwenden Sie eine NVMe-SSD (nicht HDD), setzen Sie
OLLAMA_KEEP_ALIVE, um das Modell zwischen Anfragen warm zu halten, und setzen Sie OLLAMA_MAX_LOADED_MODELS, um Entladen und Neuladen zu vermeiden. Auf Apple Silicon laden NVFP4-Modelle schneller, weil die Gewichte kleiner sind.What GPU offload settings should I use?
What GPU offload settings should I use?
Standardmäßig wählt Ollama automatisch aus, wie viele Schichten auf die GPU ausgelagert werden. Für maximale Geschwindigkeit setzen Sie
num_gpu auf die Gesamtschichtanzahl des Modells (vollständig auslagern). Wenn Ihnen der VRAM ausgeht, reduzieren Sie num_ctx vor num_gpu — das Modell vollständig auf der GPU zu halten ist fast immer schneller als partielles Offload.Quellen
- Ollama FAQ — offizielle Dokumentation zu Umgebungsvariablen und Konfiguration
- Ollama Modelfile reference — Parametersyntax und gültige Werte
- Ollama MLX performance update — Benchmarks und Optimierungen für Apple Silicon vom Juni 2026
- Ollama GPU scheduling deep dive — VRAM-Verwaltung und Multi-GPU-Verhalten
- Ollama performance tuning: batching, KV cache, and OOM — num_batch-Benchmarks und Speicherberechnungen
- Ollama environment variables: complete reference — geprüft gegen die Quelle v0.32.5
Nach dem Ändern der Ollama-Konfiguration registrieren Sie Ihre Tokios-Deployment erneut, damit der Connector den neuen Upstream-Endpunkt übernimmt. Siehe Register Model.