[development] D7 side effect

John Locke john at freelock.com
Sat Dec 11 02:40:30 UTC 2010


As we've gotten more and more Drupal sites and traffic to them, I think
the main issue here is performance, and that's based on being able to
have tables loaded in RAM.

You can tune MySQL to adjust the number of files and tables it opens
before hitting a limit and clearing the older ones out of RAM. Given the
database-intensive demands of a typical Drupal site, having to hit the
disk for database calls can be a huge performance hit -- and having
thousands of open tables, beyond what you can cache in RAM, makes this
happen much more often. Since RAM is many times faster than the disk, if
you're hitting the disk a lot, you're going to end up with processes
waiting on IO before they can respond, and since PHP is process-based,
not multi-threaded, this ties up a web server process so it can't handle
another request. So yes, having thousands of tables does have an impact
on IO and load, though it's not much of a CPU hit.

We're starting to look at No-SQL options, and they all rely on
de-normalizing the data. When that happens, node_load might be much
faster to do, since you can hit essentially a cached version of the
node, rather than querying individual tables...

You definitely need to manage your own server if you're doing lots of
Drupal work. And you're probably going to want a dedicated database
server at some point, loaded with RAM, to keep performance up. When you
outgrow that, that's when the no-sql options start kicking in ;-)


John Locke
Manager, Freelock Computing
The Open Source for Business Solutions
Follow me on Twitter: http://twitter.com/freelock
john at freelock.com  206-577-0540 x20

jeff at ayendesigns.com wrote:
> Here is the response from the hoster regarding my claim that the number of tables is a mip (meaningless indicator of performance)
> MySQL performance on the server is not solely tied to transactions, and this is not a MIP. Our R&D department has shown time, and time again with extensive research on the issue that performance and server stability drastically improves when accounts are under 1000 tables. The affects of the limit are not just seen with the speed/performance of MySQL transactions, but it also has affects on server IO and CPU usage.
> Ayen Designs - quality software the first time, every time!
> !DSPAM:4d01649f186229183765356!

More information about the development mailing list