Re: Shared memory usage - Mailing list pgsql-performance

From Max Zorloff
Subject Re: Shared memory usage
Date
Msg-id op.txu0tugmll0p5y@1-rtt202dnf3uds.mshome.net
Whole thread Raw
In response to Re: Shared memory usage  (Greg Smith <gsmith@gregsmith.com>)
List pgsql-performance
On Wed, 29 Aug 2007 23:26:06 +0400, Greg Smith <gsmith@gregsmith.com>
wrote:

> First off, posting to two lists like you did (-general and -performance)
> is frowned on here.  Pick whichever is more appropriate for the topic
> and post to just that one; in your case, the performance list would be
> more appropriate, and I'm only replying to there.

Sorry, didn't know that.

> On Sun, 26 Aug 2007, Max Zorloff wrote:
>
>> shared_buffers is set to 60000, yet they use a minimal part of that.
>> PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
>> 11492 postgres  16   0  530m  72m  60m S   14  1.2   0:50.91 postmaster
>
> Looks to me like PostgreSQL is grabbing 530MB worth of memory on your
> system.  run the ipcs command to see how big the block that's dedicated
> to the main server is; I suspect you'll find it's at 400MB just like you
> expect it to be.  Here's an example from my server which has a 256MB
> shared_buffers:
>
> -bash-3.00$ ipcs
> ------ Shared Memory Segments --------
> key        shmid      owner      perms      bytes      nattch     status
> 0x0052e2c1 1114114    postgres  600        277856256  3
>
> Also:  when you've got top running, hit the "c" key and the postmaster
> processes will give you more information about what they're doing you
> may find helpful.
>
>> All the indexes and half of the database should be in the shared
>> memory, is it not? Or am I completely missing what are the
>> shared_buffers for? If so, then how do I put my indexes and at least a
>> part of the data into memory?
>
> You can find out what's inside the shared_buffers cache by using the
> installing the contrib/pg_buffercache module against your database.  The
> README.pg_buffercache file in there gives instructions on how to install
> it, and the sample query provided there should tell you what you're
> looking for here.

Thanks, I'll see that.

>> Where do I find my OS disk cache settings? I'm using Linux.
>
> You can get a summary of how much memory Linux is using to cache data by
> running the free command, and more in-depth information is available if
> you look at the /proc/meminfo information.  I have a paper you may find
> helpful here, it has more detail in it than you need but it provides
> some pointers to resources to help you better understand how memory
> management in Linux works:
> http://www.westnet.com/~gsmith/content/linux-pdflush.htm

Thanks for that, too.

pgsql-performance by date:

Previous
From: Alan Hodgson
Date:
Subject: Re: Transaction Log
Next
From: ruben@rentalia.com
Date:
Subject: Re: Postgres performance problem