Skip to content

Resource Usage

Complete dossiers for 51 core PostgreSQL settings in Resource Usage.

Dossier URLs remain flat; this category exists only to organize browsing and the sidebar.

autovacuum_work_mem

The memory ceiling for each autovacuum worker, with -1 meaning that the worker inherits maintenance_work_mem.

backend_flush_after

backend_flush_after — Number of pages after which previously performed writes are flushed to disk. Observed in PG9.6–19 Beta 3; its last measured boot default is 0 B (0 × 8kB) in PG19 Beta 3, with user context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

bgwriter_delay

bgwriter_delay — Background writer sleep time between rounds. Observed in PG9.0–19 Beta 3; its last measured boot default is 200 ms in PG19 Beta 3, with sighup context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

bgwriter_flush_after

bgwriter_flush_after — Number of pages after which previously performed writes are flushed to disk. Observed in PG9.6–19 Beta 3; its last measured boot default is 512 KiB (64 × 8kB) in PG19 Beta 3, with sighup context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

bgwriter_lru_maxpages

bgwriter_lru_maxpages — Background writer maximum number of LRU pages to flush per round. Observed in PG9.0–19 Beta 3; its last measured boot default is 100 in PG19 Beta 3, with sighup context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

bgwriter_lru_multiplier

bgwriter_lru_multiplier — Multiple of the average buffer usage to free per round. Observed in PG9.0–19 Beta 3; its last measured boot default is 2 in PG19 Beta 3, with sighup context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

commit_timestamp_buffers

commit_timestamp_buffers — Sets the size of the dedicated buffer pool used for the commit timestamp cache. Observed in PG17–19 Beta 3; its last measured boot default is 0 B (0 × 8kB) in PG19 Beta 3, with postmaster context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

dynamic_shared_memory_type

dynamic_shared_memory_type — Selects the dynamic shared memory implementation used. Observed in PG9.4–19 Beta 3; its last measured boot default is posix in PG19 Beta 3, with postmaster context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

effective_io_concurrency

Tells PostgreSQL how many storage I/O operations one session should expect to issue concurrently. It shapes asynchronous reads and, on supported systems, prefetch distance; it is not a global I/O limit.

file_copy_method

file_copy_method — Selects the file copy method. Observed in PG18–19 Beta 3; its last measured boot default is copy in PG19 Beta 3, with user context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

file_extend_method

file_extend_method — Selects the method used for extending data files. Observed in PG16–19 Beta 3; its last measured boot default is posix_fallocate in PG19 Beta 3, with sighup context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

hash_mem_multiplier

The multiplier that lets hash-based executor operations use a larger memory budget than the work_mem base.

huge_page_size

huge_page_size — The size of huge page that should be requested. Observed in PG14–19 Beta 3; its last measured boot default is 0 B in PG19 Beta 3, with postmaster context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

huge_pages

Controls explicit huge-page use for PostgreSQL’s main shared-memory area on supported operating systems.

io_combine_limit

io_combine_limit — Limit on the size of data reads and writes. Observed in PG17–19 Beta 3; its last measured boot default is 128 KiB (16 × 8kB) in PG19 Beta 3, with user context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

io_max_combine_limit

io_max_combine_limit — Server-wide limit that clamps io_combine_limit. Observed in PG18–19 Beta 3; its last measured boot default is 128 KiB (16 × 8kB) in PG19 Beta 3, with postmaster context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

io_max_concurrency

io_max_concurrency — Max number of IOs that one process can execute simultaneously. Observed in PG18–19 Beta 3; its last measured boot default is -1 in PG19 Beta 3, with postmaster context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

io_max_workers

io_max_workers — Maximum number of I/O worker processes, for io_method=worker. Observed in PG19 Beta 3; its last measured boot default is 8 in PG19 Beta 3, with sighup context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

io_method

io_method — Selects the method for executing asynchronous I/O. Observed in PG18–19 Beta 3; its last measured boot default is worker in PG19 Beta 3, with postmaster context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

io_min_workers

io_min_workers — Minimum number of I/O worker processes, for io_method=worker. Observed in PG19 Beta 3; its last measured boot default is 2 in PG19 Beta 3, with sighup context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

io_worker_idle_timeout

io_worker_idle_timeout — Maximum time before idle I/O worker processes time out, for io_method=worker. Observed in PG19 Beta 3; its last measured boot default is 1 min in PG19 Beta 3, with sighup context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

io_worker_launch_interval

io_worker_launch_interval — Minimum time before launching a new I/O worker process, for io_method=worker. Observed in PG19 Beta 3; its last measured boot default is 100 ms in PG19 Beta 3, with sighup context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

io_workers

io_workers — Number of IO worker processes, for io_method=worker. Observed in PG18; its last measured boot default is 3 in PG18, with sighup context. It was removed in PG19 Beta 3.

logical_decoding_work_mem

logical_decoding_work_mem — Sets the maximum memory to be used for logical decoding. Observed in PG13–19 Beta 3; its last measured boot default is 64 MiB in PG19 Beta 3, with user context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

maintenance_io_concurrency

maintenance_io_concurrency — A variant of “effective_io_concurrency” that is used for maintenance work. Observed in PG13–19 Beta 3; its last measured boot default is 16 in PG19 Beta 3, with user context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

maintenance_work_mem

The memory ceiling for maintenance commands such as VACUUM, CREATE INDEX, and adding foreign-key constraints.

max_files_per_process

max_files_per_process — Sets the maximum number of files each server process is allowed to open simultaneously. Observed in PG9.0–19 Beta 3; its last measured boot default is 1000 in PG19 Beta 3, with postmaster context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

max_notify_queue_pages

max_notify_queue_pages — Sets the maximum number of allocated pages for NOTIFY / LISTEN queue. Observed in PG17–19 Beta 3; its last measured boot default is 1048576 in PG19 Beta 3, with postmaster context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

max_parallel_maintenance_workers

max_parallel_maintenance_workers — Sets the maximum number of parallel processes per maintenance operation. Observed in PG11–19 Beta 3; its last measured boot default is 2 in PG19 Beta 3, with user context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

max_parallel_workers

max_parallel_workers — Sets the maximum number of parallel workers that can be active at one time. Observed in PG10–19 Beta 3; its last measured boot default is 8 in PG19 Beta 3, with user context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

max_parallel_workers_per_gather

max_parallel_workers_per_gather — Sets the maximum number of parallel processes per executor node. Observed in PG9.6–19 Beta 3; its last measured boot default is 2 in PG19 Beta 3, with user context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

max_prepared_transactions

max_prepared_transactions — Sets the maximum number of simultaneously prepared transactions. Observed in PG9.0–19 Beta 3; its last measured boot default is 0 in PG19 Beta 3, with postmaster context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

max_stack_depth

max_stack_depth — Sets the maximum stack depth, in kilobytes. Observed in PG9.0–19 Beta 3; its last measured boot default is 100 KiB in PG19 Beta 3, with superuser context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

max_worker_processes

max_worker_processes — Maximum number of concurrent worker processes. Observed in PG9.4–19 Beta 3; its last measured boot default is 8 in PG19 Beta 3, with postmaster context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

min_dynamic_shared_memory

min_dynamic_shared_memory — Amount of dynamic shared memory reserved at startup. Observed in PG14–19 Beta 3; its last measured boot default is 0 B in PG19 Beta 3, with postmaster context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

multixact_member_buffers

multixact_member_buffers — Sets the size of the dedicated buffer pool used for the MultiXact member cache. Observed in PG17–19 Beta 3; its last measured boot default is 256 KiB (32 × 8kB) in PG19 Beta 3, with postmaster context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

multixact_offset_buffers

multixact_offset_buffers — Sets the size of the dedicated buffer pool used for the MultiXact offset cache. Observed in PG17–19 Beta 3; its last measured boot default is 128 KiB (16 × 8kB) in PG19 Beta 3, with postmaster context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

notify_buffers

notify_buffers — Sets the size of the dedicated buffer pool used for the LISTEN/NOTIFY message cache. Observed in PG17–19 Beta 3; its last measured boot default is 128 KiB (16 × 8kB) in PG19 Beta 3, with postmaster context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

old_snapshot_threshold

old_snapshot_threshold — Time before a snapshot is too old to read pages changed after the snapshot was taken. Observed in PG9.6–16; its last measured boot default is -1 min in PG16, with postmaster context. It was removed in PG17.

parallel_leader_participation

parallel_leader_participation — Controls whether Gather and Gather Merge also run subplans. Observed in PG11–19 Beta 3; its last measured boot default is on in PG19 Beta 3, with user context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

replacement_sort_tuples

replacement_sort_tuples — Sets the maximum number of tuples to be sorted using replacement selection. Observed in PG9.6–10; its last measured boot default is 150000 in PG10, with user context. It was removed in PG11.

serializable_buffers

serializable_buffers — Sets the size of the dedicated buffer pool used for the serializable transaction cache. Observed in PG17–19 Beta 3; its last measured boot default is 256 KiB (32 × 8kB) in PG19 Beta 3, with postmaster context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

shared_buffers

shared_buffers — Sets the number of shared memory buffers used by the server. Observed in PG9.0–19 Beta 3; its last measured boot default is 128 MiB (16384 × 8kB) in PG19 Beta 3, with postmaster context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

shared_memory_type

shared_memory_type — Selects the shared memory implementation used for the main shared memory region. Observed in PG12–19 Beta 3; its last measured boot default is mmap in PG19 Beta 3, with postmaster context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

subtransaction_buffers

subtransaction_buffers — Sets the size of the dedicated buffer pool used for the subtransaction cache. Observed in PG17–19 Beta 3; its last measured boot default is 0 B (0 × 8kB) in PG19 Beta 3, with postmaster context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

temp_buffers

A per-session, lazily allocated buffer ceiling used only when accessing temporary tables.

temp_file_limit

A per-process safety limit on disk space consumed at one time by executor temporary files.

timing_clock_source

timing_clock_source — Controls the clock source used for collecting timing measurements. Observed in PG19 Beta 3; its last measured boot default is auto in PG19 Beta 3, with superuser context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

transaction_buffers

transaction_buffers — Sets the size of the dedicated buffer pool used for the transaction status cache. Observed in PG17–19 Beta 3; its last measured boot default is 0 B (0 × 8kB) in PG19 Beta 3, with postmaster context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

vacuum_buffer_usage_limit

vacuum_buffer_usage_limit — Sets the buffer pool size for VACUUM, ANALYZE, and autovacuum. Observed in PG16–19 Beta 3; its last measured boot default is 2 MiB in PG19 Beta 3, with user context. This is a beta-snapshot fact and can change before PostgreSQL 19 GA.

work_mem

The per-operation memory budget that determines when sorts and other query workspaces begin spilling to temporary files.