Requirements and recommendations for the database
PostgreSQL version requirements
All versions of Allure Testops released after the 1st of January 2023 require PostgreSQL ver. 14.
After the 1st of March 2024, we'll discontinue the support of PostgreSQL 14 and PostgreSQL 15 will become the mandatory version.
Both statements mean, we do not perform any tests during the development and QA stages with any PostgreSQL versions except mandatory one, hence we cannot guarantee Allure Testops will be able to perform or start with PostgreSQL versions different from the mandatory one.
Storage
It's highly recommended using enterprise grade SSD for the database.
PostgreSQL parameters recommendations
Allure Testops heavily uses the databases and objects storage during the processing of the test results of automated tests and generation of the widgets in the projects dashboards, thus there are some recommendations based on our experience when working with highly loaded Allure Testops instances in our clients' environments.
random page cost
The setting of parameter random_page_cost
considerably affects the performance of PostgreSQL database and depends on the used storage's disks type.
- in case of SSD use
1.5
. - in case of really quick SSD like AWS gp2/gp3 with high IOPS use
1.2
. - in case of HDD - use default value
4.0
. - do not use the default value
4.0
with SSD.
work mem
work_mem
parameter depends on the RAM available for the database and max session allowed to the database.
New value of
work_mem
parameter will require restarting of the database.
The following formula is to be used to calculate the work_mem
:
work_mem
= db_available_ram x 0.2 / max_sessions_count,
where
max_sessions_count
= num_of_report_service_instances x connection_pool_size_per_instance
connection_pool_size_per_instance
is 10 by default.
work_mem calculation example
- Given 64GB RAM dedicated to your DB
- and you have 10 replicas of report service instances with connection pool size equal to 10
you need to set
work_mem
= 64000*0.2/100 = 128MB
effective io concurrency
effective_io_concurrency
is to be set to
64
in case of SSD1
in case of HDD (the default value)
AWS RDS
If you are using AWS RDS, make sure that IOPS is not limited.
For average/huge size customers, AWS RDS has at least 3 000 IOPS that is equal to 1 000 GB gp2 storage.