As promised, here are the results of the possible performance enhancements that WordPress 2.1 has to offer. My disclaimers include the fact that these methods are mostly not very scientific and the server that this blog runs on also received a MySql upgrade before WordPress was upgraded. However, the results are stark enough that they still make a lot of sense.
The above graph shows the processor statistics of this server over a period of a little over four weeks. These are 2 averages of RRD data, collected every five minutes by a custom written script. The little spikes at regular intervals is caused by a backup process that runs every night and is not unusual. The first large spike after the beginning of the fourth week (which is relevant) was caused by a large amount of data being backed up due to the upgrade.
The actual upgrade was performed around the beginning of the fourth week, right where the processor usage went to null. There was some testing done before and after the upgrade along with some fixes to the various plugins that needed optimization and tweaks, especially Ultimate Tag Warrior (which had cause some performance problems and had bugs. Fixed thanks to Donncha’s help).
Now here is my really surprising conclusion. Average Processor usage for both user and system is less than half that of previous screencaps and records that I could find. In other words, not only is the system and the blog running much more steadily as indicated by the graph, the server is much less taxed and handles the load with half as much effort on average (even if we consider the rest to be margin of error). In real numbers, my previous average for user mode processor time was 26% and now it is about 10% on the daily average graph. This difference is more diluted to 20% previously and 13% at present for the 2 hour average graphs.
That is pretty cool!
[EDIT] Here are some more details on this server and traffic stats. This server is a dedicated P4 hyperthreaded single processor server with 1024MB of RAM. The server is shared with a few other lower volume blogs and static pages but all of them were upgraded at the same time. No form of WordPress caching (beside query caching) is used on any of the blogs. During the aforementioned period, this blog received an average of 10,000 pageviews a day and all the other blogs combined saw an average of 5,000 pageviews per day. If there is any interest, I can provide what settings work best with MySql on my server.
I can also see a little performance boost on loading my website with WP 2.1. I also deleted before the upgrade the (old) cache and then it runs faster. 🙂
Great information, we’re optimizing some servers for WordPress hosting so your post is very useful.
What can you tell us about the server you’re hosting on and the level of traffic on that server? Are there other sites hosted on this server or does this site have exclusive use of the server? Is it a full dedicated machine or a VPS?
John, added the details to the main post.
It is the apache server from my webhoster. But as far as I know, there are other websites on it and the traffic is high.
I can see it with the faster rendring with my (same) firefox browser, same WP theme and then the faster time in sec in the footer in the wp-admin-panel. Wp 2.1 is great for me.
The only thing is really the /cache/… files.
Have you noticed any difference in page generation times? Going from 1.5 to 2.0 increased my page-generation times, all other things being the same, by about 40%. That’s with WP-Cache, on a server with Eaccelerator, though. I haven’t taken the time to see if disabling either of those makes much of a difference.
Nemo, that is hard for me to determine since I switched from an old theme to this new version right before I did the upgrade and the numbers blend together in my mind.
What query caching did you mention? Are you using the default WordPress cache? I noticed major performance issues with the object cache of WordPress for 2.0 on my blog and 2.1 on a friends.
Thanks for adding that info about your server, Mark.
10-15,000 page views a day is a significant number of page views for any site, but it breaks down to around a single page view every 6 seconds, and as your server graph shows it seems to be handling the load just fine. Your traffic could probably increase an order of magnitude and I bet your server could handle it with little change in response times.
In our load testing the single most significant factor in reducing page load times as well as server loads has been WP-Cache2. Eaccelerator can have an effect on a server on which you don’t want to install WP-Cache2 , but using WP-Cache2 can increase throughput 10x or more…
I’m getting grief from my host. Do you have an average count on how many SQL queries hits your database per hour before and after WordPress 2.1? They have put a cap on SQL queries and right now, I’m surpassing that on a regular basis and they shut down my site for an hour to “reset” the count. This sucks, so I’m looking for statistics to fight back against their low setting.
Thanks.
Lorelle,
I do not have that information. However, we can run some average numbers.
On average I get 10,000 pageviews a day, about 10% of them are to the main page, which requires 56 queries and the rest are to single pages, which require 29 queries each. Of course, there are hits on page such as the menu and archives, but let us just leave those out.
So, I generate (9000 x 29) + (1000 x 56) queries a day.
So, the average number of queries per hour would be 317000 / 24 = 13208 queries per hour on average, give or take a few thousands. This is also considering that I have query caching and certain MySql optimizations in place. This is only for this blog.
MyTop shows 21 queries per second since MySql was rebooted (since the upgrade). Jeremy’s MyTop is a great tool for MySql kind of stuff. Check it out if you can.
Hope this helps
I was asked to optimize a server which host one WordPress website. The server keeps on falling down several times a day. We optimized from MySQL, working our way up to Apache (mysql query cache, wp-cache, etc) – and the website was still overloaded.
Then I slapped Squid in front of Apache; and server load took a dive into just about 3%-5%.
Of all the “increasing wordpress performance”, I’m yet to find a post which gives Squid a good review, so here’s one
Now it’s getting about 70K daily pageviews AND many are from high-speed leech/crawlers (such as Teleport Pro) which can easily overload servers, and it doesn’t even sweat.
Last time I checked, their pageviews just keep on increasing, because the website is so much faster and always up.