Luke
Luke Lonergan schrieb:
On 6/13/06 2:04 AM, "Sven Geisler" <sgeisler@xxxxxxxxxx> wrote:
Please find attached a small patch with does apply a change to the
x86_64 part also to the i386 part of src/include/storage/s_lock.h.
Without this change the performance of PostgreSQL 8.0 was horrible on a
Opteron. The effect is smaller with PostgreSQL 8.1.
Can you describe what kinds of tests you ran to check your speed?
I has create a test scenario with parallel client which running mostly
SELECTs on the same tables. I used a sequence of 25 queries using 10
tables. We use the total throughput (queries per second) as result.
Since it's the TAS lock that you are patching, the potential impact is
diffuse and large: xlog.c, shmem.c, lwlock.c, proc.c, all do significant
work.
Yes, I know. We had a problem last year with the performance of the
Opteron. We have started the futex patch to resolve the issue. The futex
patch itself did have no effect, but there was a side effect because the
futex patch did use also another assembler sequence. This make a hole
difference on a Opteron. It turned out that removing the lines
cmpb
jne
lock
was the reason why the Opteron runs faster.
I have created a sequence of larger query with following result on
Opteron 875 and PostgreSQL 8.0.3
orignal 8.0.3 => 289 query/time and 10% cpu usage
patched 8.0.3 => 1022 query/time and 45% cpu usage
I has a smaller effect on a XEON MP with EM64T. But this effect wasn't
that huge. There was no effect on classic XEON's.
Cheers
Sven.