[linux-l] Service Speicherlimit (Cluster)

Peter Rader p.rader at gmx.net
Di Jan 7 13:55:37 CET 2020


> 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"
>

Gesagt getan (dass die Werte überein stimmen ist Zufall):

:# sysctl kernel.shmmax
kernel.shmmax = 18446744073692774399
:# getconf PAGE_SIZE
4096
:# echo "18446744073692774399/4096" | bc
4503599627366399
:# sysctl -w kernel.shmall=4503599627366399
kernel.shmall = 4503599627366399
:# service postgresql restart
:# pg_lsclusters
Ver Cluster Port Status Owner    Data directory                  Log file
9.4 main    5432 online postgres /var/lib/postgresql/9.4/main    /var/log/postgresql/postgresql-9.4-main.log
9.4 repgtv  5433 down   postgres /var/lib/postgresql/9.4/repgtv /var/log/postgresql/postgresql-9.4-repgtv.log


Log datei:

2020-01-07 13:45:06 CET [10993-1] FATAL:  could not map anonymous shared memory: Cannot allocate memory
2020-01-07 13:45:06 CET [10993-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 usage, perhaps by reducing shared_buffers or max_connections.



Mehr Informationen über die Mailingliste linux-l