PG 12 新增参数shared_memory_type用于指定shared memory的类型

0    616    11

👉 本文共约883个字,系统预计阅读时间或需4分钟。

在pg12中新增了Shared_memory_type配置参数用于指定shared memory的类型,可用的参数值有:

  • mmap:Use an anonymous memory map,系统调用是mmap
  • sysv:Use System V shared memory,系统调用是shmget
  • windows:Use Windows shared memory,系统调用是CreateFileMapping

该参数在linux操作系统上的默认值是mmap,这也是从PostgreSQL9.3及其之后版本的默认行为,PostgreSQL9.3之前版本中默认行为是sysv。使用mmap这种共享内存的好处是不再需要配置内核参数"kernel.shmmax"和"kernel.shmall"。

在windows上,该参数值为windows,见下:

本人提供Oracle、MySQL、PG等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!

在Linux平台上:

shared_memory_type (enum)

指定服务器应用于主共享内存区域的共享内存实现,包括 PostgreSQL 的共享缓冲区和其他共享数据。 可能的值为 mmap (对使用 mmap 分配的匿名共享内存),sysv (通过 shmget 分配的系统V 共享内存),和windows (Windows共享内存)。 并非在所有平台上都支持全部值;第一个被支持的选项是该平台的默认选项。 sysv 选项不是任何平台的默认选项,通常不建议使用,因为它通常需要非默认的内核设置来允许大量的地址分配(参见 第 18.4.1 节)。

dynamic_shared_memory_type (enum)

指定服务器应该使用的动态共享内存实现。可能的值是posix(用于使用 shm_open分配的 POSIX 共享内存)、sysv (用于通过shmget分配的 System V 共享内存)、 windows(用于 Windows 共享内存)、和mmap (使用存储在数据目录中的内存映射文件模拟共享内存)。并非所有平台上都支持所有值,平台上第一个支持的选项就是其默认值。 在任何平台上mmap选项都不是默认值,通常不鼓励使用它,因为操作系统会 反复地把修改过的页面写回到磁盘上,从而增加了系统的I/O负载。不过当 pg_dynshmem目录被存储在一个 RAM 盘时或者没有其他共享内存功能可用时, 它还是有用的。

标签:

头像

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

3 × 1 =

 

嘿,我是小麦,需要帮助随时找我哦
  • 18509239930
  • 个人微信

  • 麦老师QQ聊天
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部
返回顶部