Since I started with PostgreSQL almost 15 years back, I’ve adjusted shared memory settings literally hundreds of times. Changing kernel parameters has always been a central task for all users. The reason for this was mostly that many UNIX systems restricted the use of shared memory by default (Linux, Solaris, etc.). People who were new to running databases (Oracle, DB2, PostgreSQL, etc.) got a decent share of frustration when configuring shared memory on the operating system side.
PostgreSQL finally got rid of this pain, because major parts of the memory used were moved out of System V shared memory. What a nice day for all users.
So, after raising shared memory settings on the operating system side for 15 years or so, I compiled PostgreSQL on a brand new OS X box…
What happened when I finally got around to firing up a fresh instance? I had to CHANGE kernel settings to LOWER the MINIMAL amount of shared memory provided by the kernel 😉
I think this is the only thing in life I never expected to do when deploying a database server.