概述
MogDB/openGauss 虽然与PostgreSQL同源,但是对内存资源使用这部分还是做了一定的修改,最主要的修改就是对数据库使用操作系统内存的实例级限制,这在PostgreSQL中是缺失的,下表对两个数据库之间内存使用差异做一下整理。
PostgreSQL | MogDB | 备注 | |
---|---|---|---|
max_process_memory | - | 最小为2GB,默认单位是KB | 限制使用服务器内存大小 |
shared_buffers | 最小为128KB,默认128MB | 最小为128MB,默认1GB | 如参数值没有带单位,大小为是n * 8KB |
standby_shared_buffers_fraction | - | 默认值0.3 | 备实例所在服务器使用shared_buffers内存缓冲区大小的比例 |
work_mem | 默认4MB | 最小64KB,默认64MB | 内部排序操作和Hash表在开始写入临时磁盘文件之前使用的内存大小,单位是KB |
maintenance_work_mem | 默认64MB | 最小1024KB,默认128MB | 维护性操作(比如VACUUM、CREATE INDEX、ALTER TABLE ADD FOREIGN KEY等)中可使用的最大的内存,单位KB |
temp_buffers | 默认8MB | 默认1MB,最小100 * 8KB | 每个数据库会话设置用于临时缓冲区的最大内存,如果参数值没有单位,大小为n * 8KB |
huge_pages | 默认值try | - | 是否为主共享内存区域请求巨型页,设置为try,则服务器将尝试请求巨型页,但是如果失败会退回到默认的方式。如果为on,请求巨型页失败将使得服务器无法启动。如果为off,则不会请求巨型页 |
memorypool_enable | - | 默认值off | 是否允许使用内存池 |
memorypool_size | - | 最小128KB,默认512MB | 内存池大小 |
enable_memory_limit | - | 默认值on | 是否启用逻辑内存管理模块,若max_process_memory-shared_buffers-cstore_buffers少于2G,MogDB强制把enable_memory_limit设置为off。 |
cstore_buffers | - | 最小16384KB,默认1GB | 列存所使用的共享缓冲区的大小,单位KB |
psort_work_mem | - | 最小64KB,默认512MB | 列存表在进行局部排序中在开始写入临时磁盘文件之前使用的内存大小,单位KB |
bulk_write_ring_size | - | 最小16384KB,默认2GB | 数据并行导入使用的环形缓冲区大小,单位KB |
query_max_mem | - | 默认0 | 执行作业所能够使用的最大内存,单位KB,值为负值或小于32MB,将设置为0,关闭此限制 |
query_mem | - | 默认0 |