Wir sind auf CentOS Release 6.6, PostgreSQL Version 8.4.20. (Ja, das ist keine blutige Kante.)
In postgresql.conf
haben wir:
shared_buffers = 4096MB
Kernel-Shm-Werte sind nett und hoch eingestellt:
[root@green data]# sysctl -a | grep shm
kernel.shmmax = 15922077696
kernel.shmall = 3887226
kernel.shmmni = 4096
kernel.shm_rmid_forced = 0
Wir haben viel Gedächtnis:
[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
Der von shared_buffers
gemeldete Wert pg_settings
beträgt jedoch nur 512 MB, nicht die eingestellten 4 GB postgresql.conf
:
postgres=# select name, setting, min_val, max_val, context from
pg_settings where name='shared_buffers';
name | setting | min_val | max_val | context
----------------+---------+---------+------------+------------
shared_buffers | 524288 | 16 | 1073741823 | postmaster
Ja, wir haben einen vollständigen Neustart durchgeführt und SHOW config_file
bestätigen, dass ich das Recht bearbeitet habe postgresql.conf
.
Mein großer Dank geht an alle, die Einblick in dieses Geheimnis geben können.
quelle
qalc 524288*8 kibibytes to mebibytes
, Zurück:524288 * (8 * kibibyte) = 4096 mebibytes
Was @Daniel so genau erklärt hat , wird ziemlich offensichtlich, wenn Sie Ihrer Anfrage die entsprechende Spalte hinzufügen:
Oder nur:
Beachten Sie die Projektrichtlinien für Ihre Postgres-Version (nicht veraltet und nicht unterstützt).
quelle
habe das gleiche Problem und als ich die folgende Abfrage ausgeführt habe:
Ich habe eine Quelldatei erhalten, die auf postgresql.auto.conf verweist. Daher wurde die Datei entfernt, da nur der Wert für shared_buffers in der Datei festgelegt und neu gestartet wurde
quelle