IO scheduler vs PostgreSQL performance measurement

Started by Nick Pigginalmost 23 years ago5 messages
#1Nick Piggin
piggin@cyberone.com.au

Dear PostgreSQL hackers,
I am developing a disk IO scheduler for Linux and am aiming to
have it included in the stable 2.6 release. Due to its design,
performance regressions do appear, and are often more specific
to the workload in question than with other schedulers, hence
one has to go beyond the generic benchmarks.

Databases are one area of difficulty due to multi threaded IO
and sync writes.

I would appreciate it if you could give me a suggestion
for a not-too-difficult to set up or interpret PostgreSQL
benchmark with a reasonable running time (< an hour or so)
which I can add to my performance regression tests.

It would be good if this were to separately measure most
common types of PostgreSQL IO work, and from there I would
leave specific areas to those interested.

I apologise for asking when I could search, however I am
interested in something up to date and which developers on
this can agree on.

Thank you all for your time.
Best regards,
Nick Piggin

#2Gavin Sherry
swm@linuxworld.com.au
In reply to: Nick Piggin (#1)
Re: IO scheduler vs PostgreSQL performance measurement

Hi,

I would appreciate it if you could give me a suggestion
for a not-too-difficult to set up or interpret PostgreSQL
benchmark with a reasonable running time (< an hour or so)
which I can add to my performance regression tests.

Check out `make check', a regression test which ships with Postgres, and
pgbench, a TPC-like benchmark, in contrib/.

Gavin

#3Nick Piggin
piggin@cyberone.com.au
In reply to: Gavin Sherry (#2)
Re: IO scheduler vs PostgreSQL performance measurement

Gavin Sherry wrote:

Hi,

I would appreciate it if you could give me a suggestion
for a not-too-difficult to set up or interpret PostgreSQL
benchmark with a reasonable running time (< an hour or so)
which I can add to my performance regression tests.

Check out `make check', a regression test which ships with Postgres, and
pgbench, a TPC-like benchmark, in contrib/.

Great, thank you.

#4scott.marlowe
scott.marlowe@ihs.com
In reply to: Nick Piggin (#1)
Re: IO scheduler vs PostgreSQL performance measurement

On Mon, 17 Mar 2003, Nick Piggin wrote:

Dear PostgreSQL hackers,
I am developing a disk IO scheduler for Linux and am aiming to
have it included in the stable 2.6 release. Due to its design,
performance regressions do appear, and are often more specific
to the workload in question than with other schedulers, hence
one has to go beyond the generic benchmarks.

Databases are one area of difficulty due to multi threaded IO
and sync writes.

I would appreciate it if you could give me a suggestion
for a not-too-difficult to set up or interpret PostgreSQL
benchmark with a reasonable running time (< an hour or so)
which I can add to my performance regression tests.

It would be good if this were to separately measure most
common types of PostgreSQL IO work, and from there I would
leave specific areas to those interested.

I apologise for asking when I could search, however I am
interested in something up to date and which developers on
this can agree on.

For quick and dirty testing under high parallel load, you can use pgbench,
which comes with postgres.

cd /usr/local/src/postgresql-7.3.x/contrib/pgbench
make
make install
pgbench -i
pgbench -c 4 -t 100

For more intense testing, look at OSDB the Open Source database benchmark
suite:

http://osdb.sourceforge.net/

#5Nick Piggin
piggin@cyberone.com.au
In reply to: scott.marlowe (#4)
Re: IO scheduler vs PostgreSQL performance measurement

scott.marlowe wrote:

On Mon, 17 Mar 2003, Nick Piggin wrote:

Dear PostgreSQL hackers,
I am developing a disk IO scheduler for Linux and am aiming to
have it included in the stable 2.6 release. Due to its design,
performance regressions do appear, and are often more specific
to the workload in question than with other schedulers, hence
one has to go beyond the generic benchmarks.

Databases are one area of difficulty due to multi threaded IO
and sync writes.

I would appreciate it if you could give me a suggestion
for a not-too-difficult to set up or interpret PostgreSQL
benchmark with a reasonable running time (< an hour or so)
which I can add to my performance regression tests.

It would be good if this were to separately measure most
common types of PostgreSQL IO work, and from there I would
leave specific areas to those interested.

I apologise for asking when I could search, however I am
interested in something up to date and which developers on
this can agree on.

For quick and dirty testing under high parallel load, you can use pgbench,
which comes with postgres.

cd /usr/local/src/postgresql-7.3.x/contrib/pgbench
make
make install
pgbench -i
pgbench -c 4 -t 100

For more intense testing, look at OSDB the Open Source database benchmark
suite:

http://osdb.sourceforge.net/

Thanks for the references. I'll do a few pgbench runs today comparing
different schedulers so I'll CC you the results if you like.