FYI , Intel CC and PostgreSQL , benchmark by pgsql
Hi,
I have a new server and some time to do an interesting simple benchmark.
Compile PostgreSQL 7.4.1R by gcc3.2 and Intel CC 8.0 , and use pgbench
to evaluate any difference..
Here is the result.
----------------------
CPU: Intel(R) Xeon(TM) CPU 3.06GHz (3052.79-MHz 686-class CPU)
Origin = "GenuineIntel" Id = 0xf29 Stepping = 9
Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX
,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
Hyperthreading: 2 logical CPUs
real memory = 3221200896 (3071 MB)
avail memory = 3130855424 (2985 MB)
FreeBSD 5.1-RELEASE-p11
/usr/local/intel_cc_80/bin/icc -V
Intel(R) C++ Compiler for 32-bit applications, Version 8.0 Build
20031211Z Package ID: l_cc_p_8.0.055_pe057
Copyright (C) 1985-2003 Intel Corporation. All rights reserved.
FOR NON-COMMERCIAL USE ONLY
gcc -v
Using built-in specs.
Configured with: FreeBSD/i386 system compiler
Thread model: posix
gcc version 3.2.2 [FreeBSD] 20030205 (release)
Application: PostgreSQL 7.4.1
Benchmark: pgbench
Result :
1. IntelCC ( use ports/database/postgresql7 , default )
./pgbench -U pgsql -c 30 test
starting vacuum...end.
transaction type: TPC-B (sort of)
scaling factor: 1
number of clients: 30
number of transactions per client: 10
number of transactions actually processed: 300/300
tps = 34.975026 (including connections establishing)
tps = 35.550815 (excluding connections establishing)
2. GNU cc( use ports/database/postgresql7 , default )
./pgbench -U pgsql -c 30 test
starting vacuum...end.
transaction type: TPC-B (sort of)
scaling factor: 1
number of clients: 30
number of transactions per client: 10
number of transactions actually processed: 300/300
tps = 38.968321 (including connections establishing)
tps = 39.707451 (excluding connections establishing)
jihuang <jihuang@iis.sinica.edu.tw> writes:
I have a new server and some time to do an interesting simple benchmark.
Compile PostgreSQL 7.4.1R by gcc3.2 and Intel CC 8.0 , and use pgbench
to evaluate any difference..
In my experience, a 10% difference in pgbench results is below the noise
level :-(. And when you only run 300 transactions, the results are too
unrepeatable even to be worth posting.
If you had run, say, 10000-transaction tests and averaged the results
over a couple dozen runs, the mean and standard deviation of those
results might be enough data to tell something.
BTW, when you use a number of clients greater than the scaling
factor, what you're measuring is mostly contention artifacts ...
regards, tom lane
It would be interesting to see the results if you do this test again with :
- scaling factor somewhere in the 100->300 range (so the generated db ~=
your ram amount)
- number of clients somewhere in 10->100
- number of transactions somewhere in 1000->1000
best wishes
Mark
P.s - Are you using the GENERIC kernel or have you built you own (e.g
with SMP suppport for your hyperthreaded cpu?)
jihuang wrote:
Show quoted text
Hi,
I have a new server and some time to do an interesting simple benchmark.
Compile PostgreSQL 7.4.1R by gcc3.2 and Intel CC 8.0 , and use pgbench
to evaluate any difference..Here is the result.
----------------------
CPU: Intel(R) Xeon(TM) CPU 3.06GHz (3052.79-MHz 686-class CPU)
Origin = "GenuineIntel" Id = 0xf29 Stepping = 9Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX
,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
Hyperthreading: 2 logical CPUs
real memory = 3221200896 (3071 MB)
avail memory = 3130855424 (2985 MB)FreeBSD 5.1-RELEASE-p11
/usr/local/intel_cc_80/bin/icc -V
Intel(R) C++ Compiler for 32-bit applications, Version 8.0 Build
20031211Z Package ID: l_cc_p_8.0.055_pe057
Copyright (C) 1985-2003 Intel Corporation. All rights reserved.
FOR NON-COMMERCIAL USE ONLYgcc -v
Using built-in specs.
Configured with: FreeBSD/i386 system compiler
Thread model: posix
gcc version 3.2.2 [FreeBSD] 20030205 (release)Application: PostgreSQL 7.4.1
Benchmark: pgbenchResult :
1. IntelCC ( use ports/database/postgresql7 , default )
./pgbench -U pgsql -c 30 test
starting vacuum...end.
transaction type: TPC-B (sort of)
scaling factor: 1
number of clients: 30
number of transactions per client: 10
number of transactions actually processed: 300/300
tps = 34.975026 (including connections establishing)
tps = 35.550815 (excluding connections establishing)2. GNU cc( use ports/database/postgresql7 , default )
./pgbench -U pgsql -c 30 test
starting vacuum...end.
transaction type: TPC-B (sort of)
scaling factor: 1
number of clients: 30
number of transactions per client: 10
number of transactions actually processed: 300/300
tps = 38.968321 (including connections establishing)
tps = 39.707451 (excluding connections establishing)---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster