Re: DBT3-pgsql large performance improvement 2.6.6-rc1

From: Mary Edie Meredith
Date: Thu Apr 29 2004 - 19:00:01 EST


Mary Edie Meredith wrote:
.snip

Mary Edie Meredith <maryedie@xxxxxxxx> wrote:

Performance in DBT-3 (using PostgreSQL) has vastly
improved for _both in the "power" portion (single process/query) and in the "throughput" portion of the test (when the test is running multiple processes) on our 4-way(4GB) and 8-way(8GB) STP systems as compared 2.6.5 kernel results.

Using the default DBT-3 options (ie using LVM, ext2, PostgreSQL version 7.4.1)

Note: Bigger numbers are better.

Kernel....Runid..CPUs.Power..%incP.Thruput %incT 2.6.5 291308 4 97.08 base 120.46 base 2.6.6-rc1 291876 4 146.11 50.5% 222.94 85.1%

Kernel....Runid..CPUs.Power..%incP..Thruput %incT
2.6.5 291346 8 101.08 base 138.95 base
2.6.6-rc1 291915 8 151.69 50.1% 273.69 97.0%

So the improvement is between 50% and 97%!

How odd.

Your instincts were right (as usual).

We took another closer look at this. It appears that
a change slipped into the kit around April 13, which
probably made this stunning performance difference
not the kernel.

Results of second run of the linux-2.6.5 kernel using the
changed test kit showed that the numbers are comparable
to the latest 2.6.6-rc3 release. Therefore,
it looks like the initial improvements posted were
most likely due to the change in datatypes
making the database size smaller, among other things.

....................Composite....Power...Throughput


initial linux 2.6.5 108.14 97.08 120.46
second linux 2.6.5 180.62 146.53 222.63
linux 2.6.6-rc3 181.83 147.16 224.68

Tests were compared on 4-way systems. (Bigger is better).

We will run the 8-way numbers over night to see if there is
any difference for those systems. We are also running some
IA64 results over night as well.




Profile 2.6.5 8way throughput phase:
http://khack.osdl.org/stp/291346/profile/after_throughput_test_1-tick.sort
Profile 2.6.6-r1 8way throughput phase:
http://khack.osdl.org/stp/291915/profile/after_throughput_test_1-tick.sort

Odder. do_anonymous_page() is doing 10x more work in 2.6.6-rc1. And the
CPU scheduler cost has fallen a lot.

Frankly, I can't think of anything in 2.6.6-rc1 which would cause either of
these things!


What I notice is that radix_tree_lookup is in the top 20 in the 2.6.5 profile, but not in 2.6.6-rc1. Could theradix tree changes be responsible for this?

I would certainly expect 2x or even higher throughput increases from either
the writeback changes or the ext2&ext3 fsync changes.


DBT-3 is a read mostly DSS workload and the throughput phase is where we run multiple query streams (as many as we have CPUs). In this workload, the database is stored on a file system, but it is small relative to the amount of memory (4GB and 8GB). It almost completely caches in page cache early on. So there is some physical IO in the first few minutes, but very little to none in the remainder.

But you're not doing a significant amount of writing during the test, so
scrub that theory.

Do you have full reports anywhere? I'd be interested in seeing a vmstat
trace from the entire run, both 2.6.5 and 2.6.6-rc1.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/