Note
This page contains instructions for Drupal 7. For information about configuring cache settings in the current Drupal version, see Configuring Drupal cache settings for Varnish.
Note for Acquia-hosted websites
Cloud Platform customers use Varnish cache. For more information about Varnish and how to configure Varnish cache for your Cloud Platform website, see Using Varnish.
Cloud Platform subscriptions support Memcached, which does not consider cron to be a cache-clearing event. If you use Memcached, your pages does not regenerate after cron. For more information, see Using Memcached.
When configuring external caching for your Drupal site, the following important settings may cause trouble for users, if not properly understood:
To find the settings, in the Admin menu, go to Configuration > Performance (see the site path.)
Minimum cache lifetime
The minimum cache lifetime prevents Drupal from clearing webpages and block caches for a period of time after making changes which means Drupal will not regenerate webpages until at least the period of time has passed, and a cache-clearing event has taken place. Webpages are not necessarily regenerated after the minimum cache lifetime has passed.
The default value for the minimum cache lifetime is none
, which means
the default lifetime is 0
seconds. Unless you are familiar with configuring
cache, and you have different requirements, best practices would have you
keep the setting as none
.
If something triggers the cache to clear, and the minimum cache lifetime
is set to a value greater than none
, the combination can cause a cache
stampede. The problem occurs when a cached webpage is no longer cached, and
several website visitors request the webpage within a short time frame. When
servers try to render the webpage simultaneously, none of them will
rebuild or re-cache the webpage, because every attempt to do so will time out.
The server timeouts could result in downtime for your website.
Cloud Platform customers should always set minimum cache lifetime to 0, unless specific circumstances dictate otherwise. Setting the minimum cache lifetime to a non-zero value can cause issues with Varnish.
When a Drupal website’s cron interval is set to its default, the cron
interval will clear the cache routinely, which could result in downtime.
The default Drupal 7 cron (Poor man’s cron) is enabled by default, and you
should disable it, setting the run time to Never
. To disable the default
Drupal 7 cron on your website, in the Admin menu, go to Configuration >
System > Cron ([site_url]/admin/config/system/cron)
.
Note for Cloud Platform customers
Use the Cloud > Cron page for scheduled tasks, rather than the default Drupal 7 Cron or any of the contributed Cron modules, such as Elysia Cron or Ultimate Cron. Relying on Cloud Platform ensures Cron tasks run on the schedule you specify, and not when visiting the website. For more information, see Using scheduled jobs to support your application. If you must use Elysia cron, see Elysia cron on Cloud Platform.
Expiration of cached pages
Expiration of cached pages refers to the maximum time a webpage can remain in
the cache. If you set the expiration of cached pages to 0
seconds which
is the maximum-age header Drupal sends to the proxy server, the pages will
not be cached. A reasonable setting is 6-12
hours. Often misinterpreted,
expiration of cached pages does not mean the webpage will regenerate after
the amount of time you select—the term means, after the period of
time, the cache checks with Drupal to see if a new version of the webpage
exists. The webpage will regenerate after a cache-clearing event happens.
Depending on the content they contain, you may want to set the cache maximum age for specific webpages. For example, if you have a routinely updated news section, you may want to set a brief cache lifetime as opposed to the longer lifetime for static content. For more information, see Set max-age headers for specific webpages, files, or paths.
ESI
The ESI, or Edge Side Includes, module is not recommended. The module is useful for small pieces of permanently cached content. In most cases, users want to have the small section of content uncached, which bootstraps Drupal, defeats the purpose of Varnish, and other caching mechanisms. In various use cases, ESI has a negative impact on system performance.