Assume a machine with 16 CPU cores and 64GB of RAM. 300 max connections.
Postgres is running here, inside a docker container. Docker containers receive a small amount of shared memory from /dev/shm
Experience teaches that the default 64MB of /dev/shm for the postgres container, is not enough for databases of even 50GB in size. Previously I've increased the /dev/shm setting to 256MB for the postgres container. Issues that made this necessary all came in the form of too many queries running at once, asking too much memory space, I assume.
I recently upgraded a setup from postgres 11 to postgres 16 via logical replication, and found that running "vacuum(analyze, verbose)" fails unless I give the container 1GB of /dev/shm. Where previously 256MB sufficed on the old postgres 11 version.
Why would that be? It's the exact same data. The install is about 50GB in size. Is there something wrong with postgres 16, or did some settings significantly change, that I need to know about? I went over all the changelogs, nothing stood out as relevant to this, but that might be a lack of experience on my end.