Parameter list
KakaoCloud provides various parameters necessary for PostgreSQL configuration.
Some parameters support functions, expressions, and keywords. For more details, please refer to Parameter group > Expressions, functions, and keywords used in parameters.
Detailed information such as units, types, data formats, and editability of parameters can be found in the parameter group details view within the console.
Parameters with a Float data format use the %.6g format when displaying values. This format only outputs up to 6 significant digits (excluding the decimal point). If the number of digits is exceeded, it is automatically rounded for display. Therefore, the value entered in the parameter group may differ from the actual value verified in the database.
Parameters to be careful of when modifying
These parameters require caution during modification because improper settings can affect the operation of the PostgreSQL service.
Due to its internal structure, PostgreSQL limits the total number of processes to 262,143 or fewer.
If the sum of autovacuum_max_workers, max_connections, max_wal_senders, and max_worker_processes exceeds 262,143, the configured values for these parameters will not be applied.
| Parameter name | Description | Cautions |
|---|---|---|
| autovacuum_work_mem | Memory size for Autovacuum tasks (-1 uses maintenance_work_mem) | The default value is -1, meaning no specific memory size is set, and it is configured to use the value of maintenance_work_mem instead.Values from 0 to 1023 cannot be set due to database constraints.If this parameter is set to a specific value, the total memory usage can increase up to autovacuum_work_mem × autovacuum_max_workers, so caution is required. |
| effective_cache_size | Value used by the query planner to estimate available cache memory | While it does not directly allocate actual memory, it must be set appropriately considering the overall memory scale of the database server. |
| maintenance_work_mem | Maximum memory size for maintenance tasks (VACUUM, CREATE INDEX, etc.) | Since this memory is allocated individually per task unit, if multiple tasks are performed simultaneously, the total memory usage may increase and affect the service. |
| max_connections | Maximum number of simultaneous client connections allowed | Each connection consumes system resources. Setting an excessively high value can lead to system load due to CPU and memory usage, affecting the service. |
| max_locks_per_transaction | Maximum number of locks that can be acquired per transaction | Setting an excessively high value may cause issues with service startup due to insufficient memory. |
| max_parallel_workers | Maximum number of parallel workers allowed on the server | Setting a value too large for the server specifications can put a load on the system due to high CPU and memory usage. |
| max_pred_locks_per_transaction | Maximum number of predicate locks that can be acquired per transaction | Setting an excessively high value may cause issues with service startup due to insufficient memory. |
| max_prepared_transactions | Maximum number of prepared transactions that can be used simultaneously | Setting an excessively high value may cause issues with service startup due to insufficient memory. |
| max_worker_processes | Maximum number of background workers for parallel processing, background tasks, extensions, etc. | If set too low, features may not function correctly or parallel processing may be limited. If set too high, it may cause issues with service startup due to memory exhaustion. |
| shared_buffers | Parameter specifying the Shared memory size for caching table and index data | Setting it too small leads to performance degradation, while setting it too high can cause system overload or failures. |
| wal_keep_size | Setting that specifies the minimum size of WAL files to retain | If replication delay occurs and the standby server does not receive necessary WAL files, the replication connection may be lost. It should be set to a sufficient value to prevent WAL deletion. |
| work_mem | Memory size allocated for query operations such as sorting, hashing, and aggregation | Since it is allocated separately per task unit, if many queries are executed simultaneously, memory usage may increase and affect the service. |
Parameters with recommended values or restrictions
Among the provided parameters, these have recommended settings based on operational policies or are parameters that cannot be set directly.
| Parameter name | Description |
|---|---|
| application_name | Specifies the name of the application executing the current session. If a change is needed, it can be set at the session level using the SET command. |
| client_encoding | Sets the character encoding method between the client and the server. If a change is needed, it can be set at the session level using the SET command.Only character sets supported by PostgreSQL can be used. For a list and detailed descriptions, please refer to the official documentation. |
| DateStyle | Sets the output format for date and time. When using a different DateStyle, it is recommended to set it for the user via ALTER USER ... SET rather than using the database parameter to fix the user's DateStyle. |
| lc_messages | Language setting for messages and error messages. Provided based on locale information from the operating system. Values other than locales registered in the system cannot be set. |
| lc_monetary | Locale determining the currency unit format. Provided based on locale information from the operating system. Values other than locales registered in the system cannot be set. |
| lc_numeric | Locale determining the number format. Provided based on locale information from the operating system. Values other than locales registered in the system cannot be set. |
| lc_time | Locale determining the date and time format. Provided based on locale information from the operating system. Values other than locales registered in the system cannot be set. |
| log_statement_stats | Whether to log query execution statistics. Can only be set if log_parser_stats, log_planner_stats, and log_executor_stats are all disabled (OFF). |
| log_timezone | Timezone to be used for log timestamps. Configurable timezones are provided based on major countries and regions. |
| tcp_keepalives_count | Maximum number of keepalive packets to send before a TCP connection is dropped. Determined by the operating system's TCP Keepalive settings and cannot be modified. |
| tcp_keepalives_idle | Maximum time (in seconds) a TCP connection can remain inactive. Determined by the operating system's TCP Keepalive settings and cannot be modified. |
| tcp_keepalives_interval | Interval (in seconds) between TCP keepalive packets. Determined by the operating system's TCP Keepalive settings and cannot be modified. |
| TimeZone | Default timezone to be used by the server. Configurable timezones are provided based on major countries and regions. |
| wal_buffer | WAL log buffer size. Values from 0 to 3 cannot be set due to database constraints. |