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

Reply via email to