This has results for HammerDB tproc-c on a large server using MySQL and Postgres. I am new to HammerDB and still figuring out how to explain and present results so I will keep this simple and just share graphs without explaining the results.tl;drThere are small regressions in versions 16, 17 and 18NOPM usually improves a small amount in 19 beta1 relative to 18Builds, configuration and hardwareI compiled Postgres versions from source: 14.22, 14.23, 15.17, 15.18, 16.13, 16.14, 17.9, 17.10, 18.0, 18.1, 18.2, 18.3, 18.4 and 19 beta1.I used a 48-core server from Hetzneran ax162s with an AMD EPYC 9454P 48-Core Processor with SMT disabled2 Intel D7-P5520 NVMe storage devices with RAID 1 (3.8T each) using ext4128G RAMUbuntu 24.04Postgres configuration files:prior to version 18 the config file is named conf.diff.cx10a50g_c32r128 (x10a_c32r128) and is here for versions 14, 15, 16 and 17.for Postgres 18 and 19 I used conf.diff.cx10b_c32r128 (x10b_c32r128) with io_method=sync to be similar to the config used for versions 14 through 17.BenchmarkThe benchmark is tproc-c from HammerDB. The tproc-c benchmark is derived from TPC-C.The benchmark was run for several workloads:vu=10, wh=1000 - 10 virtual users, 1000 warehousesvu=20, wh=1000 - 20 virtual users, 1000 warehousesvu=40, wh=1000 - 40 virtual users, 1000 warehousesvu=10, wh=2000 - 10 virtual users, 2000 warehousesvu=20, wh=2000 - 20 virtual users, 2000 warehousesvu=40, wh=2000 - 40 virtual users, 2000 warehousesvu=10, wh=4000 - 10 virtual users, 4000 warehousesvu=20, wh=4000 - 20 virtual users, 4000 warehousesvu=40, wh=4000 - 40 virtual users, 4000 warehousesThe wh=1000 workloads are less heavy on IO. The wh=4000 workloads are more heavy on IO.The benchmark for Postgres is run by a variant of this script which depends on scripts here.stored procedures are enabledpartitioning is used because the warehouse count is >= 1000a 5 minute rampup is usedthen performance is measured for 60 minutesResultsMy analysis at this point is simple -- I only consider average throughput. Eventually I will examine throughput over time and efficiency (CPU and IO).On the charts that follow y-axis does not start at 0 to improve readability at the risk of overstating the differences. The y-axis shows relative throughput. There might be a regression when the relative throughput is less than 1.0. There might be an improvement when it is > 1.0. The relative throughput is:(NOPM for some-version / NOPM for base-version)The base version is Postgres 14.22.A spreadsheet with absolute and relative values for NOPM is here.Results: vu=10, wh=1000Summary:There are small regressions in versions 16, 17 and 18 while NOPM improves is 19 beta1Results: vu=20, wh=1000Summary:There are small regressions in versions 16, 17 and 18 while NOPM improves is 19 beta1Results: vu=40, wh=1000Summary:There are small regressions in versions 17 and 18 while NOPM improves is 19 beta1Results: vu=10, wh=2000Summary:There are small regressions in version 18 while NOPM improves is 19 beta1Results: vu=20, wh=2000Summary:There are small regressions in versions 16, 17 and 18 while NOPM improves is 19 beta1Results: vu=40, wh=2000Summary:There are small regressions in versions 16, 17 and 18 while NOPM improves is 19 beta1There is no result for 18.1 because of a bug in my test scriptsResults: vu=10, wh=4000Summary:There are small regressions in versions 16, 17 and 18 while NOPM improves is 19 beta1Results: vu=20, wh=4000Summary:There are small regressions in versions 16, 17 and 18Results: vu=40, wh=4000Summary:There are small regressions in versions 16, 17 and 18 while NOPM improves is 19 beta1
HammerDB tproc-c on a large server, Postgres 14 to 19 beta1 appeared first on MariaDB.org
This has results for HammerDB tproc-c on a large server using MySQL and Postgres. I am new to HammerDB and still figuring out how to explain and present results so I will keep this simple and just share graphs without explaining the results.
tl;dr
Builds, configuration and hardware
I compiled Postgres versions from source: 14.22, 14.23, 15.17, 15.18, 16.13, 16.14, 17.9, 17.10, 18.0, 18.1, 18.2, 18.3, 18.4 and 19 beta1.
I used a 48-core server from Hetzner
Postgres configuration files:
Benchmark
The benchmark is tproc-c from HammerDB. The tproc-c benchmark is derived from TPC-C.
The benchmark was run for several workloads:
The wh=1000 workloads are less heavy on IO. The wh=4000 workloads are more heavy on IO.
Results
My analysis at this point is simple -- I only consider average throughput. Eventually I will examine throughput over time and efficiency (CPU and IO).
On the charts that follow y-axis does not start at 0 to improve readability at the risk of overstating the differences. The y-axis shows relative throughput. There might be a regression when the relative throughput is less than 1.0. There might be an improvement when it is > 1.0. The relative throughput is:
(NOPM for some-version / NOPM for base-version)
The base version is Postgres 14.22.
A spreadsheet with absolute and relative values for NOPM is here.
Results: vu=10, wh=1000
Summary:
Results: vu=20, wh=1000
Summary:
Results: vu=40, wh=1000
Summary:
Results: vu=10, wh=2000
Summary:
Results: vu=20, wh=2000
Summary:
Results: vu=40, wh=2000
Summary:
Results: vu=10, wh=4000
Summary:
Results: vu=20, wh=4000
Summary:
Results: vu=40, wh=4000
Summary:
| # | Наименование новости | Тональность | Информативность | Дата публикации |
|---|---|---|---|---|
| 1 | HammerDB tproc-c on a large server, Postgres and MySQL | 0 | 6.5 | 15-02-2026 |
| 2 | CPU efficiency for MariaDB, MySQL and Postgres on TPROC-C with a small server | 0 | 4.26 | 16-03-2026 |
| 3 | CPU-bound sysbench on a large server: Postgres 12 to 19 beta1 | 0 | 13.06 | 20-06-2026 |
| 4 | The insert benchmark on a small server : Postgres 12.22 through 18.3 | 0 | 11.9 | 29-03-2026 |
| 5 | The insert benchmark on a small server, IO-bound workload : Postgres 19 beta1 | 0 | 14.28 | 17-06-2026 |
| 6 | The insert benchmark on a small server, cached workload : Postgres 19 beta1 | 0 | 15.89 | 11-06-2026 |
| 7 | Write-heavy sysbench tests, a large server, modern Postgres and MySQL | 0 | 11.86 | 12-06-2026 |
| 8 | The Insert Benchmark vs MariaDB 10.2 to 13.0 on a 24-core server | 0 | 12.6 | 08-04-2026 |
| 9 | Explaining why throughput varies for Postgres with a CPU-bound Insert Benchmark | 0 | 7.8 | 18-02-2026 |
| 10 | Sysbench vs MySQL on a small server: another way to view the regressions | 0 | 9.01 | 09-04-2026 |