8.2. Estimating Required Compute Resources #

You can get an approximate estimate of compute resources required to operate Postgres Pro AXE based on the results of benchmark tests performed by Postgres Pro. For the initial deployment, it is recommended to allocate at least 4 CPU cores and 24 GB of RAM.

Since each dataset and query set is unique, and query syntax can directly impact the solution performance, you may need a more precise estimation. For that, perform benchmark tests yourself on servers corresponding to hardware and software requirements, using your dataset and real analytical queries from your applications at peak workloads. During such tests, measure the following characteristics:

  • query execution time

  • number of queries executed per second

  • average CPU load

  • average amount of free RAM

  • average storage read throughput

With benchmark test results, calculate the average consumption of compute resources per analytical query. Then multiply the result by the required number of queries per second to estimate the total amount of compute resources.

You can reduce the required storage read throughput by caching Parquet files in RAM. To do this, use the operating system file cache or the pgpro_axe cache. If most analytical queries read the same cached Parquet files, the CPU consumption is the only limiting factor for the number of queries per second.

Postgres Pro AXE scales linearly: if executing 5 analytical queries per second requires 16 CPU cores, 32 GB of RAM, and 0.5 GB/s of storage read throughput, then executing 10 (5×2) queries per second requires 32 CPU cores, 64 GB of RAM, and 1 GB/s of storage read throughput.

It is recommended to leave a 30% margin of the estimated compute resources for unplanned analytical queries, such as ad-hoc reports.