{"Entry":{"collection":"guc","key":"effective_io_concurrency","name":"effective_io_concurrency","aliases":[],"metadata":{"baseline":false,"boot_human":"Not specified","boot_val":null,"category":"Resource Usage / I/O","category_zh":"","changed_in":["13","18"],"changes":[{"documentation_changed":false,"fields":{},"from":"8.3","status":"added","to":"8.4"},{"documentation_changed":true,"fields":{},"from":"9.0","status":"changed","to":"9.1"},{"documentation_changed":true,"fields":{},"from":"9.4","status":"changed","to":"9.5"},{"documentation_changed":true,"fields":{},"from":"9.5","status":"changed","to":"9.6"},{"documentation_changed":false,"fields":{"extra_desc":{"from":"For RAID arrays, this should be approximately the number of drive spindles in the array.","to":null}},"from":"12","status":"changed","to":"13"},{"documentation_changed":true,"fields":{"boot_val":{"from":"1","to":"16"},"category":{"from":"Resource Usage / Asynchronous Behavior","to":"Resource Usage / I/O"},"extra_desc":{"from":null,"to":"0 disables simultaneous requests."}},"from":"17","status":"changed","to":"18"}],"content_hash":"71d01136b964a84f8a26d9b91afc822bae2096207999a3bc05538d1508dba443","context":"","default_changed_in":["18"],"default_history":[{"from":"9.0","to":"17","value":"1"},{"from":"18","to":"19","value":"16"}],"editorial":{"advice":{"olap":"Analytical scans and bitmap heap scans are stronger candidates for higher values. Benchmark sustained throughput and tail latency together, especially on network or high-IOPS storage.","oltp":"Start conservatively and measure read latency under concurrency. Fast point queries often gain less than bitmap or scan-heavy workloads, while a very high per-session value can multiply queue depth at high connection counts.","small":"Use the PG18 default or a modest value unless measurements show I/O stalls. A value of 200 is rarely justified on a small host merely because the disk is labeled SSD."},"mechanism":["effective_io_concurrency tells one session how much storage concurrency it should try to exploit; it is not a cluster-wide queue cap. A tablespace option of the same name can override the session setting for data on that storage.","In PG10–17 it mainly controls prefetch distance for supported paths and platforms. The measured Linux-Docker boot value is 1, but unsupported platforms without effective posix_fadvise used 0 as the default; that platform condition must accompany any historical default claim.","PostgreSQL 18 integrates the setting with core asynchronous I/O, uses a boot default of 16, and allows 0 to disable asynchronous requests governed by this target. io_max_concurrency remains the separate per-process execution ceiling, and combine limits control bytes per request."],"pitfalls":["Treating this per-session target as a cluster-wide cap; many sessions can multiply outstanding I/O.","Calling 1 the unconditional PG10–17 upstream default even though unsupported platforms defaulted to 0.","Applying PG18 AIO behavior to older releases that used the setting chiefly for prefetch advice.","Using one global value for mixed-storage tablespaces instead of considering tablespace overrides.","Raising the target until device queueing increases latency for every session."],"references":[{"title":"PostgreSQL 19 Beta 4: effective_io_concurrency","url":"https://www.postgresql.org/docs/19/runtime-config-resource.html#GUC-EFFECTIVE-IO-CONCURRENCY"},{"title":"PostgreSQL 18 release notes: asynchronous I/O and new default","url":"https://www.postgresql.org/docs/18/release-18.html"},{"title":"PostgreSQL 19 release notes","url":"https://www.postgresql.org/docs/19/release-19.html"}],"related":["maintenance_io_concurrency","io_method","io_max_concurrency","io_combine_limit","random_page_cost","effective_cache_size"],"summary":"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."},"enumvals":[],"first_version":"8.4","group":"Resource Usage","group_slug":"resource","imported_at":"2026-09-27T17:57:31.157787+08:00","intro_commit":{},"key":"effective_io_concurrency","last_version":"20","max_val":"","min_val":"","name":"effective_io_concurrency","position":110,"present_in":["8.4","9.0","9.1","9.2","9.3","9.4","9.5","9.6","10","11","12","13","14","15","16","17","18","19","20"],"short_desc":"Sets the number of concurrent storage I/O operations that PostgreSQL expects can be executed simultaneously.","short_desc_zh":"","source_rev":"english-manuals:5f35673734b829e5c9b5f272c5eca20a3f52a36cee297da028e627cdc2fac041","unit":"","vartype":"integer"}},"Definition":{"Collection":"guc","Key":"effective_io_concurrency","SourceDatabase":"center","Version":"18","SourceTable":"guc","SourceKey":"effective_io_concurrency","SourceRevision":"english-manuals:5f35673734b829e5c9b5f272c5eca20a3f52a36cee297da028e627cdc2fac041","Facts":{"boot_val":"16","category":"Resource Usage / I/O","context":"user","description":"Sets the number of concurrent storage I/O operations that PostgreSQL expects can be executed simultaneously. Raising this value will increase the number of I/O operations that any individual PostgreSQL session attempts to initiate in parallel. The allowed range is 1 to 1000, or 0 to disable issuance of asynchronous I/O requests. The default is 16. Higher values will have the most impact on higher latency storage where queries otherwise experience noticeable I/O stalls and on devices with high IOPs. Unnecessarily high values may increase I/O latency for all queries on the system. On systems with prefetch advice support, effective_io_concurrency also controls the prefetch distance. This value can be overridden for tables in a particular tablespace by setting the tablespace parameter of the same name (see ALTER TABLESPACE).","doc":{"anchor":"GUC-EFFECTIVE-IO-CONCURRENCY","file":"runtime-config-resource.html","lang":"en","sha256":"2e207c599f0884dfbe594558c478a2c7c132578981071e980e2015f31dfce28c","slug":"18"},"documented":true,"enumvals":null,"extra_desc":"0 disables simultaneous requests.","lang":"en","max_val":"1000","metadata_version":"18","min_val":"0","name":"effective_io_concurrency","short_desc":"Number of simultaneous requests that can be handled efficiently by the disk subsystem.","source":"pg-settings-source-snapshot","unit":null,"vartype":"integer"},"ManualEvidence":{"doc":{"anchor":"GUC-EFFECTIVE-IO-CONCURRENCY","file":"runtime-config-resource.html","lang":"en","sha256":"2e207c599f0884dfbe594558c478a2c7c132578981071e980e2015f31dfce28c","slug":"18"}},"MeasuredEvidence":{"metadata_version":"18"}},"Text":{"Collection":"guc","Key":"effective_io_concurrency","SourceDatabase":"pgweb","Version":"18","Locale":"zh-Hans","Title":"effective_io_concurrency","Summary":"","BodyHTML":"\u003cp\u003e设置 \u003cspan\u003ePostgreSQL\u003c/span\u003e 预期可以同时执行的并发存储 I/O 操作数量。提高此值会增加单个 \u003cspan\u003ePostgreSQL\u003c/span\u003e 会话尝试并行发起的 I/O 操作数量。允许的范围为 \u003ccode\u003e1\u003c/code\u003e 至 \u003ccode\u003e1000\u003c/code\u003e，或设为 \u003ccode\u003e0\u003c/code\u003e 以禁用异步 I/O 请求。默认值为 \u003ccode\u003e16\u003c/code\u003e。\u003c/p\u003e\u003cp\u003e较高的值对以下存储影响最大：查询原本会出现明显 I/O 停顿的高延迟存储，以及高 IOPS 设备。不必要地设得过高，可能会增加系统中所有查询的 I/O 延迟。\u003c/p\u003e\u003cp\u003e在支持预取建议的系统上，\u003ccode\u003eeffective_io_concurrency\u003c/code\u003e 还控制预取距离。\u003c/p\u003e\u003cp\u003e对于位于特定表空间中的表，可以通过设置同名的表空间参数覆盖此值（见\u003ca href=\"/docs/18/sql-altertablespace.html\" title=\"ALTER TABLESPACE\" rel=\"nofollow\"\u003e\u003cspan\u003eALTER TABLESPACE\u003c/span\u003e\u003c/a\u003e）。\u003c/p\u003e","SourceRevision":"2026-09-11@29c86d9","ContentHash":"b0d5a1e859ed01dc19e5fbb9f90149b2d04bc27c0be49e94193220414a52bdea","Payload":{"carried_from":"","carry_reason":"","doc_html":"\u003cp\u003e设置 \u003cspan class=\"productname\"\u003ePostgreSQL\u003c/span\u003e 预期可以同时执行的并发存储 I/O 操作数量。提高此值会增加单个 \u003cspan class=\"productname\"\u003ePostgreSQL\u003c/span\u003e 会话尝试并行发起的 I/O 操作数量。允许的范围为 \u003ccode class=\"literal\"\u003e1\u003c/code\u003e 至 \u003ccode class=\"literal\"\u003e1000\u003c/code\u003e，或设为 \u003ccode class=\"literal\"\u003e0\u003c/code\u003e 以禁用异步 I/O 请求。默认值为 \u003ccode class=\"literal\"\u003e16\u003c/code\u003e。\u003c/p\u003e\u003cp\u003e较高的值对以下存储影响最大：查询原本会出现明显 I/O 停顿的高延迟存储，以及高 IOPS 设备。不必要地设得过高，可能会增加系统中所有查询的 I/O 延迟。\u003c/p\u003e\u003cp\u003e在支持预取建议的系统上，\u003ccode class=\"varname\"\u003eeffective_io_concurrency\u003c/code\u003e 还控制预取距离。\u003c/p\u003e\u003cp\u003e对于位于特定表空间中的表，可以通过设置同名的表空间参数覆盖此值（见\u003ca href=\"/docs/18/sql-altertablespace.html\" title=\"ALTER TABLESPACE\"\u003e\u003cspan class=\"refentrytitle\"\u003eALTER TABLESPACE\u003c/span\u003e\u003c/a\u003e）。\u003c/p\u003e","doc_same_as":""}},"RequestedLocale":"zh-Hans","Fallback":false,"Versions":["10","11","12","13","14","15","16","17","18","19","20","8.4","9.0","9.1","9.2","9.3","9.4","9.5","9.6"],"Locales":["en","zh-Hans"],"Signatures":null,"Spellings":null,"SQLState":null,"Evidence":null}
