Temeller
pgbench (resmi PostgreSQL aracı, TPC-B'ye yakın iş yükü) ve sysbench-tpcc (TPC-C iş yükü, gerçek işlem yükünü daha iyi temsil eder) her ikisi de doğrudan Aurabase projenizin standart Postgres 16 bağlantı dizesinde çalışır; atlanacak özel bir API yoktur. Bu eğitimde gerçek siparişler ve bir GST rakamının yasal olarak nerede biteceğinin kanıtlanabileceği gösterilmektedir.
Basitlik için pgbench, gerçekçilik için sysbench-tpcc
pgbench PostgreSQL ile birlikte dağıtılır: Zaten Postgres istemci araçlarınız varsa istemcide ayrı bir kurulum gerekmez. Varsayılan iş yükü, tarihsel TPC-B kıyaslamasına yakın bir yük üretir; basit, başlatılması hızlı ve ilk sinyal için kullanışlıdır.
sysbench, TPC-C iş yükünü kopyalayan bir sysbench-tpcc eklentisine sahip daha genel bir kıyaslama aracıdır; gerçek bir OLTP uygulamasını (siparişler, ödemeler, envanter) temsil eden işlemlerin bir karışımı olup, Aurabase arka ucunun üretimde işlediği şeylere genel pgbench iş yükünden daha yakındır.
Bağlantı dizesini alın ve özel bir test tabanı oluşturun
1
Aurabase kontrol panelinden bağlantı dizesini alın
Projenizin veritabanı bölümü, standart postgresql://user:password@host:5432/dbnamebiçiminde.
2
Ayrı bir test üssü oluşturun, asla üretim üssünüz değil
psql "$AURABASE_CONN" -c "VERİTABANI OLUŞTURMA deneme_testi;"
pgbench ve sysbench-tpcc tabloları oluşturur, doldurur ve değiştirir. Her zaman özel bir taban kullanın, asla gerçek trafiğe hizmet eden bir plan kullanmayın.
İlk çalıştırmayı başlatın ve başlatın
1
Veri kümesini başlat
pgbench -i -s 10 "postgresql://user:pass@host:5432/bench_test" # -s 10 = ölçek faktörü (pgbench_accounts'ta 10 × 100.000 satır)
2
60 saniyelik bir çalıştırmayı, 10 rakip istemciyi çalıştırın
pgbench -c 10 -j 2 -T 60 -P 5 "postgresql://user:pass@host:5432/bench_test" # -c = eşzamanlı istemciler · -j = iş parçacıkları · -T = saniye cinsinden süre · -P = her 5 saniyede bir rapor
3
Sonucu okuyun
pgbench, çalıştırmanın sonunda bağlantı süresi olsun veya olmasın bir tps (saniye başına işlem sayısı) görüntüler. Ölçek faktörüne, istemci sayısına ve çalıştırma başına süreye dikkat edin; bu üç parametre olmadan sayı tek başına hiçbir şey ifade etmez.
Daha temsili bir işlem iş yükü
1
Sysbench'i ve tpcc eklentisini yükleyin
git clone https://github.com/Percona-Lab/sysbench-tpcc.git # eklentiyi derlemek için deponun README'sini takip edin
2
TPC-C veri kümesini hazırlayın
./tpcc.lua --pgsql-host=ana bilgisayar --pgsql-user=kullanıcı --pgsql-password=pass \ --pgsql-db=bench_test --warehouses=10 hazırla
3
Koşuyu başlat
./tpcc.lua --pgsql-host=host --pgsql-user=user --pgsql-password=pass \ --pgsql-db=bench_test --warehouses=10 --time=300 --threads=16 --report-interval=10 run
PostgreSQL'e özel bir sysbench-tpcc ayarlama kılavuzu Percona tarafından Mayıs 2026'da yayınlandı; temsili bir çalıştırma çalıştırmadan önce shared_buffers ve work_mem'yi ayarlamak için kullanışlıdır.
GST rakamının tek başına neyi kanıtlamadığı
Tps, ölçek faktörüne, eşzamanlı istemcilerin sayısına, temel donanıma ve çalıştırma sırasında etkin olan Postgres ayarlarına bağlıdır. Farklı parametrelerle elde edilen iki zaman rakamı, aynı veri tabanında bile karşılaştırılamaz.
Sonucunuzun tekrarlanabilir bir referans olarak hizmet vermesi için şunları sistematik olarak belgeleyin: Postgres sürümü, ölçek faktörü, istemci/iş parçacığı sayısı, çalıştırma süresi ve etkin postgresql.conf yapılandırması. Bir rakam yayınlamadan önce uyguladığımız protokol için kıyaslama metodolojimizin tamamına bakın.
Bir çalıştırmayı yeniden başlatmadan önce Postgres'i ayarlama
Bir kıyaslama çalışması genellikle herhangi bir ayarlamadan önce bir darboğaz ortaya çıkarır - doymuş bağlantılar, gecikmeli otomatik vakum, eksik dizin. Üretimdeki Postgres ayarlama kontrol listemiz ve max_connections boyutlandırma hakkındaki makalemiz, bir çalıştırmayı yeniden başlatmadan önce kontrol edilecek ayarları kapsar.