App Install
↑ Back to indexMeasure app installation speed. This scenario has two roles:
minimal: Installs a simple app which implements initialisation callbacks but otherwise doesn't contain a lot of code.large: Installs a larger app that contains some dependencies and some generated data as padding to make the bundle larger.
These are intended to catch a compilation slowdown or issues with copying around large WASMs (e.g. accidental cloning or tracing). In each case, the behaviour will uninstall the app it installed so that it can re-install it on the next iteration.
-
minimal(1 agent)
Holochain MetricsClick to toggle visibility.
Host MetricsClick to toggle visibility.
Warning CPU p99 reached 99.8%
Warning Memory growing at 1453.54 MiB/s
/etc/hostname/etc/hosts/etc/nomad.d/meta.json/etc/resolv.confApp Install
↑ Back to indexMeasure app installation speed. This scenario has two roles:
minimal: Installs a simple app which implements initialisation callbacks but otherwise doesn't contain a lot of code.large: Installs a larger app that contains some dependencies and some generated data as padding to make the bundle larger.
These are intended to catch a compilation slowdown or issues with copying around large WASMs (e.g. accidental cloning or tracing). In each case, the behaviour will uninstall the app it installed so that it can re-install it on the next iteration.
-
large(1 agent)
Holochain MetricsClick to toggle visibility.
Host MetricsClick to toggle visibility.
Warning Memory growing at 1426.07 MiB/s
//nix/storeDHT Sync Lag
↑ Back to indexMeasures the lag time between an agent publishing data and other peers being able to see it. This scenario has two roles:
write: Creates entries with a timestamp field, linked to a known base hash so thatrecord_lagagents can discover them.record_lag: Repeatedly queries for links from the known base hash. When a new entry is discovered, it calculates the time difference between the entry's timestamp and the current time, giving the sync lag for that entry.
-
record_lag(1 agent) -
write(1 agent)
Holochain MetricsClick to toggle visibility.
Host MetricsClick to toggle visibility.
Warning CPU p99 reached 98.6%
Warning Memory growing at 944.67 MiB/s
Critical Disk /etc/resolv.conf: 1/8 hosts above 90% capacity
Warning 65% of hosts overloaded (load5/ncpus > 1.0)
//efi-boot/etc/hostname/etc/hosts/etc/nomad.d/client-meta.json/etc/nomad.d/meta.json/etc/resolv.conf/nix/storeFirst Call
↑ Back to indexThis scenario installs a simple app which implements the init callback, and measures the time elapsed between start of install and calling init. It will uninstall the app it installed so that it can re-install it on the next iteration. This is required to re-run the initialisation callback.
-
default(1 agent)
init.Holochain MetricsClick to toggle visibility.
Host MetricsClick to toggle visibility.
Warning Memory growing at 2114.58 MiB/s
/etc/nomad.d/client-meta.jsonFull-Arc Create (Validated) / Zero-Arc Read
↑ Back to indexA full-arc/zero-arc mixed scenario where full-arc nodes create data that gets validated and zero-arc nodes read the data. The scenario has two roles:
full: A full-arc conductor that creates entries with a timestamp field. Those entries get validated and then retrieved by zero-arc nodes.zero: A zero-arc conductor that reads the entries created by the full-arc node(s) and records the time lag between when the entry had been created and when it was first discovered.
-
full(1 agent) -
zero(1 agent)
Holochain MetricsClick to toggle visibility.
Host MetricsClick to toggle visibility.
Warning CPU p99 reached 99.2%
Warning Memory growing at 542.07 MiB/s
Critical Disk /etc/resolv.conf: 1/5 hosts above 90% capacity
Warning 8% of hosts overloaded (load5/ncpus > 1.0)
//efi-boot/etc/hostname/etc/hosts/etc/nomad.d/client-meta.json/etc/nomad.d/meta.json/etc/resolv.conf/nix/storeLocal Signals
↑ Back to indexThis scenario is for testing the speed and reliability of local signals. It uses a zome with a function that will emit 10,000 signals. The scenario measures how long it takes to send the signals and how many have been received by the time the zome call ends.
-
default(1 agent)
Holochain MetricsClick to toggle visibility.
Host MetricsClick to toggle visibility.
Warning Memory growing at 87.04 MiB/s
/etc/hostname/etc/hosts/etc/resolv.confMixed Arc get_agent_activity
↑ Back to index
A mixed-arc scenario that measures the DHT's ability to propagate agent activity and make it available via get_agent_activity calls. The scenario has three roles:
zero_write: A zero-arc conductor that creates entries on its source chain.full_write: A full-arc conductor that creates entries on its source chain.zero_read: A zero-arc conductor that picks a random writer and repeatedly callsget_agent_activityto observe new entries appearing on the writer's chain, measuring the lag between creation and discovery.
-
full_write(1 agent) -
zero_read(1 agent) -
zero_write(1 agent)
get_agent_activity. This is measured per new action in the chain.get_agent_activity_full zome call timingget_agent_activity_full zome call that queries a writer's chain.get_agent_activity.behaviour:full_write
behaviour:zero_read
behaviour:zero_write
Holochain MetricsClick to toggle visibility.
Host MetricsClick to toggle visibility.
Warning CPU p99 reached 98.0%
Warning Memory growing at 768.25 MiB/s
Warning 19% of hosts overloaded (load5/ncpus > 1.0)
//efi-boot/etc/hostname/etc/hosts/etc/nomad.d/client-meta.json/etc/nomad.d/meta.json/etc/resolv.conf/nix/storeMixed Arc must_get_agent_activity
↑ Back to index
A scenario where write agents create entries in batches of 10, while must_get_agent_activity agents each pick a random write agent and repeatedly attempt to create an entry that references the chain top of their latest batch. This reference means that the entry's validation function needs to make a must_get_agent_activity call.
The purpose of this scenario is to measure the time it takes for published agent activity data to be gossiped among authorities and become available to peers that query it via must_get_agent_activity.
This test is similar to Write Validated must_get_agent_activity, but some write agents are zero-arc and all must_get_agent_activity agents are zero-arc. This forces the must_get_agent_activity host call to go to the network.
-
full_write(1 agent) -
zero_must_get_agent_activity(1 agent) -
zero_write(1 agent)
action_seqwrite agent, aggregated across all reading agents. The reading dimension is collapsed by taking the maximum observed value for each write agent (any successful read counts as propagation). This reflects the DHT’s ability to propagate agent activity ops and make them available to querying peers.write agent's creation of a batch and a must_get_agent_activity agent's successful discovery of the batch and creation/self-validation of a new entry that depends on it.must_get_agent_activity agent was able to discover batches and create/self-validate new entries that depend on them.create_validated_sample_entry zome call timingwrite agent's source chain.must_get_agent_activity calls.behaviour:full_write
behaviour:zero_must_get_agent_activity
behaviour:zero_write
Holochain MetricsClick to toggle visibility.
Host MetricsClick to toggle visibility.
Warning Memory growing at 177.37 MiB/s
//efi-boot/etc/hostname/etc/hosts/etc/nomad.d/client-meta.json/etc/nomad.d/meta.json/etc/resolv.conf/nix/storeRemote Call Rate
↑ Back to indexTest the throughput of remote_call operations. Each agent in this scenario waits for a certain number of peers to be available or for up to two minutes, whichever happens first, before starting its behaviour.
-
default(1 agent)
Holochain MetricsClick to toggle visibility.
Host MetricsClick to toggle visibility.
Warning Memory growing at 639.96 MiB/s
Critical Disk /etc/resolv.conf: 1/2 hosts above 90% capacity
//efi-boot/etc/hostname/etc/hosts/etc/nomad.d/client-meta.json/etc/resolv.conf/nix/storeRemote Signals
↑ Back to indexThis scenario tests the throughput of remote_signals operations.
-
default(1 agent)
Holochain MetricsClick to toggle visibility.
Host MetricsClick to toggle visibility.
/etc/hostname/etc/hosts/etc/nomad.d/client-meta.json/etc/resolv.confSingle-write, many-read
↑ Back to indexCreates an entry in the agent setup, then read one's own record back. This tests the maximum read performance for reading back local data when the chain is short.
-
default(1 agent)
read call timingread call rateHolochain MetricsClick to toggle visibility.
Host MetricsClick to toggle visibility.
Warning Memory growing at 43.89 MiB/s
//efi-boot/nix/storeTwo-party countersigning
↑ Back to indexThis scenario tests the performance of countersigning operations. There are two roles: initiate and participate. The participants commit an entry to advertise that they are willing to participate in sessions. They listen for sessions and participate in one at a time.
-
initiate(1 agent) -
participate(1 agent)
Holochain MetricsClick to toggle visibility.
Host MetricsClick to toggle visibility.
Warning CPU p99 reached 98.8%
Warning 33% of hosts overloaded (load5/ncpus > 1.0)
//efi-boot/etc/nomad.d/client-meta.json/nix/storeUnyt Chain Transaction
↑ Back to indexTests Unyt chain transaction system performance with credit ledger and smart agreement primitives. The scenario has three roles:
initiate: Progenitor agent that initializes the network with system templates, global configuration, and foundational smart agreementsspend: Transaction agents that accept incoming commitments and create spend transactions distributed among participantssmart_agreements: Smart agreement agents that collect RAVEs, execute agreements, and create parked link spending transactions
-
initiate(1 agent) -
smart_agreements(1 agent) -
spend(1 agent)
Holochain MetricsClick to toggle visibility.
Host MetricsClick to toggle visibility.
Warning CPU p99 reached 99.5%
Warning Memory growing at 2746.91 MiB/s
Warning 13% of hosts overloaded (load5/ncpus > 1.0)
//efi-boot/etc/hostname/etc/hosts/etc/nomad.d/client-meta.json/etc/nomad.d/meta.json/etc/resolv.conf/nix/storeUnyt Swap
↑ Back to indexThis scenario exercises Unyt's bridging flow, converting an external
blockchain token (HOT) into Unyt's internal wrapped credit (wHOT), and the
follow-on wHOT → HF swap. The roles are:
initiate (progenitor that bootstraps the network and lane),
bridge_agent (oracle + bridging agent that drives deposits),
bridge (depositor that collects the deposit RAVE to receive
wHOT, then swaps that wHOT for HF), and
swap_agent (HoloFuel counterparty that accepts swap
commitments).
-
bridge_agent(1 agent) -
initiate(1 agent) -
swap(1 agent) -
swap_agent(1 agent) -
user(1 agent)
Holochain MetricsClick to toggle visibility.
Host MetricsClick to toggle visibility.
Warning CPU p99 reached 99.2%
Warning Memory growing at 1805.82 MiB/s
Warning 16% of hosts overloaded (load5/ncpus > 1.0)
/etc/hostname/etc/hosts/etc/nomad.d/client-meta.json/etc/resolv.confValidation Receipts
↑ Back to indexCreates an entry, wait for required validation receipts, then repeat. Records the amount of time it took to accumulate the required number of receipts for all DHT operations. This is measured to the nearest 20ms so that we don't keep the agent too busy checking for receipts.
Each agent in this scenario waits for a certain number of peers to be available or for up to two minutes, whichever happens first, before starting its behaviour.
By default, this scenario will wait for a complete set of validation receipts before committing the next record. If the NO_VALIDATION_COMPLETE environment variable is set, it will instead publish new records on every round, building up an ever-growing list of action hashes to check on.
-
default(1 agent)
Holochain MetricsClick to toggle visibility.
Host MetricsClick to toggle visibility.
Warning CPU p99 reached 98.6%
Warning Memory growing at 284.43 MiB/s
Critical Disk /etc/resolv.conf: 1/5 hosts above 90% capacity
Warning 65% of hosts overloaded (load5/ncpus > 1.0)
//efi-boot/etc/hostname/etc/hosts/etc/nomad.d/client-meta.json/etc/nomad.d/meta.json/etc/resolv.conf/nix/storeWrite/get_agent_activity
↑ Back to index
A scenario where write peers write entries, while get_agent_activity peers each query a single write agent's activity with get_agent_activity.
Before a target write peer and the requesting get_agent_activity peer are in sync, this will measure the get_agent_activity call performance over a network. Once a write peer reaches sync with a get_agent_activity peer, the write peer will publish their actions and entries, and so the get_agent_activity calls will likely have most of the data they need locally. At that point this measures the database query performance and code paths through host functions.
-
get_agent_activity(1 agent) -
write(1 agent)
get_agent_activity_full zome call timingwrite peer's source chain.Holochain MetricsClick to toggle visibility.
Host MetricsClick to toggle visibility.
Warning CPU p99 reached 98.4%
Warning Memory growing at 319.41 MiB/s
Critical Disk /etc/resolv.conf: 1/7 hosts above 90% capacity
Warning 35% of hosts overloaded (load5/ncpus > 1.0)
//efi-boot/etc/hostname/etc/hosts/etc/nomad.d/client-meta.json/etc/nomad.d/meta.json/etc/resolv.conf/nix/storeWrite/get_agent_activity with volatile conductors
↑ Back to index
A scenario where write peers write entries, while get_agent_activity_volatile peers each query a single write agents activity with get_agent_activity but shutdown and restart their conductors at semi-random intervals.
Before a target write peer and the requesting get_agent_activity_volatile peer are in sync, this will measure the get_agent_activity call performance over a network. Once a write peer reaches sync with a get_agent_activity peer, the write peer will publish their actions and entries, and so the get_agent_activity calls will likely have most of the data they need locally. At that point this measures the database query performance and code paths through host functions.
-
get_agent_activity_volatile(1 agent) -
write(1 agent)
action_seqget_agent_activity. This reflects the DHT's ability to propagate agent activity ops and make them available to querying peers.get_agent_activity_full zome call timingwrite peer's source chain.get_agent_activity_volatile peers.get_agent_activity_volatile conductor.get_agent_activity_volatile conductor was running before being stopped.get_agent_activity_volatile conductor was stopped before being started again.get_agent_activity_volatile peer reach their target arc in the moment before they were shutdown.get_agent_activity_volatile_agent:uhCAk1okO_aLmg8PBsF8j5V80J1gLwf9i4eXmTrr2brQ_8K7Lb4XB
get_agent_activity_volatile_agent:uhCAk20Sw9-RXC2tY56ReiNVRv08RI1tmKbCO8gmq-ytn4xj9TDID
get_agent_activity_volatile_agent:uhCAk5mpek8k-iEnmf4psWkYlSOd3VYLDu3CYc7LecAYSBxzxaQRZ
get_agent_activity_volatile_agent:uhCAkCV4WyZj6vsqYXVbeLQeq8pm5HVUM07f0iz9XUEg_kU23EBd8
get_agent_activity_volatile_agent:uhCAkDqvCs76usM_92At5B6NLLUHvF3V7FjVLIFy9glV-CRcSPwS4
get_agent_activity_volatile_agent:uhCAkGn-pOlHiGdcUF94aAhI6jdW-tDhLIYqejyi-H6tg4qzl8xJN
get_agent_activity_volatile_agent:uhCAkGonA42iPtFyvFiczaO0kzVfwOJMYQ5zADGdYUvpTaq6ymCqk
get_agent_activity_volatile_agent:uhCAkJuoL03ZghkyIHQqoCjx0kaI7kpVPy_BTk7C5D_EFYenmhCm4
get_agent_activity_volatile_agent:uhCAkMrRmAISrCdBU1ovI6X7BKg8nIigx2uF-Hj3GvDosi0uD22j0
get_agent_activity_volatile_agent:uhCAkNNu9Pgw_Rb7aKcFd9JgpG7Fgig5IhCix4qSF3Pfk-OPUt7NG
get_agent_activity_volatile_agent:uhCAkNrfUoJWR84RthZ7WILAIQB7E0R10zZjVluQRcJMwZDKjDBb1
get_agent_activity_volatile_agent:uhCAkPIlCcp3orICWxIs8KtW4HmU7k5b19EJkO9-wTfGHGCP-Qyg8
get_agent_activity_volatile_agent:uhCAkS49ciT0PoZG-OqLZZ9q_cJnqRhhV8yh6vLUyQGVjnnebzfNt
get_agent_activity_volatile_agent:uhCAkT-9KP-f_iFMai8d7kv4rQAnQGyKpiSUNldHiZcel4eVkC0qp
get_agent_activity_volatile_agent:uhCAkYjzKW8pToSlzcEWC4AchLCQSn9c1kdhcEQW0m6YFrdHQXxqK
get_agent_activity_volatile_agent:uhCAkZkq4yIKNAEQ_3GqWTn3xOpzxtUdDNM0sdJpvTiYxEsCyJlT2
get_agent_activity_volatile_agent:uhCAkd-z-SHWvlJ5lxiQC2O53klTCap-WdsTnMvIHOXZS31kTfHSB
get_agent_activity_volatile_agent:uhCAkfLS2Lap9FQjOzzXH9GR8iYNcCaQGYo9kU28jT8NdM51fl2Og
get_agent_activity_volatile_agent:uhCAkkmg_lg9v3U0J9XnvejMcD5_-7mn5j6q31hYtJQk8F6Yyf3cL
get_agent_activity_volatile_agent:uhCAkw1nME8CPCHHL1P9nFZDSgUOmPyJaKMFutYqGSrTnR3u3U1Q2
Holochain MetricsClick to toggle visibility.
Host MetricsClick to toggle visibility.
Warning CPU p99 reached 98.3%
Warning Memory growing at 413.20 MiB/s
Critical Disk /etc/resolv.conf: 1/8 hosts above 90% capacity
Warning 14% of hosts overloaded (load5/ncpus > 1.0)
//efi-boot/etc/hostname/etc/hosts/etc/nomad.d/client-meta.json/etc/nomad.d/meta.json/etc/resolv.conf/nix/storeWrite/Query
↑ Back to indexCreates an entry, then queries the source chain and performs a simple operation on the entries, then repeats.
-
default(1 agent)
chain_query_count_len zome call that queries the source chain.Holochain MetricsClick to toggle visibility.
Host MetricsClick to toggle visibility.
//nix/storeWrite/Read
↑ Back to indexCreates an entry and reads it back, then repeats.
-
default(1 agent)
Holochain MetricsClick to toggle visibility.
Host MetricsClick to toggle visibility.
/etc/nomad.d/client-meta.jsonWrite validated
↑ Back to indexCreates an entry, updates it and links the create to the update, then repeats. Each of the three actions is validated by the included hApp.
-
default(1 agent)
Holochain MetricsClick to toggle visibility.
Host MetricsClick to toggle visibility.
Warning CPU p99 reached 92.8%
Warning Memory growing at 120.47 MiB/s
/etc/hostname/etc/hosts/etc/resolv.confWrite Validated must_get_agent_activity
↑ Back to index
A scenario where write agents create entries in batches of 10, while must_get_agent_activity agents each pick a random write agent and repeatedly attempt to create an entry that references the chain top of their latest batch. This reference means that the entry's validation function needs to make a must_get_agent_activity call.
The purpose of this scenario is to measure the time it takes for published agent activity data to be gossiped among authorities and become available to peers that query it via must_get_agent_activity.
This test is similar to Mixed-Arc must_get_agent_activity, but all agents are full-arc.
-
must_get_agent_activity(1 agent) -
write(1 agent)
action_seqwrite agent, aggregated across all reading agents. The reading dimension is collapsed by taking the maximum observed value for each write agent (any successful read counts as propagation). This reflects the DHT’s ability to propagate agent activity ops and make them available to querying peers.write agent's creation of a batch and a must_get_agent_activity agent's successful discovery of the batch and creation/self-validation of a new entry that depends on it.must_get_agent_activity agent was able to discover batches and create/self-validate new entries that depend on them.create_validated_sample_entry zome call timingwrite agent's source chain.must_get_agent_activity calls.Holochain MetricsClick to toggle visibility.
Host MetricsClick to toggle visibility.
Warning CPU p99 reached 96.6%
Warning Memory growing at 557.69 MiB/s
Warning 15% of hosts overloaded (load5/ncpus > 1.0)
//efi-boot/etc/hostname/etc/hosts/etc/nomad.d/client-meta.json/etc/nomad.d/meta.json/etc/resolv.conf/nix/storeZome Call, Single Value
↑ Back to indexCalls a zome function that returns a fixed value. This tests the maximum performance of zome calls when the zome function is not calling into Holochain other otherwise doing any work.
-
default(1 agent)
Holochain MetricsClick to toggle visibility.
Host MetricsClick to toggle visibility.
Warning Memory growing at 40.29 MiB/s
/etc/nomad.d/client-meta.json