i have a pg-8.0.3 running on Linux kernel 2.6.8, CPU Sempron 2600+,
1Gb RAM on IDE HD ( which could be called a "heavy desktop" ), measuring
this performance with pgbench ( found on /contrib ) it gave me an
average ( after several runs ) of 170 transactions per second;
for the sake of experimentation ( actually, i'm scared this IDE drive
could fail at any time, hence i'm looking for an alternative, more
"robust", machine ), i've installed on an aging Compaq Proliant server (
freshly compiled SMP kernel 22.214.171.124 with preemption ), dual Pentium
III Xeon 500Mhz, 512Mb RAM, (older) SCSI-2 80pin drives, and re-tested,
when the database was on a single SCSI drive, pgbench gave me an average
of 90 transactions per second, but, and that scared me most, when the
database was on a RAID-5 array ( four 9Gb disks, using linux software
RAID mdadm and LVM2, with the default filesystem cluster size of 32Kb ),
the performance dropped to about 55 transactions per second.
Despite the amount of RAM difference, none machine seems to be swapping.
All filesystems ( on both machines ) are Reiserfs.
Both pg-8.0.3 were compiled with CFLAGS -O3 and -mtune for their
respective architectures... and "gmake -j2" on the server.
Both machines have an original ( except by the pg and the kernel )
Mandrake 10.1 install.
I've googled a little, and maybe the cluster size might be one problem,
but despite that, the performance dropping when running on
"server-class" hardware with RAID-5 SCSI-2 drives was way above my most
delirious expectations... i need some help to figure out what is **so**
i wouldn't be so stunned if the newer machine was ( say ) twice faster
than the older server, but over three times faster is disturbing.
the postgresql.conf of both machines is here:
max_connections = 50
shared_buffers = 1000 # min 16, at least max_connections*2,
debug_print_parse = false
debug_print_rewritten = false
debug_print_plan = false
debug_pretty_print = false
log_statement = 'all'
log_parser_stats = false
log_planner_stats = false
log_executor_stats = false
log_statement_stats = false
lc_messages = 'en_US' # locale for system error message strings
lc_monetary = 'en_US' # locale for monetary formatting
lc_numeric = 'en_US' # locale for number formatting
lc_time = 'en_US' # locale for time formatting
many thanks in advance !
---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?