Batch-Durchsatz
Der Batch-Durchsatz-Rechner wandelt Batch-Größe und Verarbeitungsintervall in eine effektive Elementrate um.
Im Browser ausführen – kostenlos
Er zeigt Elemente pro Sekunde, Minute und Stunde und vergleicht diese Kapazität auf Wunsch mit einem Ziel. Bei Angabe einer Zielrate berechnet er die kleinste erforderliche ganzzahlige Batch-Größe bei gleicher Dauer und das längste zulässige Intervall für den vorhandenen Batch. So prüfen Sie Kapazitätsannahmen, bevor Sie Worker, Queue-Consumer, Importe, Inferenzjobs oder geplante Massenvorgänge optimieren.
Überführen Sie Batch-Verhalten in eine vergleichbare Rate
Batch-Systeme werden häufig mit zwei Zahlen beschrieben, die sich nicht direkt vergleichen lassen: der Zahl der Elemente pro Lauf und dessen Dauer. Der Rechner teilt die Batch-Größe durch die Batch-Dauer und ermittelt damit den effektiven Durchsatz in Elementen pro Sekunde. Anschließend rechnet er dieselbe Rate auf Minute und Stunde hoch. Ein Worker, der alle 20 Sekunden 500 Elemente abschließt, erreicht beispielsweise 25 Elemente pro Sekunde, sofern der nächste Batch ohne zusätzliche Verzögerung starten kann. Verwenden Sie die Zeit von Start zu Start, wenn Einrichtung, Polling, Wartezeit oder Queue-Verzögerung zum tatsächlichen Zyklus gehören. Verwenden Sie nur die Verarbeitungszeit, wenn diese Verzögerungen separat erfasst werden. Das Ergebnis ist ein Mittelwert und bedeutet nicht, dass einzelne Elemente gleichmäßig fertig werden. Ein Batch kann sämtliche Resultate zugleich freigeben und dennoch den angegebenen Durchsatz erreichen. Diese Unterscheidung verhindert, dass bei Vergleichen mit Streaming-Workern Auslieferungslatenz und Verarbeitungskapazität verwechselt werden.
Planen Sie die Batch-Größe für eine Zielrate
Geben Sie eine Zielrate in Elementen pro Sekunde an, wenn Sie prüfen möchten, ob die Konfiguration mit Eingängen oder einem Serviceziel Schritt hält. Der Rechner multipliziert das Ziel mit der aktuellen Dauer und rundet auf das nächste ganze Element auf. Das Aufrunden ist notwendig: Ein Bruchteil eines Elements kann nicht hinzugefügt werden, und Abrunden würde weniger Kapazität als gefordert ergeben. Die erforderliche Batch-Größe ist daher die kleinste Ganzzahl, die das Ziel bei unveränderter Dauer erreicht oder übertrifft. Die resultierende Rate zeigt den kleinen Spielraum durch die Rundung. Dieses Szenario setzt voraus, dass ein größerer Batch nicht länger dauert. Das ist eine nützliche Erstschätzung, doch Datenbanken, API, Speicher und parallele Worker können nichtlinear skalieren. Testen Sie die vorgeschlagene Größe mit repräsentativen Nutzlasten und geben Sie das gemessene Intervall erneut ein. Durch Wiederholung ersetzen Sie eine optimistische Annahme durch Messwerte des realen Systems.
Bestimmen Sie das zulässige Intervall des vorhandenen Batches
Mitunter lässt sich die Batch-Größe nicht ändern, weil eine vorgelagerte API, ein Transaktionslimit, der Speicher oder der Message-Broker eine Obergrenze setzt. Dann berechnet die Analyse auch die maximal zulässige Dauer bei aktueller Größe, indem sie die Elementzahl durch die Zielrate teilt. Ein Batch mit 600 Elementen und einem Ziel von 40 Elementen pro Sekunde muss etwa in einem Startintervall von höchstens 15 Sekunden abgeschlossen sein. Vergleichen Sie diese Grenze mit hohen Perzentilen gemessener Zeiten, nicht nur mit dem schnellsten Lauf oder Mittelwert. Überschreiten normale Schwankungen die Grenze, kann die Nennkonfiguration das Ziel erfüllen, während die Produktionswarteschlange trotzdem wächst. Das Ratenverhältnis fasst die Reserve zusammen: über eins bedeutet Überschuss, eins genaue Übereinstimmung und unter eins ein Defizit. Das Modell nimmt eine sequenzielle Spur an. Bei mehreren gleichen Workern verwenden Sie deren kombinierte Größe über ein gemeinsames Intervall oder addieren die nachhaltigen Raten nur bei ausgeglichener Last.
Anwendungsfälle
Queue-Consumer dimensionieren
Wandeln Sie Größe und Intervall des Consumers in eine Rate um und prüfen Sie, ob sie den Nachrichteneingang übersteigt.
Gebündelte API-Aufrufe planen
Ermitteln Sie die Mindestzahl von Datensätzen je Anfrage oder das längste Intervall für die gewünschte Synchronisierung.
Pipeline-Kapazität bewerten
Vergleichen Sie gemessene Import-Batches mit einem Ziel und erkennen Sie Verbesserungsbedarf bei Größe oder Dauer.
Häufige Fragen
Welche Formel berechnet den Batch-Durchsatz?
Der effektive Durchsatz ist die Batch-Größe geteilt durch die Dauer in Sekunden. Die Rate wird auch pro Minute und Stunde angegeben.
Was sollte die Batch-Dauer umfassen?
Nutzen Sie für End-to-End-Kapazität die Zeit von Start zu Start. Isolieren Sie die Verarbeitung nur bei bewusst ausgeschlossenen Wartezeiten.
Wie wird die erforderliche Batch-Größe berechnet?
Die Zielrate wird mit der Dauer multipliziert und aufgerundet, damit die geplante Kapazität nicht unter das Ziel fällt.
Werden parallele Worker berücksichtigt?
Nicht automatisch. Fassen Sie sie in einem gemeinsamen Intervall zusammen oder addieren Sie ihre Raten bei ausgeglichener Last.
Warum kann der reale Durchsatz geringer sein?
Queues, Wiederholungen, Einrichtung, Konkurrenz, nichtlineare Skalierung und ungleiche Last können ihn senken. Nutzen Sie hohe repräsentative Perzentile.
Was kostet eine API-Anfrage?
Jede API-Anfrage kostet $0.002. Im Browser können Sie den Rechner auch kostenlos verwenden.
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/batch-throughput \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"batch_size":500,"batch_time_seconds":20}'const res = await fetch("https://api.kit.forhosting.com/dev/batch-throughput", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"batch_size": 500,
"batch_time_seconds": 20
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/batch-throughput",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"batch_size": 500,
"batch_time_seconds": 20
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/batch-throughput", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"batch_size":500,"batch_time_seconds":20}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"batch_size":500,"batch_time_seconds":20}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/batch-throughput", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"batch_size": 500,
"batch_time_seconds": 20
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.batch_throughput",
"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. |