I'm trying to better understand my performance / tuning options for a PostgreSQL database.
System:
- Ubuntu 22.04.1 LTS
- aarch64, 80 cores, 256 GB RAM
- PostgreSQL 15
Right now, the shared buffer size is configured as shared_buffers = 128MB
. I understand, increasing the buffer will likely boost performance. However, it is also my understanding, that I need to be aware of possible limits imposed by the Linux kernel.
ipcs -l
returns:
------ Shared Memory Limits --------
max number of segments = 4096
max seg size (kbytes) = 18014398509465599
max total shared memory (kbytes) = 18446744073709551612
min seg size (bytes) = 1
It is my understanding that 18014398509465599
is the maximum size of shared memory supported for a single process. Is this correct?
If I'm switching on --human
, the output is:
max total shared memory = 16E
What does 16E
mean?
My key question: What is the maximum size I could set the shared buffers to, given my current kernel? Sorry if this question might sound stupid.
I appreciate any help and explaination.