Introduction
Using the tools and techniques from Part II, we'll look at the
areas of Drupal that can be improved. We'll go over queries,
indexes and mysql configuration. This will be based upon loading
the home page only.
Initial Load
Looking at a single loading of the home page produces a total of
122 SELECT queries, 3 SET commands, and 2 UPDATES. Only 30
SELECTS are unique, so there's plenty of duplicated queries. The
slow query log contains 5 queries when the system is loaded with
10 concurrent connections for a 30 second period. The queries in
the slow query log could also be queries that are not using
indexes. We'll start with these queries first.
Slow Query Log
mysql» SELECT name, filename, throttle FROM system WHERE type =
'module' AND status = 1 ORDER BY weight ASC, filename ASC;
…
Adam has been in IT now for more than a quarter of a century, variously as a programmer, systems analyst, database admin and consultant. The first job Adam had was writing software for cash registers in assembler, and back end software in C and COBOL on UNIX. Adam is active in a number of open source projects and is the admin of dotProject. He now works in the web team which is responsible for maintaining the mysql.com web sites.
Introduction
This paper will outline my test environment, software used
and procedures for benchmarking and profiling. This process can
apply to both scaling up and scaling out architectures. Scaling
out will require a slightly different approach due to the fact
that the entire webserver suite and/or MySQL will be split across
multiple servers.
Test System
My test system is an AMD 2100 with 2GB RAM and single PATA
harddrive. (Stop laughing.) It has XAMPP 1.6.6 installed which
contains Apache 2.2.8, PHP 5.2.5 and MySQL 5.0.51a with
eAccelerator turned off. Drupal 5.7 and the devel module have
been installed. The test Drupal site contains 5000 nodes, with
50,000 comments, 5000 vocabulary and terms with a max length of
12. These first attempts at improving Drupal performance will be
done with Drupal core only. The only nonstandard module that has
been …
Introduction
This paper will outline my test environment, software used
and procedures for benchmarking and profiling. This process can
apply to both scaling up and scaling out architectures. Scaling
out will require a slightly different approach due to the fact
that the entire webserver suite and/or MySQL will be split across
multiple servers.
Test System
My test system is an AMD 2100 with 2GB RAM and single PATA
harddrive. (Stop laughing.) It has XAMPP 1.6.6 installed which
contains Apache 2.2.8, PHP 5.2.5 and MySQL 5.0.51a with
eAccelerator turned off. Drupal 5.7 and the devel module have
been installed. The test Drupal site contains 5000 nodes, with
50,000 comments, 5000 vocabulary and terms with a max length of
12. These first attempts at improving Drupal performance will be
done with Drupal core only. The only nonstandard module that has
been …
Introduction
Improving Drupal's MySQL performance is more than just optimizing
Drupal and MySQL themselves. I wanted to mention that the server
hardware, operating system, webserver, and PHP also play
important roles in deploying the fastest system possible.
Benchmarking and profiling a system is a very methodical
step-by-step process starting from the hardware, the operating
system, Apache, PHP, MySQL then finally Drupal itself.
Server Hardware
Everything starts at the hardware level and having a way to
benchmark CPU, memory, and harddrives is very important. Not all
motherboards are created equal either. If at all possible,
developing a benchmarking plan to test different CPUs, memory and
harddrives will go along way to help creating a high performance
Drupal/MySQL system. Using sysbench from
http://sysbench.sourceforge.net/, it's possible to show which
CPU, …
Introduction
Improving Drupal's MySQL performance is more than just optimizing
Drupal and MySQL themselves. I wanted to mention that the server
hardware, operating system, webserver, and PHP also play
important roles in deploying the fastest system possible.
Benchmarking and profiling a system is a very methodical
step-by-step process starting from the hardware, the operating
system, Apache, PHP, MySQL then finally Drupal itself.
Server Hardware
Everything starts at the hardware level and having a way to
benchmark CPU, memory, and harddrives is very important. Not all
motherboards are created equal either. If at all possible,
developing a benchmarking plan to test different CPUs, memory and
harddrives will go along way to help creating a high performance
Drupal/MySQL system. Using sysbench from
http://sysbench.sourceforge.net/, it's possible to show which
CPU, …
Apparently, all the work we have put into dealnews.com over the
last 11 1/2 years can be had for $250 and can be delivered in 10
hours.
http://www.getafreelancer.com/projects/PHP-Joomla/Clone-dealnews-com-CMS.html
I see it was canceled. That is smart. What we do can
not be done for that kind of money. $350? Maybe.
=)
Speaking of dealnews, we have been rated the #1 Black Friday site by PC Magazine.
(The basics — comment here if you’d be interested to hear a non-partisan talk about the technical challenges faced by the IT team during the Obama campaign [particularly if you’re not an American who likes the idea of Obama as President, but even if you are].)
So, we all saw when Jonathan Schwartz posted this on election night:
http://blogs.sun.com/jonathan/entry/change_has_come_to_america
Now, back in December 2001 one of the speakers at LISA (a system administrator’s conference) was a William LeFebvre, who spoke about what it was like to run CNN.com during the extremely high peak times of …
[Read more]
In the UK, tax prices have gone down from 17.5% to 15% .Good
news!However, its a bit of a nightmare to change the prices on
our websites. We're lucky. We don't have to reprint thousands of
pamphlets that have prices for Christmas sales, since we are a
primarily web-based company.My boss said that this is like the
Y2K bug, only you have 1 week to fix it.
Basically, we need to go over hundreds of pages of code for some
'very' hard-coded tax figures.Our databases will also need to
have a look at. I might need to have an all-encompassing function
to look for products with tax already calculated into them and
update them.Oh well, it looks like it will be interesting.
Wish me luck.
Dear Lazyweb. So, here's my thoughts:
* Create a basic php/rails/insert your application language
choice page.
* Have it do a simple SELECT 1+1 from MySQL.
* Print the results to screen.
Are there any third party (independently hosted) monitoring tools
out there that (for free or cheap) I can use to then connect to
this page, and make sure the results are as expected?