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 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** wrong...

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, 8KB each
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?


Reply via email to