pg.ddx.io  pgsql-admin@postgresql.org mailing list archive  
help / color / mirror / Atom feed
Shared_buffers hint
6+ messages / 3 participants
[nested] [flat]

* Shared_buffers hint
@ 2008-10-06 11:52  Rafael Domiciano <rafael.domiciano@gmail.com>
  0 siblings, 2 replies; 6+ messages in thread

From: Rafael Domiciano @ 2008-10-06 11:52 UTC (permalink / raw)
  To: pgsql-admin

HI people,
I'm tuning a server that is a long time abandoned, and this server is a
little slow.
Now, in my postgresql.conf I have:
shared_buffers = 100Mb
mas_fsm_relations = 15000
mas_fsm_pages = 1600000
max_connections = 300

And I changin' to:
shared_buffers = 1000Mb
   (The server has 2 Gb of memory)
mas_fsm_relations = 15000
   (The Vacuum noticed me 608 relations)
mas_fsm_pages = 1600000
   (The Vacuum noticed me 500800 pages)
max_connections = 300
   (I did a "ps axf | grep postgres | wc -l" and the bash brings to me the
number of 120 and all the people is not online at now)

My qustion is about shared_buffers, in postgresql.conf I have: min 128kB or
max_connections*16kB  # (change requires restart)
So I did:
300 * (16Kb / 1024) = 4,69?
What this result means?

Thnks all,

Rafael Domiciano

^ permalink  raw  reply  [nested|flat] 6+ messages in thread

* Re: Shared_buffers hint
@ 2008-10-06 13:23  Marcelo Martins <pglists@zeroaccess.org>
  parent: Rafael Domiciano <rafael.domiciano@gmail.com>
  1 sibling, 0 replies; 6+ messages in thread

From: Marcelo Martins @ 2008-10-06 13:23 UTC (permalink / raw)
  To: Rafael Domiciano <rafael.domiciano@gmail.com>; +Cc: pgsql-admin

Hi Rafael,

The result there means that the minimal should be 4.69Mb for  
shared_buffers
As a rule of thumb the shared buffers should be between 10% - 15% of  
available RAM that assuming such is a dedicated PG server.
I have worked on some servers where I set shared buffers lower than  
10%,  it's really a matter of trying out what value works best for  you.


Marcelo
Linux/Solaris System Administrator
http://www.zeroaccess.org

On Oct 6, 2008, at 6:52 AM, Rafael Domiciano wrote:

> HI people,
>
> I'm tuning a server that is a long time abandoned, and this server  
> is a little slow.
> Now, in my postgresql.conf I have:
> shared_buffers = 100Mb
> mas_fsm_relations = 15000
> mas_fsm_pages = 1600000
> max_connections = 300
>
> And I changin' to:
> shared_buffers = 1000Mb
>    (The server has 2 Gb of memory)
> mas_fsm_relations = 15000
>    (The Vacuum noticed me 608 relations)
> mas_fsm_pages = 1600000
>    (The Vacuum noticed me 500800 pages)
> max_connections = 300
>    (I did a "ps axf | grep postgres | wc -l" and the bash brings to  
> me the number of 120 and all the people is not online at now)
>
> My qustion is about shared_buffers, in postgresql.conf I have: min  
> 128kB or max_connections*16kB  # (change requires restart)
> So I did:
> 300 * (16Kb / 1024) = 4,69?
> What this result means?
>
> Thnks all,
>
> Rafael Domiciano

^ permalink  raw  reply  [nested|flat] 6+ messages in thread

* Re: Shared_buffers hint
@ 2008-10-06 13:42  Scott Marlowe <scott.marlowe@gmail.com>
  parent: Rafael Domiciano <rafael.domiciano@gmail.com>
  1 sibling, 1 reply; 6+ messages in thread

From: Scott Marlowe @ 2008-10-06 13:42 UTC (permalink / raw)
  To: Rafael Domiciano <rafael.domiciano@gmail.com>; +Cc: pgsql-admin

On Mon, Oct 6, 2008 at 5:52 AM, Rafael Domiciano
<rafael.domiciano@gmail.com> wrote:
> HI people,
> I'm tuning a server that is a long time abandoned, and this server is a
> little slow.

What version pgsql is it running?  If it's 7.4 or before, you should
look at upgrading it.  If you can't then a shared buffer setting in
the 1000 to 10000 range is generally reasonable, but large
shared_buffer settings (i.e. over 10000) are counterproductive for 7.4
and before.

> Now, in my postgresql.conf I have:
> shared_buffers = 100Mb

So it's a pretty modern version, since old ones can't read 100Mb as a setting.

> mas_fsm_relations = 15000
> mas_fsm_pages = 1600000
> max_connections = 300
> And I changin' to:
> shared_buffers = 1000Mb
>    (The server has 2 Gb of memory)

50% is kind of big.  Generally you either want it small enough that
the OS can do the majority of the caching (it's usually better at
caching large amounts of data) or large enough that the kernel cache
doesn't come into play much.  50% means that everything is buffered
exactly twice.

> mas_fsm_relations = 15000
>    (The Vacuum noticed me 608 relations)
> mas_fsm_pages = 1600000
>    (The Vacuum noticed me 500800 pages)
> max_connections = 300
>    (I did a "ps axf | grep postgres | wc -l" and the bash brings to me the
> number of 120 and all the people is not online at now)
> My qustion is about shared_buffers, in postgresql.conf I have: min 128kB or
> max_connections*16kB  # (change requires restart)
> So I did:
> 300 * (16Kb / 1024) = 4,69?
> What this result means?

That's just the minimum the server needs to operate.  Not operate
well, just operate.



^ permalink  raw  reply  [nested|flat] 6+ messages in thread

* Re: Shared_buffers hint
@ 2008-10-06 13:56  Rafael Domiciano <rafael.domiciano@gmail.com>
  parent: Scott Marlowe <scott.marlowe@gmail.com>
  0 siblings, 1 reply; 6+ messages in thread

From: Rafael Domiciano @ 2008-10-06 13:56 UTC (permalink / raw)
  To: Scott Marlowe <scott.marlowe@gmail.com>; +Cc: pgsql-admin

I'm using 8.3.3 version in this machine..!So, the shared_buffers set to
100Mb is ok? Or 500Mb is better?
This server we call "Reporter Server", so it's used to do heavy reports for
a few users only (I could say 5 users).
What could be the best config for my server with:
2 Gb RAM
300 GB HD
Postgres 8.3
Dual Core

2008/10/6 Scott Marlowe <scott.marlowe@gmail.com>

> On Mon, Oct 6, 2008 at 5:52 AM, Rafael Domiciano
> <rafael.domiciano@gmail.com> wrote:
> > HI people,
> > I'm tuning a server that is a long time abandoned, and this server is a
> > little slow.
>
> What version pgsql is it running?  If it's 7.4 or before, you should
> look at upgrading it.  If you can't then a shared buffer setting in
> the 1000 to 10000 range is generally reasonable, but large
> shared_buffer settings (i.e. over 10000) are counterproductive for 7.4
> and before.
>
> > Now, in my postgresql.conf I have:
> > shared_buffers = 100Mb
>
> So it's a pretty modern version, since old ones can't read 100Mb as a
> setting.
>
> > mas_fsm_relations = 15000
> > mas_fsm_pages = 1600000
> > max_connections = 300
> > And I changin' to:
> > shared_buffers = 1000Mb
> >    (The server has 2 Gb of memory)
>
> 50% is kind of big.  Generally you either want it small enough that
> the OS can do the majority of the caching (it's usually better at
> caching large amounts of data) or large enough that the kernel cache
> doesn't come into play much.  50% means that everything is buffered
> exactly twice.
>
> > mas_fsm_relations = 15000
> >    (The Vacuum noticed me 608 relations)
> > mas_fsm_pages = 1600000
> >    (The Vacuum noticed me 500800 pages)
> > max_connections = 300
> >    (I did a "ps axf | grep postgres | wc -l" and the bash brings to me
> the
> > number of 120 and all the people is not online at now)
> > My qustion is about shared_buffers, in postgresql.conf I have: min 128kB
> or
> > max_connections*16kB  # (change requires restart)
> > So I did:
> > 300 * (16Kb / 1024) = 4,69?
> > What this result means?
>
> That's just the minimum the server needs to operate.  Not operate
> well, just operate.
>

^ permalink  raw  reply  [nested|flat] 6+ messages in thread

* Re: Shared_buffers hint
@ 2008-10-06 14:06  Scott Marlowe <scott.marlowe@gmail.com>
  parent: Rafael Domiciano <rafael.domiciano@gmail.com>
  0 siblings, 1 reply; 6+ messages in thread

From: Scott Marlowe @ 2008-10-06 14:06 UTC (permalink / raw)
  To: Rafael Domiciano <rafael.domiciano@gmail.com>; +Cc: pgsql-admin

On Mon, Oct 6, 2008 at 7:56 AM, Rafael Domiciano
<rafael.domiciano@gmail.com> wrote:
> I'm using 8.3.3 version in this machine..!
> So, the shared_buffers set to 100Mb is ok? Or 500Mb is better?
> This server we call "Reporter Server", so it's used to do heavy reports for
> a few users only (I could say 5 users).
> What could be the best config for my server with:
> 2 Gb RAM
> 300 GB HD
> Postgres 8.3
> Dual Core

100M is probably adequate.  2G is a pretty small database server
memory wise.  I assume by 300G HD you mean a single hard drive.  Since
a single hard drive is going to limit the speed at which you can
access data from it, I'd leave shared_buffers at 100M and let the OS
cache data for you.  Also, look at work_mem.  You might want to set
those few heavy users to have more work_mem than the other users.

alter user heavyuser set work_mem=128000;

note that work_mem is per user sort, so it's quite possible to exhaust
main memory if you set it high for everybody and they all do sorts on
large sets suddenly.



^ permalink  raw  reply  [nested|flat] 6+ messages in thread

* Re: Shared_buffers hint
@ 2008-10-08 13:40  Rafael Domiciano <rafael.domiciano@gmail.com>
  parent: Scott Marlowe <scott.marlowe@gmail.com>
  0 siblings, 0 replies; 6+ messages in thread

From: Rafael Domiciano @ 2008-10-08 13:40 UTC (permalink / raw)
  To: Scott Marlowe <scott.marlowe@gmail.com>; +Cc: pgsql-admin

Ok,
I'm trying this...

Thnks a lot!

2008/10/6 Scott Marlowe <scott.marlowe@gmail.com>

> On Mon, Oct 6, 2008 at 7:56 AM, Rafael Domiciano
> <rafael.domiciano@gmail.com> wrote:
> > I'm using 8.3.3 version in this machine..!
> > So, the shared_buffers set to 100Mb is ok? Or 500Mb is better?
> > This server we call "Reporter Server", so it's used to do heavy reports
> for
> > a few users only (I could say 5 users).
> > What could be the best config for my server with:
> > 2 Gb RAM
> > 300 GB HD
> > Postgres 8.3
> > Dual Core
>
> 100M is probably adequate.  2G is a pretty small database server
> memory wise.  I assume by 300G HD you mean a single hard drive.  Since
> a single hard drive is going to limit the speed at which you can
> access data from it, I'd leave shared_buffers at 100M and let the OS
> cache data for you.  Also, look at work_mem.  You might want to set
> those few heavy users to have more work_mem than the other users.
>
> alter user heavyuser set work_mem=128000;
>
> note that work_mem is per user sort, so it's quite possible to exhaust
> main memory if you set it high for everybody and they all do sorts on
> large sets suddenly.
>

^ permalink  raw  reply  [nested|flat] 6+ messages in thread


end of thread, other threads:[~2008-10-08 13:40 UTC | newest]

Thread overview: 6+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2008-10-06 11:52 Shared_buffers hint Rafael Domiciano <rafael.domiciano@gmail.com>
2008-10-06 13:23 ` Marcelo Martins <pglists@zeroaccess.org>
2008-10-06 13:42 ` Scott Marlowe <scott.marlowe@gmail.com>
2008-10-06 13:56   ` Rafael Domiciano <rafael.domiciano@gmail.com>
2008-10-06 14:06     ` Scott Marlowe <scott.marlowe@gmail.com>
2008-10-08 13:40       ` Rafael Domiciano <rafael.domiciano@gmail.com>

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox