Serverbedarf für Last mit Sicherheitsreserve berechnen
Der Rechner für benötigte Server macht aus einer Verkehrsprognose ein konkretes Ziel für die horizontale Skalierung.
Im Browser ausführen – kostenlos
Geben Sie die maximale Anfragerate, die gemessene Kapazität eines Servers und den Anteil ein, den Sie als Sicherheitsreserve freihalten möchten. Das Werkzeug verringert die nutzbare Kapazität jedes Servers um diese Reserve, teilt die Ziellast durch den verbleibenden Wert und rundet auf. Zusätzlich erhalten Sie bereitgestellte und nutzbare Kapazität, freie Restkapazität sowie die erwartete Auslastung, damit Sie jede Annahme nachvollziehen können.
Beginnen Sie mit gemessener Ziellast und Serverkapazität
Eine belastbare Dimensionierung setzt vergleichbare Messwerte voraus. Tragen Sie als Ziel die höchste dauerhaft zu bewältigende Anfragerate ein, nicht einen Tagesdurchschnitt, der Spitzen verdeckt. Ermitteln Sie die Kapazität pro Server in einem repräsentativen Lasttest mit derselben Anwendungsversion, Instanzgröße, Anfragemischung, denselben Abhängigkeiten und demselben Latenzziel wie in der Produktion. Beide Werte werden in Anfragen pro Sekunde angegeben. Erreicht ein Server einen höheren Wert nur unter Verletzung des Serviceziels, ist dieser Wert nicht als Kapazität geeignet. Eine Ziellast von null ist zulässig, die Serverkapazität muss jedoch positiv sein. Nutzen Sie das Ergebnis als Planungsgrundlage: Datenbanken, Warteschlangen, Caches, Verbindungen, externe Dienste und langsame Anfragen können früher begrenzen. Berechnen Sie neu, sobald sich Last, Anwendung oder Messung ändern.
Halten Sie Reserve statt am Kapazitätslimit zu arbeiten
Die Sicherheitsreserve ist der Anteil der gemessenen Kapazität, der auf jedem Server bewusst frei bleibt. Bei 25 Prozent Reserve gehen von einem mit 1.200 Anfragen pro Sekunde getesteten Server nur 900 in die Berechnung ein. Diese Reserve fängt Spitzen, Prognosefehler und die Startzeit neuer Instanzen ab und mindert den Latenzanstieg nahe der Sättigung. Der passende Anteil hängt vom Betrieb ab. Ein stabiler interner Dienst mit schnellem Start kann weniger Reserve benötigen; eine öffentliche API mit schwankendem Verkehr, langer Aufwärmzeit oder strengen Latenzzielen eher mehr. Geben Sie einen Wert ab null und unter 100 ein. Der Rechner wendet die Reserve vor der Division an und rundet anschließend immer auf. Vergleichen Sie mehrere Werte, um den Ausgleich zwischen Ausfallsicherheit und Kosten für Beteiligte sichtbar zu machen.
Überführen Sie das Ergebnis in eine Bereitstellungsentscheidung
Das Hauptergebnis ist die kleinste ganze Zahl identischer Server, deren angepasste Kapazität die Ziellast erreicht. Die nutzbare Kapazität pro Server zeigt den Messwert nach Abzug der Reserve. Bereitgestellte Kapazität bezeichnet den gesamten Nenndurchsatz, nutzbare bereitgestellte Kapazität den laut Plan verwendbaren Anteil. Die freie nutzbare Kapazität entsteht durch das Aufrunden. Die Auslastung vergleicht die Ziellast mit der gesamten Nennkapazität. Begründen Sie damit eine Mindestgröße für Autoscaling, eine feste Flotte oder ein Budget und testen Sie anschließend Topologie und Ausfälle. Hochverfügbarkeit, Zonen, Wartung, Replikate oder Instanzverlust können zusätzliche Server verlangen. Diese Redundanz wird nicht automatisch ergänzt; wenden Sie Ihre Architekturvorgaben danach an und rechnen Sie bei geänderten Instanzen oder Leistungen erneut.
Anwendungsfälle
Autoscaling-Grundgröße festlegen
Leiten Sie aus Spitzenlast und gemessenem Durchsatz eine begründete Mindestzahl von Instanzen mit Reserve ab.
Instanztypen vergleichen
Berechnen Sie dasselbe Ziel mit den Messwerten verschiedener Servergrößen, bevor Sie Ressourcen bereitstellen.
Kapazitätsprüfung dokumentieren
Halten Sie Ziel, Messung, Reserve, Auslastung und freie Kapazität als Entscheidungsgrundlage fest.
Häufige Fragen
Wie wird die benötigte Serverzahl berechnet?
Die nutzbare Kapazität ist die Serverkapazität multipliziert mit eins minus Reserveanteil. Die Last wird dadurch geteilt und das Ergebnis aufgerundet.
Welche Kapazität pro Server soll ich angeben?
Verwenden Sie den dauerhaften Durchsatz eines repräsentativen Tests, der Ihre Latenz- und Fehlerziele mit produktionsnaher Konfiguration einhält.
Führt die Reserve zu zusätzlichen Servern?
Sie verringert die angerechnete Kapazität je Server und kann die gerundete Flotte vergrößern. Sie deckt Spitzen, Starts und Prognosefehler ab.
Enthält das Ergebnis Hochverfügbarkeitsredundanz?
Nein. Es berechnet nur das Durchsatzminimum. Ergänzen Sie Instanzen für Zonen, Wartung, Replikate, Quoren und weitere Ausfallsicherheitsregeln.
Was kostet eine API-Anfrage?
Jede API-Berechnung kostet $0.002. Derselbe deterministische Rechner steht im Browser auch kostenlos zur Verfügung.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/dev/servers-needed \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"target_request_rate":10000,"per_server_capacity":1200,"headroom_percent":25}'const res = await fetch("https://api.kit.forhosting.com/dev/servers-needed", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"target_request_rate": 10000,
"per_server_capacity": 1200,
"headroom_percent": 25
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/servers-needed",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"target_request_rate": 10000,
"per_server_capacity": 1200,
"headroom_percent": 25
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/servers-needed", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"target_request_rate":10000,"per_server_capacity":1200,"headroom_percent":25}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"target_request_rate":10000,"per_server_capacity":1200,"headroom_percent":25}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/servers-needed", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"target_request_rate": 10000,
"per_server_capacity": 1200,
"headroom_percent": 25
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.servers_needed",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |