MARK CALLAGHAN wrote:
On Thu, Sep 24, 2009 at 9:11 AM, Jay Pipes <[email protected]> wrote:
Hi Mark!

Is there a reason you are using the pool_of_threads scheduler in Drizzle?
 Is this a requirement on your end?  We've found that the pool_of_threads
scheduler has serious performance problems and we recommend using the
default multi_thread scheduler.  In addition, to get an apples-to-apples
comparison, I would advise using multi_thread, as MySQL < 6.0 does not have
a pool of threads scheduler anyway.

I wasn't using pool-of-threads. It took me a while today to figure out
how to use pool-of-threads today. It turns out that the results I
reported were for multi-thread. SHOW VARIABLES doesn't report the
value for scheduler, so I was uncertain about which scheduler was
used. This lists the number of seconds for 16 concurrent sessions to
each run 1M statements:
129 -- 5.1.38 + innodb plugin 1.0.4 + latin1
139 -- 5.1.38 + innodb plugin 1.0.4 + utf8
130 -- 5.1.38 + innodb builtin + latin1
162 -- drizzle + innodb plugin 1.03 + utf8

Times for pool-of-threads are much worse. I won't report them here as
I don't think this workload is a good fit for pool-of-threads.

OK, thx.

In addition, you will see serious performance bottlenecks if TCMalloc is
installed on your benchmark server.  MySQL's memory allocation procedures
simply do not like TCMalloc.

Or you used a slow & old version of tcmalloc as Domas has suggested on
your blog.
http://jpipes.com/index.php?/archives/296-Drizzle-Performance-Regression-Solved-TCMalloc-vs.-No-TCMalloc.html

No, I retested with the most current version and saw no difference at all -- there was performance degradation using tcmalloc over no-tcmalloc.

I did not use tcmalloc in this case. At my previous employer,
performance with tcmalloc was always much better than without. At my
current employer I use a different version of Linux and tcmalloc
doesn't improve things. I have yet to see it make things worse.

OK, no prob.

We're always looking for more information on improving our performance numbers, of course, but, like we found before with the Sun application performance group, while the results show Drizzle has some performance degradation over MySQL 5.1, nobody can tell us why that is the case, and when we run OProfile or DTrace comparing MySQL and Drizzle, there is virtually *zero* difference in the percentage of time spent on various things...it's truly baffling, especially considering both profilers show us having much fewer global contention points... :(

In addition, as you know, we've been focusing on getting better scalability on much higher concurrency levels than you are testing with. Sure, we are trying to increase the overall performance, but the focus is on getting scalability for 1000s of concurrent connections. Does Facebook really have an average concurrency level of 16?

-jay

_______________________________________________
Mailing list: https://launchpad.net/~drizzle-discuss
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~drizzle-discuss
More help   : https://help.launchpad.net/ListHelp

Reply via email to