summaryrefslogtreecommitdiff
path: root/sql-bench/Comments/postgres.benchmark
diff options
context:
space:
mode:
Diffstat (limited to 'sql-bench/Comments/postgres.benchmark')
-rw-r--r--sql-bench/Comments/postgres.benchmark100
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.