Ran a few more tests and have some conclusive results… This time we’re going to see the difference between my original database (that had external access enabled) and migration to a new database (that has external access disabled).
Experiment conditions – A random URL fetched every 5 minutes from a pool of 27 URLs. Only the HTML is fetched, no images or other files. Web hosting using godaddy unlimited linux plan. Database with direct external access enabled. WP-Super-Cache enabled in half cache mode.
The numbers were chosen particularly to cause a lot of cache misses (27 pages with a 5 minute interval is greater than the cache expiration time). Approximately 32% of the page retrievals resulted in cache hits resulting in less than 1 second retrieval time. A total of 71% of the retrievals occurred in 2 seconds or less, and 85% in 3 seconds or less. Those are the retrievals that I’d consider acceptable. However, 7% of the requests took greater than 10 seconds. That’s getting into the range where people will think a site is down or unresponsive. 4% of them took 20 seconds or more. Two of the requests actually failed due to database timeout.
One of the options when I created this database was whether or not to enable external direct database access. I originally chose this option so that I could do easy database backups via mysql to my linux boxes at home. According to the godaddy website, databases with external access are hosted on a different server than those without. For this reason, I decided to re-import the wordpress site into a database without external direct access and see if there was a difference in performance.
Experimental conditions – same as above, but database with external direct access disabled.
This time 97% of the requests were 2 seconds or less, and 100% were 3 seconds or less. There were no page retrievals over 3 seconds. There were no timeouts.
This is good news as these are finally numbers that I’m confident will lead to a successful website using wordpress. I’m not sure whether the issue was that the databases that allow external direct access are slower than those that do not, or simply that I’ve been lucky enough that I migrated to a database server that receives less load than the others. Pinging the two servers (the original one that allowed external access and the new one that does not) reveals that they are as expected two different IP addresses, and likely two different servers.
I’ll keep monitoring the site with a long-term benchmark to see whether the new performance continues to be acceptable.