2009/10/10 Tom Lane <[email protected]> > Thom Brown <[email protected]> writes: > > I've had a look at the documentation for how much shared memory (in > bytes) > > Postgres uses: > > > http://www.postgresql.org/docs/8.4/static/kernel-resources.html#SHARED-MEMORY-PARAMETERS > > However, after using these calculations to work out the shared memory > usage > > for my own setup, the numbers I came up with are clearly wrong. > > Clearly wrong compared to what --- ie, what's the actual size of your > shared memory segment? (See ipcs) >
I don't actually know the size of my shared memory segment. "sysctl -a | grep -i shmseg" doesn't return anything as it hasn't been set, and not sure how to find out the default value. I didn't see that mentioned in the calculations so I didn't take it into account anywhere. But 1.7TB shared memory can't be right as the entire system memory is only 720MB. > > > If I convert the sizes to kilobytes instead of bytes, it shows a total > value > > of 47 megabytes, which, while not extreme, looks too low. And I am > > surprised that max_connections has relatively little bearing on the > shared > > memory requirements. Is this right, or should is it more a case of it > > affecting semaphores? I was under the impression that the maximum number > of > > connections played a large role in deciding shared memory limits. > > No, it doesn't really ... shared_buffers is the first-order component. > Also, I'm not sure whether you realize that the native unit for these > numbers is mostly *not* bytes. > > > shared_buffers = 196000000 (196MB) > > wal_buffers = 8000000 (8MB) > > Neither of those parenthetical remarks are correct if that's exactly > what you wrote in postgresql.conf. It might be worth checking the > way these values are displayed in pg_settings. > The parenthesised values are what I have in postgresql.conf. I take it these are supposed to be mebibytes then? When I check the value in pg_settings, it's set at 25088 with the unit set at 8kB is 196 mebibytes. It also shows wal_buffers at 1024 with 8kB units, which would be 8 mebibytes. I gather I'm calculating the final value wrong though. :/ Thom
