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

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 408|回复: 1
打印 上一主题 下一主题

PG参数之 dynamic_shared_memory_type

[复制链接]
跳转到指定楼层
楼主
发表于 2024-8-17 10:23:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在 PostgreSQL 中,`dynamic_shared_memory_type` 是一个配置参数,用于控制数据库使用哪种动态共享内存类型。这个参数主要涉及 PostgreSQL 集群中多个进程之间的通信和数据共享,特别是在使用并行查询时。

### `dynamic_shared_memory_type` 参数概述

- **参数作用**: 决定 PostgreSQL 如何管理动态共享内存段。动态共享内存是按需分配的,主要用于 PostgreSQL 后端进程之间的通信,例如在并行查询中。

- **可选值**:
  - `posix`: 使用 POSIX 共享内存接口。这通常是支持该接口的系统上的首选。
  - `sysv`: 使用 System V 共享内存接口。适用于需要兼容老系统的场景。
  - `windows`: 在 Windows 平台上使用 Windows 原生的共享内存。
  - `mmap`: 使用内存映射文件。在不支持 POSIX 或 System V 共享内存的平台上使用此选项。
  - `none`: 禁用动态共享内存。通常用于调试或在不需要动态共享内存的情况下使用。

- **默认值**: 默认值通常是 `posix`,具体取决于操作系统。

### 配置方法
你可以在 `postgresql.conf` 文件中设置 `dynamic_shared_memory_type`:

```plaintext
dynamic_shared_memory_type = 'posix'
```

或者使用 SQL 语句进行设置:

```sql
ALTER SYSTEM SET dynamic_shared_memory_type TO 'posix';
```

在设置后,你需要重启 PostgreSQL 服务器以使更改生效。

### 如何选择合适的类型
- **POSIX**: 在大多数现代类 Unix 系统上是首选,具有良好的性能和可移植性。
- **SYSV**: 如果在使用 POSIX 共享内存时遇到问题,可以考虑使用此选项。
- **mmap**: 在不支持标准共享内存的系统上作为回退选项。

理解并正确配置 `dynamic_shared_memory_type` 有助于优化 PostgreSQL 的性能和系统兼容性。

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

使用道具 举报

沙发
 楼主| 发表于 2024-8-17 10:24:11 | 只看该作者
在最新版本的 PostgreSQL 中,确实有一些关于不再支持 `SYSV` 共享内存的改动。

### PostgreSQL 中对 `SYSV` 支持的变化

从 PostgreSQL 13 开始,`dynamic_shared_memory_type` 参数不再支持 `sysv` 选项。这个改动是为了简化代码和减少维护负担,因为 POSIX 共享内存和 `mmap` 已经在大多数现代操作系统上广泛可用,并且提供了更好的性能和稳定性。

### 影响和替代方案
如果你依赖 `SYSV` 共享内存,那么在 PostgreSQL 13 及更高版本中,系统将无法再使用它。取而代之的选择是:
- **POSIX**:这是推荐的默认选择,支持大多数类 Unix 系统(如 Linux 和 macOS)。
- **mmap**:在不支持 POSIX 的平台上,可以使用内存映射文件。

在大多数场景下,POSIX 共享内存已经能够很好地满足需求,并且比 `SYSV` 更加现代化、易于配置和维护。

### 检查当前支持的共享内存类型
你可以通过查询 `pg_settings` 来查看当前支持的 `dynamic_shared_memory_type` 选项:

```sql
SHOW dynamic_shared_memory_type;
```

如果你的系统支持 POSIX,那么它将是默认配置。如果你尝试在 PostgreSQL 13 及以上版本中使用 `sysv`,会收到错误提示,因为该选项已被移除。

### 结论
PostgreSQL 确实不再支持 `SYSV` 动态共享内存类型,因此建议使用 `POSIX` 或 `mmap` 作为替代方案。

回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-25 01:37 , Processed in 0.099296 second(s), 19 queries .

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

© 2001-2020

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