Pgbench
postgres=# create database pgbench ; #1 postgres@srv1:~$ pgbench -i -s 40 pgbench #2 postgres@srv1:~$ pgbench -c 10 -j 4 -t 1000 pgbench pgbench (14.5 (Debian 14.5-1.pgdg100+1)) starting vacuum...end. transaction type: <builtin: TPC-B (sort of)> scaling factor: 4 query mode: simple number of clients: 10 number of threads: 4 number of transactions per client: 1000 number of transactions actually processed: 10000/10000 latency average = 17.450 ms initial connection time = 36.156 ms tps = 573.077101 (without initial connection time)
Pgbench, postgresql’in gömülü gelen (built-in) benchmark test aracıdır. Aynı SQL’leri
eşzamanlı olarak farklı sessionlarla defalarca çalıştırabilir ve istatistikleri raporlayabilir.
Default olarak select, update ve insert işlemlerini içeren TPC-B temelli testlerini
yapar. Ama dışardan sağlanacak SQL’leri de çalıştırıp benchmark testleri yapabilir.
-i (initialize) : Başlatma opsiyonudur. Aşağıda satır sayıları ile verilen 4
adet tabloyu oluşturur. Daha önce oluşturuldu ise siler (drop) ve yeniden oluşturur. Bu
tabloların toplam boyutu 16 MB’ dir.
pgbench_branches 1
pgbench_tellers 10
pgbench_accounts 100.000
pgbench_history 0
-s (scaling faktör) : Ölçekleme opsiyonudur. Yukarıdaki 1. örnekte -s 40
girilmiş yani 40 katını oluşturur. pgbench_accounts tablosuna 4.000.000 kayıt girilir
ve boyut da 640 MB olur.
-c (clients) : Connection yani sesssion sayısıdır. 2. örnekte -c 10 girilmiş yani
10 adet sesssion açılacak.
-j (threads) : Çalışacak worker sayısını belirler. 2. örnekte -j 4 girilmiş yani bu
test boyunca 4 worker prosesi ile çalışacak.
-t (transactions) : Her oturumun (session) çalıştıracağı transaction sayısını
belirler. Yukarıdaki örnekte “-t 1000” , “-c 10” verilmiş yani toplam 10.000 transaction
işlemi yapılacak.
Detaylı bilgi için postgresql.org/docs/current/pgbench.html sitesi ziyaret edilebilir.
