Thread: 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: > 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) > > > > > > ---------------------------(end of broadcast)--------------------------- > TIP 4: Don't 'kill -9' the postmaster > >