Stack Harbor PaaS sizes a small set of engine parameters against the container’s allocated resources, so MySQL, MariaDB, Percona, and PostgreSQL do not run on out-of-the-box defaults that ignore how much RAM and CPU the container actually has.
This page covers which settings are auto-configured, when they are recalculated, and how to disable auto-configuration when you want to manage them by hand.
MySQL / MariaDB / Percona
The platform manages four settings in /etc/my.cnf, sized against the container’s resource limit:
key_buffer_sizetable_open_cachemyisam_sort_buffer_sizeinnodb_buffer_pool_size
Starting from MySQL 5.7, MySQL 8.0, Percona at the matching version, and MariaDB 10.x, two more parameters are added:
innodb_buffer_pool_instances— note: deprecated in MariaDB starting at 10.6.x (the value is always 1 pool instance from that version on).innodb_buffer_pool_chunk_size
Every vertical-resize event re-runs the sizing pass against the new container limit. You do not need to restart the database after a resize for the new sizing to apply — the platform handles it.
PostgreSQL
For PostgreSQL containers, two parameters in /var/lib/pgsql/data/postgresql.conf are managed:
shared_buffers— a fraction of total RAM. A quarter of RAM when the container has eight or more cloudlets, a seventh otherwise; the floor is 128 KB.max_stack_depth—ulimit -sminus 1024, in MB.
These are recalculated on resize, same as the MySQL-family settings.
Disabling auto-configuration
When you want to manage these settings by hand, you have two options.
The current containers
Set the JELASTIC_AUTOCONFIG environment variable to false, disable, or 0. The platform will stop touching the managed settings, and your edits to /etc/my.cnf (or postgresql.conf) will survive future updates.
Legacy containers
Older containers use a marker line at the top of the config file:
#Jelastic autoconfiguration mark.
Remove that line and your manual edits below will be preserved. Leave it in place and the platform will overwrite the managed settings on the next update pass.
Overriding without disabling autoconfig
For MySQL-family containers, a cleaner alternative is to drop overrides into /etc/mysql/conf.d/my_custom.cnf. Settings in this file take precedence over /etc/my.cnf, including over the auto-configured values, and the platform does not manage my_custom.cnf. You keep the platform-managed defaults for everything else.
PostgreSQL does not have a built-in conf.d mechanism in the same place — manage postgresql.conf directly after removing the autoconfig mark, or use ALTER SYSTEM SQL to write to postgresql.auto.conf.
When to disable autoconfig
Most workloads do better with the auto-configured values than with hand-rolled defaults — the platform’s sizing scales with container resource limits, so a vertical resize automatically updates buffer pool sizes too.
Disable autoconfig when:
- A query workload needs an
innodb_buffer_pool_sizelarger or smaller than the platform default. - You’re benchmarking and want strict control of buffer sizing.
- A specific extension or replication mode requires a managed setting at a non-default value.
In all other cases, leaving autoconfig on means a resize Just Works.
See also
- Database configuration files — file paths and the override locations.
- Database hosting — operational overview for the database tier.
- MySQL/MariaDB/Percona high availability — clustered topologies and ProxySQL.