Обсуждение: effective cache size on FreeBSD (WAS: Performance on SUSE w/ reiserfs)

Поиск
Список
Период
Сортировка

effective cache size on FreeBSD (WAS: Performance on SUSE w/ reiserfs)

От
Claus Guttesen
Дата:
> > I have a postgresql 7.4.8-server with 4 GB ram.
> > #effective_cache_size = 1000    # typically 8KB each
> >
> > This is computed by sysctl -n vfs.hibufspace / 8192 (on FreeBSD). So I
> > changed it to:
> >
> > effective_cache_size = 27462    # typically 8KB each
>
> Apparently this formula is no longer relevant on the FreeBSD systems as
> it can cache up to almost all the available RAM. With 4GB of RAM, one
> could specify most of the RAM as being available for caching, assuming
> that nothing but PostgreSQL runs on the server -- certainly 1/2 the RAM
> would be a reasonable value to tell the planner.
>
> (This was verified by using dd:
> dd if=/dev/zero of=/usr/local/pgsql/iotest bs=128k count=16384 to create
> a 2G file then
> dd if=/usr/local/pgsql/iotest of=/dev/null
>
> If you run systat -vmstat 2 you will see 0% diskaccess during the read
> of the 2G file indicating that it has, in fact, been cached)

Thank you for your reply. Does this apply to FreeBSD 5.4 or 6.0 on
amd64 (or both)?

regards
Claus

Re: effective cache size on FreeBSD (WAS: Performance on SUSE w/

От
Sven Willenberger
Дата:
On Tue, 2005-10-11 at 16:54 +0200, Claus Guttesen wrote:
> > > I have a postgresql 7.4.8-server with 4 GB ram.
> > > #effective_cache_size = 1000    # typically 8KB each
> > >
> > > This is computed by sysctl -n vfs.hibufspace / 8192 (on FreeBSD). So I
> > > changed it to:
> > >
> > > effective_cache_size = 27462    # typically 8KB each
> >
> > Apparently this formula is no longer relevant on the FreeBSD systems as
> > it can cache up to almost all the available RAM. With 4GB of RAM, one
> > could specify most of the RAM as being available for caching, assuming
> > that nothing but PostgreSQL runs on the server -- certainly 1/2 the RAM
> > would be a reasonable value to tell the planner.
> >
> > (This was verified by using dd:
> > dd if=/dev/zero of=/usr/local/pgsql/iotest bs=128k count=16384 to create
> > a 2G file then
> > dd if=/usr/local/pgsql/iotest of=/dev/null
> >
> > If you run systat -vmstat 2 you will see 0% diskaccess during the read
> > of the 2G file indicating that it has, in fact, been cached)
>
> Thank you for your reply. Does this apply to FreeBSD 5.4 or 6.0 on
> amd64 (or both)?
>

Not sure about 6.0 (but I don't know why it would change) but definitely
on 5.4 amd64 (and I would imagine i386 as well).

Sven


Re: effective cache size on FreeBSD (WAS: Performance on SUSE w/

От
Claus Guttesen
Дата:
> > > Apparently this formula is no longer relevant on the FreeBSD systems as
> > > it can cache up to almost all the available RAM. With 4GB of RAM, one
> > > could specify most of the RAM as being available for caching, assuming
> > > that nothing but PostgreSQL runs on the server -- certainly 1/2 the RAM
> > > would be a reasonable value to tell the planner.
> > >
> > > (This was verified by using dd:
> > > dd if=/dev/zero of=/usr/local/pgsql/iotest bs=128k count=16384 to create
> > > a 2G file then
> > > dd if=/usr/local/pgsql/iotest of=/dev/null
> > >
> > > If you run systat -vmstat 2 you will see 0% diskaccess during the read
> > > of the 2G file indicating that it has, in fact, been cached)
> >
> > Thank you for your reply. Does this apply to FreeBSD 5.4 or 6.0 on
> > amd64 (or both)?
> >
>
> Not sure about 6.0 (but I don't know why it would change) but definitely
> on 5.4 amd64 (and I would imagine i386 as well).

Works on FreeBSD 6.0 RC1 as well. Tried using count=4096 on a 1 GB ram
box. Same behaviour as you describe above.

regards
Claus

Re: effective cache size on FreeBSD (WAS: Performance on SUSE w/ reiserfs)

От
Vivek Khera
Дата:
On Oct 11, 2005, at 10:54 AM, Claus Guttesen wrote:

> Thank you for your reply. Does this apply to FreeBSD 5.4 or 6.0 on
> amd64 (or both)?
>

It applies to FreeBSD >= 5.0.

However, I have not been able to get a real answer from the FreeBSD
hacker community on what the max buffer space usage will be to
properly set this.  The `sysctl -n vfs.hibufspace` / 8192 estimation
works very well for me, still, and I continue to use it.