Migrating your Drupal website to Acquia Cloud
To help you prepare to launch your new Drupal website and to avoid several common configuration or performance issues, use the following suggestions, recommended settings, and information as a prelaunch checklist for your website after Assessing your Drupal site for migration onto Acquia Cloud.
Unless otherwise specified, the following suggestions apply to all versions of Drupal:
Install and enable recommended modules
Install and enable the following modules based on your needs:
- Enable Fast 404 settings for your website.
These settings reduces the level of bootstrap required to serve static assets that don't exist.
- Depending on your hosting platform, enable and use Memcached. (Monitored by Acquia Insight)
Using Memcached moves cache objects into memory rather than on disk, which is faster. For more information about using Memcached with Acquia Cloud, see Using Memcached.
- Redirect module - Helps to prevent using too many path redirects in the
Because path redirects need to be loaded at run time for every page request, having too many redirects can cause problems with Apache performance.
- Syslog core module (Monitored by Acquia Insight) - Stores logs much faster than the Database logging core module.
- Transliteration module - Converts special characters in filenames to ASCII.
Uninstall and remove incompatible modules
Disable and uninstall the following modules or classes of modules:
- Boost module
This module can conflict with Varnish caching and is not needed in most cases.
- Database logging core module (Monitored by Acquia Insight)
The Syslog core module can store logs much faster, because it does not need to write to the database.
- PHP Filter core module (Monitored by Acquia Insight)
- Server-side statistics modules
Instead, use client-side statistics services, such as Google Analytics or Omniture.
- Remove unneeded modules
Removing these modules reduces the website's startup (bootstrap) overhead. Modules such as the Devel module and views_ui (part of the Views module) are not necessary in production.
Configure performance settings in Drupal
On the Performance page (URL info), configure or enable the following values:
- Enable page caching for anonymous website visitors. (Monitored by Acquia Insight)
- Drupal 8 does this by default.
- Drupal 7 - Caching section > Cache pages for anonymous users check box
- Ensure that block caching is enabled. (Monitored by Acquia Insight)
- Drupal 8 - This is handled in the Cache API.
- Drupal 7 - Caching section > Cache blocks check box
- In the Caching section > Minimum cache lifetime list, set the amount of time that cached pages won't be re-created to
none. (Monitored by Acquia Insight)
- In the Caching section > Expiration of cached pages list, set the maximum amount of time that an external cache can use an old version of a page to greater than or equal to five minutes (300 seconds). (Monitored by Acquia Insight)
- Enable CSS aggregation in the Bandwidth Optimization section > Aggregate and compress CSS files check box. (Monitored by Acquia Insight)
- For the Views and Panels modules, check the views content caches, time-based caches, and panels caches. (Monitored by Acquia Insight)
- Do not override the PHP memory limit on a global basis. Acquia tunes its servers to use the exact number of threads possible for the memory available to your application, and overriding it on a global basis will lead to 5XX errors for your website's users. If your application needs more than 128MB of memory for each page request, contact Acquia Support to request your memory allocation be altered to provide fewer threads, but more memory per thread.
- Use the Acquia Search service, which removes search load from MySQL and offers feature and usability improvements.
- Ensure that you're using InnoDB as your website's table engine.
Although InnoDB is now the default for Drupal, you should confirm that you're using it instead of the MyISAM table engine, which has performance problems. To examine your current database tables to determine if any other engines are in use, use the following SQL query (where
[db_name]is your database's name):
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '[db_name]' AND ENGINE <> 'InnoDB';
If you need to convert tables in your database to InnoDB, use this script after you modify it with your own credentials and database information.
Acquia recommends the following best practices:
- Use HTTP authentication during development. Learn more. Note that HTTP authentication invalidates Varnish caching and should never be used on a production website.
- Avoid putting all user files in a single directory. A directory with thousands of files needs more time to read files in the directory, causing serious performance problems that can affect your website's availability. To restructure your files into subdirectories, see Proactively set your file fields to use paths.
The Acquia Help Center includes several other articles that may be helpful to you as you configure your new Drupal website, including the following:
If you require additional assistance, Acquia provides additional services to Enterprise and Elite customers that include website installation and configuration.