Vous n'êtes pas identifié(e).

#1 07/10/2012 15:38:19

unbewusst
Membre

FATAL: could not create shared memory segment: Cannot allocate memory

Sur Mac OS X Mountain Lion, je viens juste d'installer psql.
le serveur ne se lance pas et le fichier de log m'indique :

 cat /usr/local/var/postgres/server.log
FATAL:  could not create shared memory segment: Cannot allocate memory
DETAIL:  Failed system call was shmget(key=5432002, size=3809280, 03600).
HINT:  This error usually means that PostgreSQL's request for a shared memory segment exceeded available memory or swap space, or exceeded your kernel's SHMALL parameter.  You can either reduce the request size or reconfigure the kernel with larger SHMALL.  To reduce the request size (currently 3809280 bytes), reduce PostgreSQL's shared memory usage, perhaps by reducing shared_buffers or max_connections.
	The PostgreSQL documentation contains more information about shared memory configuration.

j'ai déjà installé psql sur Lion, sans problème, là j'ai utilisé HomeBrew pour son installation.
au cas où quelqu'un aurait une "recette" pour remédier à ce problème.

Hors ligne

#2 07/10/2012 16:09:34

rjuju
Administrateur

Re : FATAL: could not create shared memory segment: Cannot allocate memory

Bonjour.

Il faut modifier le paramètre shmmax de votre système pour pouvoir allouer la quantité de mémoire paramétrée via shared_buffers dans votre postgresql.conf (ou diminuer le shared_buffers).

Hors ligne

#3 07/10/2012 21:54:48

unbewusst
Membre

Re : FATAL: could not create shared memory segment: Cannot allocate memory

Oui, merci, j'ai lu, à la page :
http://willbryant.net/software/mac_os_x … on_leopard
qu'il fallait changer shmall et shmax.

Sur Mac OS X , la page précédente parle de Leopard, ça marche aussi sur Mountain Lion.

Pour essai, ce qu'il faut faire au terminal :

$ sudo sysctl -w kern.sysv.shmall=65536
$ sudo sysctl -w kern.sysv.shmmax=16777216

Et après avoir vérifié que c'est OK, rendre ce changement permanent après reboot dans un fichier de conf "/etc/sysctl.conf" :

kern.sysv.shmall=65536
kern.sysv.shmmax=16777216

Il faut créer ce fichier (ie. "/etc/sysctl.conf") s'il n'existe pas, c'est le cas sur une installation fraiche.
Ce qui était mon cas.

En tout cas merci bien pour votre diligente réponse.

Hors ligne

Pied de page des forums