我们使用 CentOS 6.6 版,PostgreSQL 8.4.20 版。(是的,这不是最前沿的。)
在postgresql.conf,我们有:
shared_buffers = 4096MB
Run Code Online (Sandbox Code Playgroud)
内核 shm 值设置得很好且很高:
[root@green data]# sysctl -a | grep shm
kernel.shmmax = 15922077696
kernel.shmall = 3887226
kernel.shmmni = 4096
kernel.shm_rmid_forced = 0
Run Code Online (Sandbox Code Playgroud)
我们有足够的内存:
[root@green data]# free
total used free shared buffers cached
Mem: 31097812 30474972 622840 2873672 1961088 20565360
-/+ buffers/cache: 7948524 23149288
Swap: 1959920 93852 1866068
Run Code Online (Sandbox Code Playgroud)
然而,shared_buffersreported by的值pg_settings只有 512MB,而不是 4GB 中设置的postgresql.conf:
postgres=# select name, setting, min_val, max_val, context from
pg_settings where …Run Code Online (Sandbox Code Playgroud)