重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 67|回复: 0
打印 上一主题 下一主题

PG参数之 effective_io_concurrency

[复制链接]
跳转到指定楼层
楼主
发表于 2024-8-17 10:27:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在 PostgreSQL 中,`effective_io_concurrency` 是一个配置参数,用于调整在磁盘上进行大规模顺序扫描时的 I/O 并发度。这个参数主要影响多块读取操作,尤其是在使用基于磁盘的索引(如 GiST、SP-GiST、GIN)或进行大型顺序扫描时。

### `effective_io_concurrency` 参数详解

- **参数作用**: `effective_io_concurrency` 控制 PostgreSQL 同时发起多个 I/O 请求的能力。这个参数告诉数据库在并行操作中有多少个 I/O 请求可以同时执行,特别是针对具有多个磁盘或 RAID 阵列的存储系统。提高该值可以使查询在读取大量数据时更高效。

- **适用场景**:
  - 主要影响磁盘 I/O 密集型操作,比如大规模顺序扫描、大数据集的并行处理。
  - 对使用 SSD 或 NVMe 设备的系统效果较好,因为这些设备在处理多个 I/O 请求时表现更佳。

- **默认值**: 1。这个值适用于大多数通用系统,但在高性能存储系统上通常会设置得更高。

- **可配置范围**: 0(禁用 I/O 并发)到 1000。通常在具有多磁盘或高并发存储的系统上,值可以设置得更高。

### 配置示例
你可以在 `postgresql.conf` 文件中设置 `effective_io_concurrency`:

```plaintext
effective_io_concurrency = 200
```

也可以通过 SQL 动态修改(需要超级用户权限):

```sql
SET effective_io_concurrency TO 200;
```

### 如何选择合适的值
- 对于机械硬盘(HDD),设置较低的值,如 1 到 2。
- 对于现代 SSD 或 NVMe 设备,可以设置更高的值,如 100 到 200。
- 进行性能调优时,可以通过实验确定最适合你系统的值。

### 注意事项
- 设置太高的值可能会导致不必要的 I/O 开销,反而降低性能。
- 该参数主要对需要大量并发磁盘读取的操作有效,对于内存足够大、缓存命中率高的系统,影响可能较小。

总的来说,`effective_io_concurrency` 是一个与磁盘 I/O 并发度相关的重要调优参数,适当地配置它可以提高 PostgreSQL 在高性能存储系统上的查询效率。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-9-20 18:43 , Processed in 0.090076 second(s), 20 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表