Re: [HACKERS] Re : Solaris Performance - 64 bit puzzle - Mailing list pgsql-general

From Andrew Sullivan
Subject Re: [HACKERS] Re : Solaris Performance - 64 bit puzzle
Date
Msg-id 20020516155432.C5987@mail.libertyrms.com
Whole thread Raw
In response to Re: [HACKERS] Re : Solaris Performance - 64 bit puzzle  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: [HACKERS] Re : Solaris Performance - 64 bit puzzle
List pgsql-general
On Tue, Apr 30, 2002 at 03:28:13PM -0400, Tom Lane wrote:

> Do you need to profile it?  It seemed that the 32-bit behavior for
> many-equal-keys was so bad that it'd be easy to tell whether it's
> fixed, just by rough overall timing of a test case...

Sorry for taking yet again so long.  Fitting in little tests of this
sort of thing can be a bit of a bear -- there's always about 50 other
things to do.  Anyway, I've performed some simple timed tests that, I
think, confirm that the 64 bit library on Solaris is not so bad.

                             version
-----------------------------------------------------------------
 PostgreSQL 7.2.1 on sparc-sun-solaris2.7, compiled by GCC 3.0.3

bin$ file postmaster
postmaster:     ELF 64-bit MSB executable SPARCV9 Version 1,
dynamically linked, not stripped

The config file is the default

I _think_ I've captured the case that was problematic.  As I
understood it, qsort was having trouble when hit with many equal
keys.  I created this table:

CREATE TABLE table1 (_date_stamp timestamp default current_timestamp,
foo text);

The table has no index.  It has 5120000 records; field "foo" has only
four distinct values.

No matter whether I compiled with the system qsort or the qsort from
FreeBSD, I got roughly equivalent results running psql under time.  I
know that's hardly an ideal test, but as Tom suggested, the 32-bit
case seemed to be so astonishingly bad that it should have been
enough.  I ran the test repeatedly, and the results seem pretty
consistent.  Here are some typical results:

system lib:

src$ time psql -p 12000 -o /dev/null -c "select * from table1 order
^by foo" test1

real    29m23.822s
user    2m10.241s
sys     0m7.432s

FreeBSD lib:

postgresql-7.2.1$ time psql -p 12000 -o /dev/null -c "select * from
table1 order by foo" test1


real    29m38.880s
user    2m10.571s
sys     0m8.032s


This example suggests the FreeBSD library is slightly worse in the
64-bit case.  That's consistently the case, but the difference is not
so great that I'd put any stock in it.

I do not know whether there might be any trouble using the FreeBSD
library in a 64-bit configuration.  I'd say, if you're going to use a
64-bit postmaster, use the Solaris libraries.

Hope this is helpful,

A

--
----
Andrew Sullivan                               87 Mowat Avenue
Liberty RMS                           Toronto, Ontario Canada
<andrew@libertyrms.info>                              M6K 3E3
                                         +1 416 646 3304 x110


pgsql-general by date:

Previous
From: Stephan Szabo
Date:
Subject: Re: Assertion constraint replacement?
Next
From: "Andrew Bartley"
Date:
Subject: Loading Array