Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,059 of 9,059 pages
About the help in other languages
All help pages

Performance

Overview of the performance section for hosting companies: the levers in order of effect, the caching layers, measuring before tuning, and a one-line guide to every page of the section.

Download as PDF

Address: https://doc.exponential.earth/learninminutes/exphelp/viewer/help/hosting/performance/README.md

On this page

Performance

This section is for system administrators and product managers at hosting companies who want Exponential sites to be fast on their machines, and who must explain to customers what is and is not included in a plan. It answers: which levers matter most, which caches exist and who clears them, and how to measure before and after a change.

Back to Hosting companies: start here.

Contents

  1. The levers, in order of effect
  2. Measure first
  3. Pages in this section
  4. What hosts get wrong most often
  5. Related pages

The levers, in order of effect

The installation book lists them in this order (Chapter 10, section 10.12):

  1. Serve with Velocity and its response cache. A cached anonymous page is answered without PHP; persistent workers keep the application, the database connection and the compiled files warm.
  2. Keep the content view cache and template-block cache on (site.ini [ContentSettings] ViewCaching=enabled, [TemplateSettings] TemplateCache=enabled, both shipped), and warm the site after a clear.
  3. OPcache.
  4. APCu for Velocity's response cache memory tier and the SQL query cache in shared mode.
  5. The SQL query cache (querycache.ini [QueryCacheSettings] Mode=request or shared), measured on your site.
  6. The database (Chapter 9).

The README adds a point that matters for hosts that keep Apache or nginx: "Most of the speed came from fixing Exponential and the cache, not from the server process model ... Exponential 6.0.15+ is fast under load on Apache or Nginx too. Velocity raises the ceiling further; it is not what makes the application quick."

Measure first

exp:benchmark measures pages over HTTP, cached and rendered, and compares two servers back to back:

php bin/php/console exp:benchmark --save=var/benchmark/base.json --allow-root-user
# ... make one change ...
php bin/php/console exp:benchmark --baseline=var/benchmark/base.json --allow-root-user

Every figure in this section that comes from the sources is a measurement on a particular machine and site. The sources say so themselves; treat them as examples of what to measure, not as promises to customers. See Benchmarking a hosted site.

Pages in this section

PageWhat it answers
PHP-FPM tuningPool settings that matter for Exponential, reloads, timeouts, APCu
OPcacheThe right OPcache settings under PHP-FPM, Velocity and FrankenPHP, and why they differ
Caching layersEvery cache from the browser to the database, who fills it and who clears it
Velocity response cacheThe cache in Velocity's parent process: settings, checks, clearing
HTTP cache headersWhat browsers, proxies and CDNs may keep, and the role-aware HTTP cache
Varnish and reverse proxiesCaching proxies in front: trust, purging, what not to cache
Page caching with LiteSpeed and OpenLiteSpeedThe page cache built into LiteSpeed and OpenLiteSpeed, for anonymous visitors and crawlers, without a plugin: switching it on, checking hits, purging
CDNPutting a content delivery network in front of customer sites
Valkey and RedisThe sevenx_valkey_cache extension: caches in Redis or Valkey
Static cachePages generated as files; why it ships off and when to use it
Cache clearing and warmingWhich cache to clear for which change, in which order, and how to warm
Benchmarking a hosted siteexp:benchmark for hosts: fair comparisons, deploy checks, plan limits
The compiled kernel containerWhat var/cache/kernelservices/ is, when it is rebuilt, how to check it and what it saves per request

What hosts get wrong most often

MistakeEffectPage
opcache.validate_timestamps=0 on an Exponential sitea cache file rewritten after a clear is served in its old form until PHP restartsOPcache
clearing rendered-output caches before the new code runsthe old output is cached again and the change "did not work"Cache clearing and warming
reloading the wrong PHP-FPM masterthe site keeps running the old codePHP-FPM tuning
judging Velocity's memory by RSSthe pool looks many times larger than it isVelocity workers and pools
a caching proxy that stores pages with a session cookiesigned-in pages served to other visitorsVarnish and reverse proxies
a LiteSpeed page cache with CacheEnable public / instead of the conditions of .htaccess_rootwhich pages are stored depends on the server policy, not on the session and address conditionsPage caching with LiteSpeed and OpenLiteSpeed
switching on the static cache for speedevery publish regenerates pages inside the editor's requestStatic cache

Become an Exponential Partner

Partners share their information, provide funding, contribute back and develop the products with us, and that is how Exponential grows. A partner website and dashboard are planned for mid-2027: please become a partner today to speed up our growth rate and land new features faster.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x