Das Wesentliche
pgbench (offizielles PostgreSQL-Tool, Arbeitslast ähnlich TPC-B) und sysbench-tpcc (TPC-C-Arbeitslast, die eher eine echte Transaktionslast darstellt) laufen beide direkt mit der Standard-Postgres 16-Verbindungszeichenfolge Ihres Aurabase-Projekts – keine proprietäre API zum Umgehen. Dieses Tutorial zeigt die tatsächlichen Bestellungen und wo das endet, was eine GST-Zahl rechtmäßig nachweisen kann.
pgbench der Einfachheit halber, sysbench-tpcc der Realität halber
pgbench wird mit PostgreSQL selbst verteilt: keine separate Installation auf dem Client, wenn Sie bereits über Postgres-Client-Tools verfügen. Sein Standard-Workload reproduziert eine Last, die dem historischen TPC-B-Benchmark nahe kommt – einfach, schnell zu starten, nützlich für ein erstes Signal.
sysbench ist ein allgemeineres Benchmark-Tool mit einem sysbench-tpcc-Plugin, das die TPC-C-Arbeitslast repliziert – eine Mischung aus Transaktionen, die für eine echte OLTP-Anwendung repräsentativ sind (Bestellungen, Zahlungen, Inventar), näher an dem, was Ihr Aurabase-Backend in der Produktion verarbeitet, als die generische pgbench-Arbeitslast.
Rufen Sie die Verbindungszeichenfolge ab und erstellen Sie eine dedizierte Testbasis
1
Rufen Sie die Verbindungszeichenfolge aus dem Aurabase-Dashboard ab
Datenbankabschnitt Ihres Projekts, Standardformat postgresql://user:password@host:5432/dbname.
2
Erstellen Sie eine separate Testbasis, niemals Ihre Produktionsbasis
psql „$AURABASE_CONN“ -c „DATENBANK ERSTELLEN bench_test;“
pgbench und sysbench-tpcc erstellen, füllen und ändern Tabellen. Verwenden Sie immer eine dedizierte Basis, niemals ein Schema, das den tatsächlichen Datenverkehr bedient.
Initialisieren und starten Sie einen ersten Lauf
1
Initialisieren Sie den Datensatz
pgbench -i -s 10 "postgresql://user:pass@host:5432/bench_test" # -s 10 = Skalierungsfaktor (10 × 100.000 Zeilen in pgbench_accounts)
2
Führen Sie einen 60-Sekunden-Lauf mit 10 konkurrierenden Clients durch
pgbench -c 10 -j 2 -T 60 -P 5 "postgresql://user:pass@host:5432/bench_test" # -c = gleichzeitige Clients · -j = Threads · -T = Dauer in Sekunden · -P = Bericht alle 5 Sekunden
3
Lesen Sie das Ergebnis
pgbench zeigt am Ende des Laufs einen tps (Transaktionen pro Sekunde) an, mit und ohne Verbindungszeit. Beachten Sie den Skalierungsfaktor, die Anzahl der Clients und die Dauer pro Lauf – ohne diese drei Parameter bedeutet die Zahl allein nichts.
Eine repräsentativere Transaktionsarbeitslast
1
Installieren Sie Sysbench und das tpcc-Plugin
git clone https://github.com/Percona-Lab/sysbench-tpcc.git # Folgen Sie der README-Datei des Repositorys zum Kompilieren des Plugins
2
Bereiten Sie den TPC-C-Datensatz vor
./tpcc.lua --pgsql-host=host --pgsql-user=user --pgsql-password=pass \ --pgsql-db=bench_test --warehouses=10 vorbereiten
3
Starten Sie den Lauf
./tpcc.lua --pgsql-host=host --pgsql-user=user --pgsql-password=pass \ --pgsql-db=bench_test --warehouses=10 --time=300 --threads=16 --report-interval=10 ausführen
Percona veröffentlichte im Mai 2026 einen sysbench-tpcc-Tuning-Leitfaden für PostgreSQL – nützlich für die Optimierung von shared_buffers und work_mem vor der Ausführung eines repräsentativen Laufs.
Was eine GST-Zahl allein nicht beweist
Die TPS hängen vom Skalierungsfaktor, der Anzahl gleichzeitiger Clients, der zugrunde liegenden Hardware und den zum Zeitpunkt der Ausführung aktiven Postgres-Einstellungen ab. Zwei mit unterschiedlichen Parametern ermittelte Zeitangaben sind selbst in derselben Datenbank nicht vergleichbar.
Damit Ihr Ergebnis als reproduzierbare Referenz dient, dokumentieren Sie systematisch Folgendes: Postgres-Version, Skalierungsfaktor, Anzahl der Clients/Threads, Ausführungsdauer und die effektive postgresql.conf-Konfiguration. Sehen Sie sich unsere vollständige Benchmark-Methodik für das Protokoll an, das wir anwenden, bevor wir eine Zahl veröffentlichen.
Optimieren Sie Postgres vor dem Neustart eines Laufs
Ein Benchmark-Durchlauf deckt oft einen Engpass auf, bevor eine Anpassung vorgenommen wird – gesättigte Verbindungen, verzögertes Autovakuum, fehlender Index. Unsere Postgres-Tuning-Checkliste in der Produktion und unser Artikel über max_connections-Dimensionierung behandeln die Einstellungen, die vor dem Neustart eines Laufs überprüft werden müssen.