On Mon, Mar 14, 2005 at 06:04:01PM -0500, Chris Browne wrote:
> mrae@purplebat.com (Mark Rae) writes:
>> Clients 1 2 3 4 6 8 12 16 32 64 128
>> ------------------------------------------------------------------------------
>> mysql-4.1.1 1.00 1.41 1.34 1.16 0.93 1.03 1.01 1.00 0.94 0.86 0.80
>> pg-7.4.1 0.65 1.27 1.90 2.48 2.45 2.50 2.48 2.51 2.49 2.39 2.38
>
> Could you elaborate on what the measures are here? I don't quite
> follow what "0.8" means as compared to "2.38."
The figures are generated from a representative set of ~500 queries which
each client issues in a random order. The clients all connect in parallel
and the elapsed time taken for them all to complete is recorded.
The numbers given above are these times converted into relative throughput
figures. The baseline being a single mysql client, a performance of
1.00 is equivalent to an average of 5.82 queries per second.
i.e.
with a single client postgres runs at 65% the speed of mysql
by the time 3 clients are running, postgres is getting through the
queries 1.90/1.34=1.42 times faster
and once we get to 32 clients, mysql is tripping over itself and is
actually running slower than if the clients ran one after another.
Looking at how the database scales,
i.e. all figures are relative to the speed of a single client connection.
Clients 1 2 3 4 6 8 12 16 32 64 128
------------------------------------------------------------------------------
Theoretical 1.00 2.00 3.00 4.00 4.00 4.00 4.00 4.00 4.00 4.00 4.00
mysql-4.1.1 1.00 1.41 1.34 1.16 0.93 1.03 1.01 1.00 0.94 0.86 0.80
pg-7.4.1 1.00 1.94 2.91 3.79 3.75 3.82 3.80 3.84 3.82 3.66 3.64
The theoretical line being is how much we should expect things to scale
given that this is a 4 cpu machine.
-Mark