[linux-l] Service Speicherlimit (Cluster)

Ralph Angenendt ralph at strg-alt-entf.org
Di Jan 7 13:34:48 CET 2020


Peter Rader wrote:
>In den logs steht etwas von Speicherproblemen ab ~41 Megabyte:
>
>Jan 07 12:50:01 rmktt-036 postgresql at 9.4-repgtv[6187]: The PostgreSQL server failed to start. Please check the log output:
>Jan 07 12:50:01 rmktt-036 postgresql at 9.4-repgtv[6187]: 2020-01-07 12:50:01 CET [6197-1] FATAL:  could not map anonymous shared memory: Cannot allocate memory
>Jan 07 12:50:01 rmktt-036 postgresql at 9.4-repgtv[6187]: 2020-01-07 12:50:01 CET [6197-2] HINT:  This error usually means that PostgreSQL's request for a shared memory segment exceeded available memory, swap space, or huge pages. To reduce the request size (currently 41787392 bytes), reduce PostgreSQL's shared memory usag
> 
>Jemand eine Idee?

Du hast nicht genügend shared memory (SHM) auf der Maschine 
konfiguriert.

Das kann via sysctl eingestellt werden.

Erst mal rausbekommen, was maximal auf deiner Maschine möglich ist:

 |teatime:~# sysctl kernel.shmmax
 |kernel.shmmax = 18446744073692774399

Dann die Pagesize auf deinem Rechner herausfinden:

 |teatime:~# getconf PAGE_SIZE
 |4096

SHMALL setzt die Anzahl der shared memory pages, die systemweit genutzt 
werden können - das sollte *mindestens* shmmax/pagesize sein. In dem 
Fall hier also:

 | teatime:~# echo "18446744073692774399/4096" | bc
 | 4503599627366399

Das kannst du dann mit sysctl setzen:

 | teatime:~# sysctl -w kernel.shmall=4503599627366399

Oder wenn das einen reboot überleben soll: 

 | teatime:~# echo "kernel.shmall=4503599627366399 >> /etc/sysctl.conf"

Mehr Information, gerade im Kontext "PostgreSQL" gibt es hier: 
https://www.postgresql.org/docs/9.0/kernel-resources.html

Cheers,

Ralph
-- 
He'll rekindle all the dreams it took you a lifetime to destroy


Mehr Informationen über die Mailingliste linux-l