Slow site troubleshooting
- 1 Overview
- 2 Things you can check
- 2.1 Checking the PHP version
- 2.2 Checking the version of installed software
- 2.3 Checking for unused plugins
- 2.4 Using caching and anti-spam plugins
- 2.5 Checking the load average of your server
- 2.6 Checking for database overhead
- 2.7 Ensuring your web and database servers are in the same data center
- 2.8 Checking for over-browsing by specific IPs
- 3 Diagnostics you can run
- 4 How to optimize your CMS software
If your site is running slowly, there are a few common issues that can cause slowness to occur.
Most sites that run slowly are database-driven sites. Database content is not saved on the web server. unless you have some sort of caching enabled for this site server. If no caching is enabled, content is dynamically created for each visitor by the communication between the web server and the database server.
Things you can check
Checking the PHP version
If your site is having performance issues, one of the first things you should check is which version of PHP your site is running (assuming the site is built on PHP). Newer versions of PHP run faster/smarter and can handle issues arising from increasing traffic more gracefully than older versions of PHP.
For more information about checking which version of PHP you are running, please review the following article:
It might also help to increase the amount of memory that PHP is allowed to use. You can do this yourself by modifying the “memory_limit” PHP.ini directive. View the following article for detailed instructions on how to increase this limit.
Checking the version of installed software
Web applications (like WordPress, Joomla, MediaWiki, and the like) are updated on a semi-regular basis by their core developers both to improve the application itself and to block any security issues found in a previous version. For the best performance, make sure that your installations are updated on a regular basis.
If you have installed software using DreamHost’s One-Click Installer, then updating is easy.
View the following article for full instructions:
Checking for unused plugins
If a plugin's files still exist, (even if it is set to inactive/disabled), it can still execute code and affect the performance of your site. If you cannot access the administration area of your software, you may need to log in via FTP/SFTP/SSH and remove plugins that you do not use. This may help to bring your usage down enough to allow the admin area to load. If you need help connecting to your domain via FTP/SFTP/SSH, take a look at the following articles:
Using caching and anti-spam plugins
In general, reducing the number of plugins that you use (aside from ones specifically designed to help with load, such as anti-spam and caching plugins) ensures that your install runs more efficiently.
Checking the load average of your server
It’s also possible that there may be a momentary load on your server causing slowness. Run the uptime command to check if this may be the case.
Checking for database overhead
If tables in your database have excessive "overhead" (unused empty space), it can cause queries to the database to take longer, and may result in the web server timing out before it can receive the response from the database server.
To optimize your database:
- Log in to phpMyAdmin on the (Panel > 'Goodies' > 'MySQL Databases') page.
- Once you log in to phpMyAdmin, select the database you wish to optimize in the left-hand column.
- This loads the Structure tab for that database.
- On the main screen, look at the last two columns (“Size” and “Overhead”).
- If any of your database tables have an “Overhead” value that is equivalent or larger than the “Size” value, click the checkbox next to the table (far left column).
- Once you’ve selected all the tables with too much overhead, click on the “With selected:” drop-down box and choose the “Optimize table” option.
- This automatically clears the overhead and should dramatically improve the performance of any requests to this database.
Ensuring your web and database servers are in the same data center
DreamHost currently has three (3) data centers that customers can use:
- Los Angeles, California, USA
- Irvine, California, USA
- Ashburn, Virginia, USA
To see which data center(s) your account is utilizing, visit the (Panel > 'Support' > 'Data Centers') page.
Ideally, your web and MySQL servers should be located in the same data center to reduce any networking delays. If you visit that page and notice that these two servers are not in the same data center, contact support on the (Panel > 'Support' > 'Contact Support') page. Support is then be able to migrate your servers to the same location.
|Note:||All email hosting services for email addresses (created on the Panel > 'Mail' > 'Manage Email' page) are currently hosted exclusively in the Los Angeles, CA. However, this does not affect your site performance.|
Checking for over-browsing by specific IPs
Usually, if there is one (or a few) IP address(es) that represent 10% or more of your site's visits (1,000 or more visits out of the last 10,000), checking the hostname of the IP address often shows that it belongs to a search engine bot, usually from Google and Yahoo. These bots are NOT responsible for your site's ranking. Occasionally, these bots attempt to browse your site hundreds of times a day, impacting your site’s performance and preventing actual visitors from reaching you.
You can find instructions on how to check which IPs viewed your site recently, and how to block them, in the following article:
Diagnostics you can run
Testing your site from external locations
You can use the following sites to test your website’s performance. These help to verify if the performance issues are happening in all locations or if it’s just your connection.
Using ping and traceroute
Check the response time/connection between your computer and your DreamHost servers by running a ping and a traceroute. If you need more information about running ping or traceroute, take a look at the following articles:
If you see any issues, contact support and provide the results of these tests. Support is then able to look further into the matter for you.
How to optimize your CMS software
- Drupal Troubleshooting
- Drupal Community caching, speed and performance article
- Drupal caching module "Boost"