Performance di Postgresql - Regolazione di SHMMAX e SHMALL


9

Ho letto tutto quello che c'è online sul miglioramento delle prestazioni di postgres, ma i valori "giusti" per SHMMAX e SHMALL mi sfuggono ancora.

Il consenso sembra essere SHMMAX = total_memory / 4 e SHMALL = total_memory / 2 sono valori di partenza sicuri.

Tuttavia, SHMALL può essere misurato in pagine o byte e non riesco a trovare alcuna informazione su quale viene utilizzato su Ubuntu.

Ubuntu (o più in generale Debian) usa pagine o byte per SHMALL?

Risposte:


11

Per tutti i sistemi Linux che ho usato SHMALLè misurato in pagine ed SHMMAXè misurato in byte. Penso che puoi controllare il tuo sistema usando il ipcscomando, che converte sempre sopra i parametri in KBytes durante l'output e confrontarlo con i sysctlvalori:

[aseryozhin@centos ~]$ ipcs -l

------ Shared Memory Limits --------
max number of segments = 4096               // SHMMNI   
max seg size (kbytes) = 524288              // SHMMAX
max total shared memory (kbytes) = 8388608  // SHMALL
min seg size (bytes) = 1

[aseryozhin@centos ~]$ sysctl -e kernel.shmmax
kernel.shmmax = 536870912

[aseryozhin@centos ~]$ sysctl -e kernel.shmall
kernel.shmall = 2097152

[aseryozhin@centos ~]$ getconf PAGE_SIZE
4096

SHMMAX: 524288 * 1024 = 536870912

SHMALL: 8388608 * 1024/4096 = 2097152


2

Queste variabili sono misurate in byte come indicato nella documentazione. Penso che sia più importante guardare i parametri di configurazione di postgresql. È necessario guardare i valori SHMALL / SHMMAX quando necessario. Ad esempio, se si desidera aumentare il numero massimo di connessioni, potrebbe essere necessario aumentare questi limiti.

L'ottimizzazione del server di database dipende dal modello di utilizzo, ad esempio il numero di connessioni simultanee e le dimensioni del database. Aumentare un parametro di configurazione non è sempre positivo.


2
SHMMAX deve essere aumentato per aumentare il valore di shared_buffers, che è il frutto più basso possibile quando si tratta di prestazioni postgresql. Puoi aggiungere un link alla documentazione?
Enrico,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.