Skip to content


eZ Platform can be set up to run efficiently on almost any modern configuration. What follows is a list of recommendation that will make your installation perform better.


All the following recommendations are valid for both development and production setups, unless otherwise noted.

If you are in a hurry, the most important recommendations on this page are:

  • Dump optimized Composer autoload classmap
  • Use a full web (Nginx/Apache) server with vhost
  • Avoid shared filesystems for code (Docker for Mac/Win, VirtualBox/*, Vagrant, etc.), or find ways to optimize or work around the issues.
  • For clustering (mainly relevant for production/staging), reduce latency to Redis/Memcached, use Varnish and Solr.


  • Always use an up-to-date browser and an up-to-date operating system so you have access to latest browser versions
  • If possible, use a fast, stable internet connection, because an unreliable connection will slow down UI


In production setups:

  • Always use reverse proxy, and if possible use Varnish.
    • Compared to the built-in Symfony Proxy in PHP Varnish is much faster and is able to queue up requests for the same fresh/invalidated resource.
    • With ezplatform-http-cache support for xkey and grace Varnish provides more stable performance in read/write scenarios.
  • Set up eZ Platform in cluster mode if you need to handle bigger spikes of traffic than a single server can manage.


The following recommendations are ordered from largest to smallest impact they have on performance in general.


  • Avoid shared filesystems for code (Docker for Mac/Win, VirtualBox/*, Vagrant, etc.), because they typically slow down the application 10x or more, compared to native Linux filesystem.
  • VM in itself also adds 10-30% of overhead. However when it comes to production, e.g. AWS vs barebones, it also comes down to cost and convenience factors.

For Development use, try eZ Launchpad

For a ready solution that allows you to share code between your host and the underlying running VM system without this performance hit, try eZ Launchpad.

Web server

  • Use Nginx/Apache even for development, as PHP's built-in web server (as exposed via Symfony's server:* commands) is only able to handle one request at a time (including JS/CSS/* asset loading, etc.).
  • Use a recent version of nginx, set up https, and enable http/2 to reduce connection latency on parallel requests.


  • Always enable opcache for php-fpm/mod_php.
  • Prefer php-fpm and web server using it over fast-cgi for lower overall memory usage.


  • Keep Composer up to date.
  • Always dump optimized class map using composer dump-autoload --optimize or relevant flags on composer install/update.



Redis is currently recommended over Memcached, as the latter has had big performance issues. Symfony v3.4.15 may have resolved this.

  • Memcached/Redis can in some cases perform better than filesystem cache even with a single server, as it offers better general performance for operations invalidating cache.
    • However, pure read performance is slower, especially if the next points are not optimized.
    • With cache being on different node(s) than web server, make sure to try to tune latency between the two.


Check if your cloud provider has native service for Memcached/Redis, as those might be better tuned.

  • If you use Redis, make sure to tune it for in-memory cache usage. Its persistence feature is not needed with cache and will severely slow down execution time.
    • For use with sessions however, persistence can be a good fit if you want sessions to survive service interruptions.
    • Further tips for Redis with cache can be found in doc regarding Redis Clustering.
  • Use Solr Bundle and Solr to greatly offload your database and get more stable performance on your installation.
Read the Docs