Exponential
INI Configuration
You should apply the following configuration for Exponential, in site.ini:
[DebugSettings] # always disable any Debug information on # live installations DebugOutput=disabled [TemplateSettings] # always enable template compilation # on live sites, you should also consider # precompiling template by using the bin/php/eztc.php script TemplateCompile=enabled # always enable {cache-block} instructions TemplateCache=enabled # disabling template compression is recommended # as you can use a lot of disk space in almost any # situation # if ever you want to enable this feature you will # have to know that is will consume at lot of CPU just # to compress each template !!! TemplateCompression=disabled # you can disable this because the template optimize # does not actually optimize anything TemplateOptimization=disabled # always turn off template debug, especially if you are # working on bad written templates # if the templates are not written correctly fix them # using ./bin/php/eztemplatecheck.php --debug=error will # help you Debug=disabled [ContentSettings] ViewCaching=enabled [OverrideSettings] # this caches all template override rules # it makes sense to disable it for development # but never for production Cache=enabled [HTTPHeaderSettings] # If you want to configure the way HTTP headers # are sent then you must enable this feature # You will need to configure you own HTTP headers value though CustomHeader=enabled [DatabaseSettings] # Always disable this on production # even if no SQL debug should be shown if # DebugOutput=disabled SQLOutput=disabled [RegionalSettings] # This make it possible to avoid a few I/Os to check # for the translation cache TranslationCheckMTime=disabled [URLTranslator] # If you do not use the url translation system to # redirect module urls like for instance user/login # then this will save 1-2 db calls on those pages. TranslatableSystemUrls=disabled
PHP configuration
In order to get maximum performance and avoid as much syscalls as possible at least on the FS level, you should use the following configuration for config.php:
// Should make it possible to set the PHP include_path to '.' // and so to limit disk i/o generated by the include_path define( 'EZP_USE_BUNDLED_COMPONENTS', true ); // This avoids any magical ini cache clear stuff // this means that whenever an INI value is changed // you will have to clear the ini cache manually // by using the php ./bin/php/ezcache.php --clear-tag=ini // CLI tool define( 'EZP_INI_FILEMTIME_CHECK', false );
Template hints
cache_ttl=0
Do not disable view cache using cache_ttl=0, but try solve your problem in another way.
ignore_content_expiry
On medium to large sites it is usually acceptable that changes in menus do not update instantly. Using
ignore_content_expiry
will avoid that all cache blocks are invalidated on every edit or publish operation.
Alternatively, if it is possible to specify a specific part of the node tree that should trigger expiry, you can use
subtree_expiry=/path/to/parent/node
In both cases, make sure you tweak expiry time if you need something higher or lower then the default 2 hours.