diff options
Diffstat (limited to 'sql-bench/Comments/postgres.benchmark')
-rw-r--r-- | sql-bench/Comments/postgres.benchmark | 100 |
1 files changed, 66 insertions, 34 deletions
diff --git a/sql-bench/Comments/postgres.benchmark b/sql-bench/Comments/postgres.benchmark index a51752a5023..c52a53699e0 100644 --- a/sql-bench/Comments/postgres.benchmark +++ b/sql-bench/Comments/postgres.benchmark @@ -1,56 +1,77 @@ -# This file describes how to run MySQL benchmarks with Postgres -# +# This file describes how to run MySQL benchmark suite with PostgreSQL +# +# WARNING: +# +# Don't run the --fast test on a PostgreSQL 7.1.1 database on +# which you have any critical data; During one of our test runs +# PostgreSQL got a corrupted database and all data was destroyed! +# When we tried to restart postmaster, It died with a +# 'no such file or directory' error and never recovered from that! +# +# Another time vacuum() filled our system disk with had 6G free +# while vaccuming a table of 60 M. +# +# WARNING # The test was run on a Intel Xeon 2x 550 Mzh machine with 1G memory, -# 9G hard disk. The OS is Suse 6.4, with Linux 2.2.14 compiled with SMP +# 9G hard disk. The OS is Suse 7.1, with Linux 2.4.2 compiled with SMP # support # Both the perl client and the database server is run # on the same machine. No other cpu intensive process was used during # the benchmark. - -# -# -# First, install postgresql-7.0.2.tar.gz # +# During the test we run PostgreSQL with -o -F, not async mode (not ACID safe) +# because when we started postmaster without -o -F, PostgreSQL log files +# filled up a 9G disk until postmaster crashed. +# We did however notice that with -o -F, PostgreSQL was a magnitude slower +# than when not using -o -F. # -# Start by adding the following lines to your ~/.bash_profile or +# First, install postgresql-7.1.2.tar.gz + +# Adding the following lines to your ~/.bash_profile or # corresponding file. If you are using csh, use īsetenvī. -# -export POSTGRES_INCLUDE=/usr/local/pgsql/include -export POSTGRES_LIB=/usr/local/pgsql/lib +export POSTGRES_INCLUDE=/usr/local/pg/include +export POSTGRES_LIB=/usr/local/pg/lib -PATH=$PATH:/usr/local/pgsql/bin -MANPATH=$MANPATH:/usr/local/pgsql/man +PATH=$PATH:/usr/local/pg/bin +MANPATH=$MANPATH:/usr/local/pg/man # # Add the following line to /etc/ld.so.conf: # -/usr/local/pgsql/lib -and run ldconfig. +/usr/local/pg/lib -# -# untar the postgres source distribution and cd to src/ -# run the following commands: -# +# and run: + +ldconfig -./configure +# untar the postgres source distribution, cd to postgresql-* +# and run the following commands: + +CFLAGS=-O3 ./configure gmake gmake install -mkdir /usr/local/pgsql/data -chown postgres /usr/local/pgsql/data +mkdir /usr/local/pg/data +chown postgres /usr/local/pg/data su - postgres -/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data -su postgres -c "/usr/local/pgsql/bin/postmaster -o -F -D /usr/local/pgsql/data" & -su postgres -c "/usr/local/pgsql/bin/createdb test" +/usr/local/pg/bin/initdb -D /usr/local/pg/data +/usr/local/pg/bin/postmaster -o -F -D /usr/local/pg/data & +/usr/local/pg/bin/createdb test +exit # -# Second, install packages DBD-Pg-0.95.tar.gz and DBI-1.14.tar.gz, +# Second, install packages DBD-Pg-1.00.tar.gz and DBI-1.18.tar.gz, # available from http://www.perl.com/CPAN/ -# + +export POSTGRES_LIB=/usr/local/pg/lib/ +export POSTGRES_INCLUDE=/usr/local/pg/include/postgresql +perl Makefile.PL +make +make install # # Now we run the test that can be found in the sql-bench directory in the @@ -59,17 +80,28 @@ su postgres -c "/usr/local/pgsql/bin/createdb test" # We did run two tests: # The standard test -run-all-tests --comment="Intel Xeon, 2x550 Mhz, 1G, pg started with -o -F" --user=postgres --server=pg --cmp=mysql +run-all-tests --comment="Intel Xeon, 2x550 Mhz, 512M, pg started with -o -F" --user=postgres --server=pg --cmp=mysql + +# When running with --fast we run the following vacuum commands on +# the database between each major update of the tables: +# vacuum anlyze table +# vacuum table +# or +# vacuum analyze +# vacuum -# and a test where we do a vacuum() after each update. -# (The time for vacuum() is counted in the book-keeping() column) +# The time for vacuum() is accounted for in the book-keeping() column, not +# in the test that updates the database. -run-all-tests --comment="Intel Xeon, 2x550 Mhz, 1G, pg started with -o -F" --user=postgres --server=pg --cmp=mysql --fast +run-all-tests --comment="Intel Xeon, 2x550 Mhz, 512M, pg started with -o -F" --user=postgres --server=pg --cmp=mysql --fast # If you want to store the results in a output/RUN-xxx file, you should # repeate the benchmark with the extra option --log --use-old-result # This will create a the RUN file based of the previous results -# -run-all-tests --comment="Intel Xeon, 2x550 Mhz, 1G, pg started with -o -F" --user=postgres --server=pg --cmp=mysql --log --use-old-result -run-all-tests --comment="Intel Xeon, 2x550 Mhz, 1G, pg started with -o -F" --user=postgres --server=pg --cmp=mysql --fast --log --use-old-result +run-all-tests --comment="Intel Xeon, 2x550 Mhz, 512M, pg started with -o -F" --user=postgres --server=pg --cmp=mysql --log --use-old-result +run-all-tests --comment="Intel Xeon, 2x550 Mhz, 512MG, pg started with -o -F" --user=postgres --server=pg --cmp=mysql --fast --log --use-old-result + +# Between running the different tests we dropped and recreated the PostgreSQL +# database to ensure that PostgreSQL should get a clean start, +# independent of the previous runs. |