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

exp:benchmark

Measure this installation: page timings over HTTP, A/B between servers, kernel probes, regression check.

Download as PDF

Address: https://doc.exponential.earth/learninminutes/exphelp/viewer/examples/commands/benchmark.md

On this page

exp:benchmark

Measure this installation: page timings over HTTP, A/B between servers, kernel probes, regression check.

Script bin/php/benchmark.php, code in kernel/private/classes/commands/benchmark.php. Run it from the installation root, as the user the web server runs as:

./console exp:benchmark --help
./console exp:bench --help
php bin/php/benchmark.php --help

Options

OptionValueHelp
--baserequiredServer to measure (default: https:// and the SiteURL of the siteaccess)
--comparerequiredTwo or more servers, comma separated, measured back to back (A/B)
--urlrequiredA URL or path to measure; repeat it for more
--urls-filerequiredA file with one URL or path per line (# starts a comment)
--pagesrequiredHow many pages of the menu the default list takes (default 3)
--no-adminLeave the admin login page out of the default list
--no-searchLeave the search page out of the default list
--searchrequiredThe words the default search page searches for (default: the first word of the first menu page)
--requestsrequiredRequests per URL and server (default 100)
--runsrequiredThe same as --requests: measured runs per URL and server
--concurrencyrequiredRequests at the same time (default 4)
--warmuprequiredUnmeasured runs first: requests per URL and server (default 5, at least one per connection), micro: iterations per probe (default 3)
--roundsrequiredSplit the requests into rounds, alternating the server order (default 2)
--microThe same as the micro mode
--formatrequiredOutput: table (default), json or csv
--coldA unique query string on every request, so no response cache answers
--cold-clearClear the content view cache once before the run (this installation only)
--insecureDo not verify TLS certificates (self-signed servers)
--authrequiredHTTP basic auth, user:password (or the EXP_BENCHMARK_AUTH variable)
--headerrequiredAn extra request header, "Name: value"; repeat it for more
--cookierequiredA Cookie header to send, e.g. to measure a signed-in page
--resolverequiredhost:port:address, as curl --resolve, to reach a host at another address
--httprequiredHTTP version: 1.1 or 2 (default: what curl negotiates)
--encodingrequiredThe Accept-Encoding to send (default gzip; "none" for none)
--timeoutrequiredSeconds per request (default 30)
--no-keepaliveA new connection for every request
--toolrequiredcurl (default, built in), ab, wrk or oha when installed
--durationrequiredSeconds per URL for wrk (default 10)
--repeatrequiredkernel: runs of every probe (default 20); micro: measured iterations of every probe (default 30)
--boot-repeatrequiredkernel: new processes for boot and the cold render (default 5)
--noderequiredkernel: the node to render and fetch (default: the front page)
--proberequiredkernel, micro: only these probes; repeat it for more
--jsonPrint the run as JSON
--csvPrint the rows as CSV
--saverequiredWrite the run as JSON to this file
--baselinerequiredCompare with this saved run; exit 1 when a metric regressed
--thresholdrequiredPercent a metric may get worse before it counts as a regression (default 15; micro: 40, after normalisation)
--min-deltarequiredMilliseconds a latency must grow by, too, to count (default 1)
--all-checksShow every comparison, not only the regressions
--forceAllow more than the polite limits against a host that is not loopback

Read from the option definitions in the code (startup(), getOptions(), options() or ezcConsoleOption). Every script also takes the standard options of the script framework (--help, --siteaccess, --debug, --quiet, --allow-root-user ...).

Arguments: [MODE*].


Generated by ./console exp:help:examples from bin/php/benchmark.php, kernel/private/classes/commands/benchmark.php. Do not edit this page: change the source and generate again (how). Free documentation: GFDL 1.3 or later.

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