# If the instance is lower capacity than r5.xlarge, then set it to a lower number. # Also tune the "MaxOpenConns" setting under the "SqlSettings" of the Mattermost app accordingly. # Note that "MaxOpenConns" on Mattermost is per data source name. max_connections = 1024 # Set it to 1.1, unless the DB is using spinning disks. random_page_cost = 1.1 # This should be 32MB if using read replicas, or 16MB if using a single PostgreSQL instance. # If the instance is of a lower capacity than r5.xlarge, then set it to a lower number. work_mem = 16MB # Set both of the below settings to 65% of total memory. For a 32 GB instance, it should be 21 GB. # If on a smaller server, set this to 20% or less total RAM. # ex: 512MB would work for a 4GB RAM server shared_buffers = 512MB effective_cache_size = 512MB # If you are using pgbouncer, or any similar connection pooling proxy, # in front of your DB, then apply the keepalive settings to the proxy instead, # and revert the keepalive settings for the DB back to defaults. tcp_keepalives_idle = 5 tcp_keepalives_interval = 1 tcp_keepalives_count = 5 # 1GB (reduce this to 512MB if your server has less than 32GB of RAM) maintenance_work_mem = 512MB autovacuum_max_workers = 4 autovacuum_vacuum_cost_limit = 500 ## Intentionally disabled here because running in docker this may cause performance problems. # If you have more than 32 CPUs on your database server, please set the following options to utilize more CPU for your server: # max_worker_processes = 12 # max_parallel_workers_per_gather = 4 # max_parallel_workers = 12 # max_parallel_maintenance_workers = 4 # If the instance is lower capacity than r5.xlarge, then set it to a lower number. # Also tune the "MaxOpenConns" setting under the "SqlSettings" of the Mattermost app accordingly. # Note that "MaxOpenConns" on Mattermost is per data source name. max_connections = 1024 # This setting should be 16MB on read nodes, and 32MB on writer nodes work_mem = 16MB # The below settings allow the reader to return query results even when the primary has a write process running, a query conflict. # This is set to on because of the high volume of write traffic that can prevent the reader from returning query results within the timeout. # https://www.postgresql.org/docs/current/hot-standby.html#HOT-STANDBY-CONFLICT hot_standby = on hot_standby_feedback = on # connection string to sending server # This was created when you added a replication role to the primary database. # username - replace "test" with the role you made # password - replace "testpassword" with the role password # host - replace "x.x.x.x" with your IP or URL string. primary_conninfo = 'host=cs-repro-postgres port=5432 user=replicauser password=replicauser_password' log_connections = on log_disconnections = on log_replication_commands = on