108 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			108 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | # 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 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. | |||
|  | # | |||
|  | # 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. | |||
|  | 
 | |||
|  | # | |||
|  | # 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 <20>setenv<6E>. | |||
|  | 
 | |||
|  | export POSTGRES_INCLUDE=/usr/local/pg/include | |||
|  | export POSTGRES_LIB=/usr/local/pg/lib | |||
|  | 
 | |||
|  | PATH=$PATH:/usr/local/pg/bin | |||
|  | MANPATH=$MANPATH:/usr/local/pg/man | |||
|  | 
 | |||
|  | # | |||
|  | # Add the following line to /etc/ld.so.conf: | |||
|  | # | |||
|  | 
 | |||
|  | /usr/local/pg/lib | |||
|  | 
 | |||
|  | # and run: | |||
|  | 
 | |||
|  | ldconfig | |||
|  | 
 | |||
|  | # untar the postgres source distribution,  cd to postgresql-* | |||
|  | # and run the following commands: | |||
|  | 
 | |||
|  | CFLAGS=-O3 ./configure | |||
|  | gmake | |||
|  | gmake install | |||
|  | 
 | |||
|  | mkdir /usr/local/pg/data | |||
|  | chown postgres /usr/local/pg/data | |||
|  | su - postgres | |||
|  | /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-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 | |||
|  | # MySQL 3.23 source distribution. | |||
|  | # | |||
|  | # We did run two tests: | |||
|  | # The standard test | |||
|  | 
 | |||
|  | 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 | |||
|  | 
 | |||
|  | # 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, 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, 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. |