This is a scratch pad for some PostgreSQL 8.0 benchmarks. The contributed utility pgbench is used for the testing.
shared_buffers = 23987 max_fsm_relations = 5950 max_fsm_pages = 3207435 wal_buffers = 544 checkpoint_segments = 40 checkpoint_timeout = 900 checkpoint_warning = 300 commit_delay = 20000 commit_siblings = 3 wal_sync_method = fdatasync enable_seqscan = off default_with_oids = off stats_start_collector = false
Exceptions are noted as the tests are performed.
The pgbench test database was created with the -s600 scale factor option. This results in a fresh database of about 8.6GiB, along with 1.3GiB of WAL. The test database was then backed up to a .tar.gz file so it could easily be restored between test runs.
Each test was executed 5 times in sequence, and the median result is reported. All tests were executed with the -c100 option for 100 connections. The transaction count per connection was adjusted as necessary so that each single test would span several minutes. Typical settings were -t500 to -t1000.
The pgbench client was actually run over a 100Mbit, full-duplex network connection from a client machine for all of the testing. Running pgbench remotely has not measurably degraded the performance. The client machine is a dual 3.06GHz Xeon running Linux 2.4.27. SSL encryption was disabled.
The base hardware:
The base software:
On with the testing!
Data array: RAID5, 4x 72GB 10k RPM
WAL array: On data array
scaling factor: 100 number of clients: 100 number of transactions per client: 100 number of transactions actually processed: 10000/10000 tps = 132.257337 (including connections establishing) tps = 141.908320 (excluding connections establishing) scaling factor: 600 number of clients: 100 number of transactions per client: 1000 number of transactions actually processed: 100000/100000 tps = 114.351628 (including connections establishing) tps = 114.418688 (excluding connections establishing) scaling factor: 600 number of clients: 100 number of transactions per client: 500 number of transactions actually processed: 50000/50000 tps = 124.728272 (including connections establishing) tps = 124.885813 (excluding connections establishing)
Data array: RAID5, 4x 72GB 10k RPM
WAL array: On data array
Other notes: commit_delay disabled
scaling factor: 100 number of clients: 100 number of transactions per client: 100 number of transactions actually processed: 10000/10000 tps = 135.567199 (including connections establishing) tps = 146.354640 (excluding connections establishing) scaling factor: 600 number of clients: 100 number of transactions per client: 1000 number of transactions actually processed: 100000/100000 tps = 118.365607 (including connections establishing) tps = 118.442501 (excluding connections establishing) scaling factor: 600 number of clients: 100 number of transactions per client: 500 number of transactions actually processed: 50000/50000 tps = 124.696768 (including connections establishing) tps = 124.870136 (excluding connections establishing) scaling factor: 600 number of clients: 100 number of transactions per client: 500 number of transactions actually processed: 50000/50000 tps = 129.347747 (including connections establishing) tps = 129.517978 (excluding connections establishing)
Data array: RAID5, 4x 72GB 10k RPM
WAL array: On data array
Other notes: battery-backed write cache disabled
scaling factor: 100 number of clients: 100 number of transactions per client: 50 number of transactions actually processed: 5000/5000 tps = 76.678506 (including connections establishing) tps = 83.263195 (excluding connections establishing) scaling factor: 600 number of clients: 100 number of transactions per client: 500 number of transactions actually processed: 50000/50000 tps = 103.447886 (including connections establishing) tps = 103.556659 (excluding connections establishing) scaling factor: 600 number of clients: 100 number of transactions per client: 500 number of transactions actually processed: 50000/50000 tps = 114.885220 (including connections establishing) tps = 115.020971 (excluding connections establishing)
Data array: RAID5, 4x 72GB 10k RPM
WAL array: On data array
Other notes: Battery-backed write cache and commit_delay disabled
scaling factor: 100 number of clients: 100 number of transactions per client: 50 number of transactions actually processed: 5000/5000 tps = 50.434271 (including connections establishing) tps = 53.195151 (excluding connections establishing) scaling factor: 600 number of clients: 100 number of transactions per client: 500 number of transactions actually processed: 50000/50000 tps = 73.665381 (including connections establishing) tps = 73.725278 (excluding connections establishing) scaling factor: 600 number of clients: 100 number of transactions per client: 500 number of transactions actually processed: 50000/50000 tps = 80.177806 (including connections establishing) tps = 80.244181 (excluding connections establishing)
Data array: RAID1, 2x 72GB 10k RPM
WAL array: RAID1, 2x 72GB 10k RPM
scaling factor: 100 number of clients: 100 number of transactions per client: 1000 number of transactions actually processed: 100000/100000 tps = 217.737758 (including connections establishing) tps = 220.277597 (excluding connections establishing)
Data array: RAID1+0, 4x 72GB 15k RPM
WAL array: On data array
scaling factor: 100 number of clients: 100 number of transactions per client: 1000 number of transactions actually processed: 100000/100000 tps = 325.140579 (including connections establishing) tps = 330.843403 (excluding connections establishing) scaling factor: 600 number of clients: 100 number of transactions per client: 1000 number of transactions actually processed: 100000/100000 tps = 284.662951 (including connections establishing) tps = 285.127666 (excluding connections establishing)
Data array: RAID5, 4x 72GB 15k RPM
WAL array: On data array
scaling factor: 100 number of clients: 100 number of transactions per client: 1000 number of transactions actually processed: 100000/100000 tps = 192.430583 (including connections establishing) tps = 194.404205 (excluding connections establishing) scaling factor: 600 number of clients: 100 number of transactions per client: 1000 number of transactions actually processed: 100000/100000 tps = 189.203382 (including connections establishing) tps = 189.379783 (excluding connections establishing)
Data array: RAID1, 2x 72GB 15k RPM
WAL array: RAID1, 2x 72GB 15k RPM
scaling factor: 100 number of clients: 100 number of transactions per client: 1000 number of transactions actually processed: 100000/100000 tps = 263.185661 (including connections establishing) tps = 266.928392 (excluding connections establishing) scaling factor: 600 number of clients: 100 number of transactions per client: 1000 number of transactions actually processed: 100000/100000 tps = 171.537230 (including connections establishing) tps = 171.680858 (excluding connections establishing)
Data array: RAID1+0, 4x 72GB 15k RPM
WAL array: RAID1, 2x 72GB 10k RPM
scaling factor: 100 number of clients: 100 number of transactions per client: 2000 number of transactions actually processed: 200000/200000 tps = 409.561669 (including connections establishing) tps = 414.078634 (excluding connections establishing) scaling factor: 600 number of clients: 100 number of transactions per client: 1000 number of transactions actually processed: 100000/100000 tps = 340.756686 (including connections establishing) tps = 341.404543 (excluding connections establishing)
Data array: RAID5, 4x 72GB 15k RPM
WAL array: RAID1, 2x 72GB 10k RPM
scaling factor: 100 number of clients: 100 number of transactions per client: 1000 number of transactions actually processed: 100000/100000 tps = 276.581309 (including connections establishing) tps = 280.727719 (excluding connections establishing) scaling factor: 600 number of clients: 100 number of transactions per client: 1000 number of transactions actually processed: 100000/100000 tps = 212.377629 (including connections establishing) tps = 212.615105 (excluding connections establishing)
Data array:
WAL array:
Other notes:
Part of CategoryDiskNotes
4 pages link to PgBench: