Modificare buffer di memoria condivisa
- Aggiunto il:
- Domenica 16 Maggio 2010
- Ultima modifica:
- mai
Risposta
Nel caso il vostro DBMS vada in esaurimento del numero di connessioni, dando un messaggio del tipo: Unable to connect to PostgreSQL server: FATAL: connection limit exceeded for non-superusers
dovrete modificare il numero massimo di connessioni dentro al file postgresql.conf, cambiando il valore del parametro max_connections.
Di conseguenza potrebbe essere necessario modificare il parametro shared_buffers ed impostarlo ad un valore pari a
max_connetions*16KB + superuser_reserved_connetions * 16KB
Sul mio sistema questo cambiamento ha richiesto di modificare in cascata dei parametri di sistema andando a cambiare la memoria massima condivisa. Innanzitutto dovete verificare il nuovo valore, ad es. 512MB
echo 536870912 > /proc/sys/kernel/shmmax
se riavviando Postgres tutto funziona a dovere potrete consolidare il cambiamento inserendo all'interno del file /etc/sysctl.conf la seguente riga:
kernel.shmmax = 536870912
e quindi lanciare il comando sysctl -p
Infine, un altro parametro che ho dovuto modificare riguarda il numero di semafori da mettere a disposizione del sistema. Anche questa volta ho prima effettuato una prova a riga di comando con:
echo "250 32000 100 150" > /proc/sys/kernel/sem
infine confermando il tutto inserendo la riga nel file /etc/sysctl.conf
kernel.sem = 250 32000 100 150
e lanciando il comando sysctl -p



