一、概述
PostgreSQL在postgresql.conf里面的配置参数有几个是和OS的内核参数紧密相关的,通常默认值是偏小的,但设置过大也会造成Postgres的启动失败。
二、测试
1.测试环境
DB: postgres 9.1.3(之后版本这几个参数并未变动)OS: CentOS 6.2 / Redhat(Ubuntu、Debian等linux系统也是一样)
2.内核参数文件位置
/proc/sys/kernel
/etc/sysctl.conf
[root@localhost ~]# sysctl -a|more
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
kernel.shmmni = 4096
kernel.msgmax = 65536
kernel.msgmni = 2005
kernel.msgmnb = 65536
[postgres@localhost ~]$ cat /proc/sys/kernel/sem
250 32000 32 128
(semmsl semmns semopm semmni)
2.1 shared_buffers VS shmget
shared_buffers是共享内存的意思,如果该值超过系统的内存值(包括swap),会造成启动失败。shmget是get share memory,它是创建一个共享内存的函数。