Fortgeschritten 12 Min.Deployment

SGLang: ein lokales LLM für mehrere utilisateurs

Direkte Antwort

SGLang ist ein Inferenzserver für mehrere gleichzeitige Benutzer: Er wird mit uv installiert, lässt sich mit einem einzigen Befehl auf Port 30000 starten und verdankt seinen Durchsatz unter Last RadixAttention (Präfix-Cache) und der kontinuierlichen Einplanung von Anfragen. Er benötigt eine moderne CUDA-GPU und ist damit ein Werkzeug für gemeinsam genutzte Server, kein Ersatz für Ollama auf einem persönlichen Rechner mit nur einem Benutzer.

SGLang ist ein von der LMSYS-Community entwickeltes Framework für Inferenzserver, das bei mehreren gleichzeitigen Anfragen einen hohen Durchsatz und eine niedrige Latenz ermöglichen soll. Dieser Leitfaden behandelt die Installation, die Funktionsweise von RadixAttention, die wichtigen Stellschrauben für die gleichzeitige Verarbeitung von Anfragen und die Kriterien für die Wahl zwischen SGLang, vLLM und Ollama je nach Anzahl der tatsächlich zu bedienenden Nutzer.

Von Mohamed Meguedmi·Aktualisierung 2026-09-28·Unter Windows, macOS und Linux getestet

#Was SGLang macht

SGLang präsentiert sich als Hochleistungsframework für die Bereitstellung von LLMs und multimodalen Modellen, ausgelegt auf Inferenz mit geringer Latenz und hohem Durchsatz – von einer einzelnen GPU bis hin zu großen verteilten Clustern. Das Projekt gibt an, dass seine Produktionsdeployments täglich Trillionen von Tokens auf weltweit mehr als 400.000 GPUs erzeugen, und ist bei der gemeinnützigen Open-Source-Organisation LMSYS angesiedelt.

SGLang ist mit den APIs von OpenAI und Hugging Face kompatibel und unterstützt eine breite Palette an Modellen (Llama, Qwen, DeepSeek, GLM, Mistral, Gemma) und Hardware (NVIDIA- und AMD-GPUs, Intel-Xeon-CPUs, Google-TPUs, Ascend-NPUs). Mit Stand vom 28. September 2026 ist v0.5.20 die neueste Version, veröffentlicht am 18. September 2026.

i
SGLang ist kein direkter Ersatz für Ollama
SGLang ist auf die Bereitstellung für mehrere Benutzer auf Serverhardware ausgelegt. Es bietet sogar eine mit dem Ollama-Client kompatible API, um die Migration bestehender Tools zu erleichtern, installiert oder ersetzt Ollama selbst jedoch nicht.

#Den Server installieren und starten

Das Kit für lokale KI in Unternehmen

Lokale KI am Arbeitsplatz bereitstellen: DSGVO, AI Act, Mehrbenutzerarchitektur, Kosten, Memo für die Leitung.

  • Lebenslanger Online-Zugang
  • PDF + Dateien
  • Erstattung binnen 30 Tagen

Die von der offiziellen Dokumentation empfohlene Installation erfolgt über uv, das schneller ist als das klassische pip. Das Flag --prerelease=allow ist erforderlich, da einige Abhängigkeiten von SGLang nur Vorabversionen auf PyPI veröffentlichen.

Installation
pip install --upgrade pip
pip install uv
uv pip install --prerelease=allow sglang

Der Container-Start mit Docker bleibt die reproduzierbarste Methode für eine Serverbereitstellung, wobei standardmäßig der Port 30000 für die API verwendet wird.

Docker
docker run --gpus all \
    --shm-size 32g \
    -p 30000:30000 \
    -v ~/.cache/huggingface:/root/.cache/huggingface \
    --env "HF_TOKEN=<secret>" \
    --ipc=host \
    lmsysorg/sglang:latest \
    python3 -m sglang.launch_server --model-path meta-llama/Llama-3.1-8B-Instruct --host 0.0.0.0 --port 30000

Die Dokumentation stellt klar, dass SGLang inzwischen CUDA 13 erfordert: Images und Wheels für CUDA 12 (cu129) wurden entfernt, seit PyTorch 2.14 keinen Build für CUDA 12.9 mehr veröffentlicht. Version 0.5.19 bleibt die letzte, die eine Möglichkeit zur Nutzung von CUDA 12 bietet. Bei einer Bereitstellung auf älterer Hardware muss daher diese Version festgeschrieben oder vor dem Update der GPU-Treiber überprüft werden.

#RadixAttention und der Präfix-Cache

Das Herz der Leistungsversprechen von SGLang ist RadixAttention: Die bereits berechneten Sequenzvorgänge (ein gemeinsamer Systemprompt, der Anfang einer mehrfach-Dialogkonversation) werden in einem Radix-Baum organisiert und zwischen Anfragen wiederverwendet, anstatt jedes Mal neu berechnet zu werden. Die ursprüngliche Projektmitteilung im Januar 2024 behauptete bis zu 5-fach schnellere Inferenz durch dieses Mechanismus – eine Angabe aus dem eigenen Testsetup der damaligen Zeit, keine aktuelle, unabhängige Messung auf Ihrem Gerät.

Dieser Gewinn kommt vor allem Szenarien mit gemeinsamen Präfixen zugute: mehreren Nutzern, deren Anfragen denselben System-Prompt verwenden, einem Agenten, der bei jeder Runde denselben Kontext erneut liest, oder Few-Shot-Prompts mit denselben Beispielen. Ein Strom von Anfragen ohne jegliches gemeinsames Präfix (völlig unabhängige Fragen ohne Verlauf) profitiert deutlich weniger von RadixAttention.

→
Überraschungsgradient
Der Vorteil von RadixAttention hängt direkt vom Anteil der Präfix-Tokens ab, die Anfragen gemeinsam haben. Bei einer Bereitstellung, in der jeder Benutzer einen eigenen, langen und jeweils anderen Systemprompt hat, geht ein großer Teil des Cache-Vorteils verloren, auch wenn die Funktion weiterhin aktiv ist.

Die Laufzeitumgebung kombiniert RadixAttention mit einem CPU-Scheduler ohne Overhead, Prefill-Decode-Disaggregation, spekulativem Decoding, kontinuierlicher Anfragenplanung (continuous batching) und paginierter Attention (paged attention) – eine Kombination mehrerer Optimierungstechniken statt eines isolierten Mechanismus.

#Parallelität und Speicher einstellen

Drei Startparameter bestimmen, wie SGLang mehrere Benutzer gleichzeitig bedient. --mem-fraction-static legt den Anteil des GPU-Speichers fest, der für die Modellgewichte und den KV-Cache reserviert ist; die Dokumentation empfiehlt, diesen Anteil bei einem Fehler wegen erschöpften Speichers zu reduzieren, andernfalls wird er automatisch anhand des verfügbaren GPU-Speichers berechnet.

Wichtige Parameter für die gleichzeitige Verarbeitung von Anfragen
ParameterRolle
--max-running-requestsMaximale Anzahl gleichzeitig bearbeiteter Anfragen (standardmäßig keine Begrenzung)
--max-queued-requestsMaximale Anzahl von Anfragen, die auf ihre Verarbeitung warten
--schedule-policyScheduling-Strategie für Anfragen: standardmäßig fcfs (wer zuerst kommt, wird zuerst bedient), alternativ lpm, random, dfs-weight, lof, priority, routing-key
--chunked-prefill-sizeAufteilung des Prefills in Abschnitte, damit eine lange Anfrage die anderen nicht blockiert

Ohne explizite Begrenzung für --max-running-requests nimmt SGLang so viele Anfragen an, wie der Speicher des KV-Caches zulässt. Das kann unter hoher Last die Latenz pro Anfrage verschlechtern, statt neue Verbindungen höflich abzulehnen. Eine explizite Begrenzung festzulegen, die zur verfügbaren VRAM passt, ist die erste Einstellung, die vorgenommen werden sollte, bevor der Server für mehrere tatsächliche Nutzer zugänglich gemacht wird.

#Wann SGLang statt vLLM oder Ollama wählen?

Die drei Werkzeuge erfüllen unterschiedliche Anforderungen. Ollama richtet sich an die persönliche Nutzung durch einen einzelnen Benutzer und erfordert nur eine minimale Einarbeitung; SGLang und vLLM zielen auf die Bereitstellung für mehrere Benutzer auf Server-GPUs ab, mit ähnlichen Ansätzen (Präfix-Cache, kontinuierliches Batching), aber unterschiedlichen Entwicklungsgeschichten und Ökosystemen.

Ein einzelner Benutzer, persönlicher Rechner
Ollama oder llama.cpp lassen sich weiterhin einfacher installieren und auf handelsüblichen CPUs oder GPUs betreiben, ohne einen Netzwerkdienst konfigurieren zu müssen.
Mehrere Benutzer, System bereits auf vLLM aufgebaut
Bei vLLM zu bleiben erspart eine Migration; unser spezieller Leitfaden behandelt dessen Bereitstellung in der Produktion.
Mehrere Benutzer, Priorität auf Durchsatz bei gemeinsam genutzten Präfixen
SGLang mit RadixAttention ist die naheliegende Wahl – vorausgesetzt, Sie verfügen über eine kompatible CUDA-GPU.
Kompatibilität mit Ollama-Clients gewünscht, ohne Ollama zu installieren
SGLang stellt eine API bereit, die mit der Ollama-CLI und der Python-Bibliothek von Ollama kompatibel ist. Dadurch lassen sich bestehende Skripte wiederverwenden, ohne den Ollama-Server selbst betreiben zu müssen.

Für einen breiteren Überblick über Inferenzarchitekturen (llama.cpp, vLLM, Exllama) erläutert der Backend-Vergleich auf dieser Website die Kompromisse über den Einzelfall SGLang hinaus.

#Was die Hardware vorgibt

Der Schnellstartleitfaden von SGLang ist eindeutig: Eine NVIDIA-GPU mit Unterstützung für CUDA sm80 oder höher (A10, A100, L4, L40S, H100) ist Voraussetzung für den standardmäßigen Installationsweg unter Linux, der empfohlenen Plattform. Darüber hinaus kündigt das Projekt eine breitere Hardwareunterstützung an – AMD-GPUs (MI355, MI300), Intel-Xeon-CPUs, Google-TPUs und Ascend-NPUs – über eigene Installationswege, die vom Hauptinstallationsweg für NVIDIA-GPUs getrennt sind.

!
Standardmäßig kein Tool für den reinen CPU-Betrieb
Im Gegensatz zu llama.cpp oder Ollama ist SGLang nicht vorrangig für den Betrieb ohne dedizierte GPU ausgelegt. Auf einem Mac oder einem PC ohne aktuelle NVIDIA-Grafikkarte bleiben Ollama oder LM Studio die Standardoptionen; SGLang entfaltet seinen Nutzen auf einem dedizierten GPU-Server für mehrere Benutzer.

#Speicherbedarf pro Anfrage

„Mehrere Nutzer bedienen“ bedeutet ganz konkret, dass der VRAM-Verbrauch mit der Anzahl aktiver Anfragen wächst, nicht nur mit der Modellgröße. Der von --mem-fraction-static und --max-total-tokens verwaltete KV-Cache speichert für jedes bereits generierte Token einer Anfrage zwei Vektoren (Schlüssel und Wert) pro Attention-Schicht. Die allgemeine Formel lautet: Bytes pro Token = 2 × Anzahl der Schichten × Anzahl der KV-Attention-Heads × Dimension eines Heads × Bytes pro Wert (2 bei FP16/BF16, 1 bei FP8).

Beispielrechnung für eine Architektur ähnlich wie Llama-3.1-8B-Instruct (32 Schichten, 8 KV-Köpfe bei gruppierter Attention, Kopfdimension 128): In FP16 ergibt das 2 × 32 × 8 × 128 × 2 = 131.072 Byte pro Token, also etwa 128 KB pro Token. Bei einer Anfrage mit 8.192 Tokens Kontext (Prompt und Antwort zusammen) belegt der KV-Cache dieser einen Anfrage somit etwa 1 GB VRAM — noch bevor die Modellgewichte berücksichtigt werden. Auf einer GPU mit 24 GB, von denen etwa 16 GB für die Gewichte in Q4 und den grundlegenden Speicherbedarf der Laufzeitumgebung reserviert sind, reicht der verbleibende Spielraum bei dieser Kontextlänge nur für wenige gleichzeitig aktive Anfragen. Das erklärt, warum eine explizite Begrenzung über --max-running-requests eine Verschlechterung verhindert, statt neue Verbindungen sauber abzulehnen.

→
Größenordnung, keine Messung
Diese Berechnung ist eine theoretische Schätzung auf Grundlage der Modellarchitektur, kein in einer realen SGLang-Bereitstellung gemessener Wert: Die genaue Anzahl der unterstützten gleichzeitigen Anfragen hängt auch vom geladenen Modell, der tatsächlichen Kontextlänge und von --mem-fraction-static ab.

#Sicherheit und Observabilität

Standardmäßig erfordert die mit sglang.launch_server gestartete SGLang-API keine Authentifizierung: Jeder, der Port 30000 erreichen kann, kann Anfragen senden. Die Option --api-key legt einen Schlüssel fest, den der Server auch an seinem OpenAI-kompatiblen Endpunkt verlangt; ohne diese Option bedeutet ein Zugriff auf den Server über localhost oder ein vertrauenswürdiges internes Netzwerk hinaus, dass die Inferenz offen zugänglich ist und damit auch die zugehörigen GPU-Kosten verursacht werden können.

Für die Überwachung im Produktionsbetrieb stellt die Option --enable-metrics (standardmäßig deaktiviert) Metriken im Prometheus-Format am Endpunkt /metrics bereit: Anfragerate, Inferenzlatenz, Geschwindigkeit der Tokengenerierung und Cache-Effizienz lassen sich dort regelmäßig per Scraping erfassen, statt den Serverzustand allein anhand der Protokolle zu erraten.

#Troubleshooting: Symptome, Ursache, Lösung

Häufige Symptome bei Mehrbenutzerbetrieb
SymptomWahrscheinliche UrsacheKorrektur
Fehler wegen erschöpften Speichers (out of memory) beim Start--mem-fraction-static automatisch zu hoch für den tatsächlich verfügbaren VRAM berechnet--mem-fraction-static explizit reduzieren, wie die offizielle Dokumentation empfiehlt
Die Latenz steigt unter Last sprunghaft an, ohne dass ein Fehler auftrittKeine Grenze für --max-running-requests: Der Server akzeptiert Anfragen, solange der KV-Cache dies erlaubt.--max-running-requests anhand des verfügbaren VRAM und der obigen Berechnung der Kosten pro Anfrage festlegen
Fehler bei der Installation oder beim Start nach AktualisierungWechsel zu einer Version, die CUDA 13 erfordert, während der Treiber weiterhin CUDA 12 verwendetVersion 0.5.19 festschreiben (letzte Version für CUDA 12) oder vor der Installation von SGLang den GPU-Treiber aktualisieren
Server ohne Zugriffskontrolle über das Netzwerk erreichbarKein Schlüssel definiert: --api-key ist standardmäßig leer--api-key festlegen, bevor der Server außerhalb eines vertrauenswürdigen Netzwerks zugänglich gemacht wird

#Grenzen und Punkte, auf die Sie achten sollten

Die Angabe „bis zu 5x schneller“, die die Vorstellung von RadixAttention weiterhin begleitet, stammt aus der ursprünglichen Ankündigung des Projekts im Januar 2024: Sie veranschaulicht den Nutzen des Mechanismus auf dem damaligen Testsystem, keinen garantierten Leistungsgewinn bei einem aktuellen Einsatz mit anderen Modellen und GPUs. Die tatsächliche Dimensionierung hängt davon ab, wie häufig Anfragen gemeinsame Präfixe haben, welches Modell gewählt und welche GPU verwendet wird — anhand des eigenen Anfrageaufkommens messen, statt sie aus der ursprünglichen Ankündigung abzuleiten.

Der zwingende Umstieg auf CUDA 13 (Version 0.5.19 ist die letzte, die eine CUDA-12-Option bietet) macht es ratsam, vor jedem Update auf eine neuere Version den GPU-Treiber und die installierte CUDA-Version zu prüfen. Andernfalls kann die Installation auf einem Server, der noch CUDA 12 verwendet, fehlschlagen.

Auch der Veröffentlichungsrhythmus des Projekts ist bei einem Produktivdeployment zu beachten: SGLang veröffentlicht etwa alle zwei bis drei Wochen neue Minor-Versionen (v0.5.20 am 18. September 2026, v0.5.19 am 5. September, v0.5.18 am 22. August). Deshalb muss in den Docker-Images eine bestimmte Version festgelegt werden, statt bei einem Dienst im Produktivbetrieb dem Tag latest zu folgen. Andernfalls besteht bei einem erneuten Deployment das Risiko einer nicht vorhergesehenen Verhaltensänderung.

Häufig gestellte Fragen
Ersetzt SGLang Ollama?+
Nein, es handelt sich um zwei unterschiedliche Tools. Ollama richtet sich an die persönliche Nutzung durch einen einzelnen Nutzer auf einem Arbeitsplatzrechner und erfordert nur wenig Einarbeitung; SGLang richtet sich an den Betrieb für mehrere gleichzeitige Nutzer auf Server-GPUs und erfordert eine umfangreichere Konfiguration. SGLang stellt sogar eine mit dem Ollama-Client kompatible API bereit, ohne dass dahinter tatsächlich Ollama läuft – praktisch, um bestehende Skripte weiterzuverwenden, ohne sämtliche Werkzeuge zu migrieren.
Ist eine GPU erforderlich, um SGLang zu betreiben?+
Der offizielle Schnellstartleitfaden setzt für den Standardweg unter Linux eine NVIDIA-GPU mit Unterstützung für CUDA sm80 oder höher voraus (A10, A100, L4, L40S, H100). Für AMD, Intel Xeon, TPU oder NPU gibt es separate Wege, aber SGLang ist nicht vorrangig für den reinen CPU-Betrieb auf einem persönlichen Rechner ausgelegt: Ollama oder llama.cpp sind in diesem Fall weiterhin besser geeignet.
Beschleunigt RadixAttention alle Anfragen gleichermaßen?+
Nein. Der Geschwindigkeitsgewinn hängt von der Anzahl der Präfix-Tokens ab, die mehrere Anfragen gemeinsam haben: Ein gemeinsamer System-Prompt für mehrere Benutzer oder ein Gesprächsverlauf, der bei jeder Gesprächsrunde wiederverwendet wird, profitieren stark davon. Völlig unabhängige Anfragen ohne gemeinsames Präfix profitieren deutlich weniger, auch wenn der Mechanismus auf dem Server aktiv bleibt.
Welchen Parameter sollte man zuerst einstellen, um mit SGLang mehrere Benutzer zu bedienen?+
--max-running-requests, um eine explizite Grenze festzulegen, die zum verfügbaren VRAM und zum Speicherbedarf jeder aktiven Anfrage im KV-Cache passt. Ohne diese Grenze akzeptiert SGLang Anfragen, solange der KV-Cache dies zulässt. Das kann unter hoher Last die Latenz pro Anfrage verschlechtern, statt zusätzliche Verbindungen höflich abzulehnen.
Funktioniert SGLang mit einer älteren GPU, die auf CUDA 12 beschränkt ist?+
Nicht mit den aktuellen Versionen. SGLang erfordert inzwischen CUDA 13; Version 0.5.19 ist die letzte, die noch eine Möglichkeit zur Nutzung von CUDA 12 bietet: Ein Server, der weiterhin einen CUDA-12-Treiber verwendet, muss entweder bei dieser Version bleiben oder seinen GPU-Treiber aktualisieren, bevor eine neuere Version von SGLang installiert wird. Andernfalls schlägt die Installation fehl.
Wie viel GPU-Speicher benötigt der KV-Cache einer einzigen Abfrage?+
Das hängt vom Modell und der Kontextlänge ab, aber die Größenordnung lässt sich berechnen: Bei einer Architektur ähnlich der von Llama-3.1-8B (32 Schichten, 8 KV-Heads) benötigt ein Kontext von 8.192 Tokens in FP16 etwa 1 GB VRAM, noch bevor die Modellgewichte berücksichtigt werden. Der Wechsel zu FP8 halbiert diesen Wert.
Wie lässt sich ein über das Netzwerk erreichbarer SGLang-Server absichern?+
--api-key setzen, um für alle Anfragen, auch an den OpenAI-kompatiblen Endpunkt, eine Token-Authentifizierung zu verlangen; ohne diese Option bleibt der Server für jeden offen, der Port 30000 erreichen kann. --enable-metrics separat aktivieren, um Durchsatz und Latenz über Prometheus zu überwachen, ohne Observability und Zugriffskontrolle zu verwechseln.

Hat Ihnen dieser Guide geholfen?

Haben Sie Feedback, einen Fehler entdeckt oder möchten Sie etwas präzisieren? Geben Sie uns Bescheid – so wird der Guide für alle besser.