App Install
Measure 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)
Warning Memory growing at 1064.07 MB/s
Critical Heavy swap usage (26.1% swap used)
Additional Host Metrics
/etc/hostname/etc/hosts/etc/resolv.confApp Install
Measure 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)
Warning Memory growing at 1318.07 MB/s
Warning Moderate swap usage (14.1% swap used)
Additional Host Metrics
/etc/hostname/etc/hosts/etc/resolv.confFirst Call
This 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.Warning Memory growing at 2109.22 MB/s
Additional Host Metrics
//nix/storeFull-Arc Create (Validated) / Zero-Arc Read
A 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)
Local Signals
This 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)
Warning Memory growing at 97.78 MB/s
Additional Host Metrics
/etc/hostname/etc/hosts/etc/resolv.confMixed Arc get_agent_activity
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
Warning CPU p99 reached 96.3%
Warning Memory growing at 432.65 MB/s
Critical Heavy swap usage (39.4% swap used)
Warning 12% of hosts overloaded (load5/ncpus > 1.0)
Additional Host Metrics
//boot/efi-boot/etc/hostname/etc/hosts/etc/resolv.conf/nix/storeMixed Arc must_get_agent_activity
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
Warning Memory growing at 725.05 MB/s
Critical Heavy swap usage (39.4% swap used)
Additional Host Metrics
//boot/efi-boot/etc/hostname/etc/hosts/etc/resolv.conf/nix/storeRemote Call Rate
Test 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)
Warning Memory growing at 359.36 MB/s
Critical Heavy swap usage (23.1% swap used)
Additional Host Metrics
//efi-boot/etc/hostname/etc/hosts/etc/resolv.conf/nix/storeRemote Signals
This scenario tests the throughput of remote_signals operations.
-
default(1 agent)
Warning CPU p99 reached 99.0%
Warning Memory growing at 359.49 MB/s
Additional Host Metrics
//efi-boot/etc/hostname/etc/hosts/etc/resolv.conf/nix/storeSingle-write, many-read
Creates 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 rate
Additional Host Metrics
//efi-boot/nix/storeTwo-party countersigning
This 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)
Warning Memory growing at 106.37 MB/s
Warning Moderate swap usage (16.1% swap used)
Additional Host Metrics
//efi-boot/etc/hostname/etc/hosts/etc/resolv.conf/nix/storeWrite/Query
Creates 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.
Additional Host Metrics
//efi-boot/nix/storeWrite/Read
Creates an entry and reads it back, then repeats.
-
default(1 agent)
Additional Host Metrics
/etc/hostname/etc/hosts/etc/resolv.confWrite validated
Creates 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)
Warning Memory growing at 153.86 MB/s
Additional Host Metrics
//efi-boot/nix/storeZero-Arc Create and Read
A zero-arc/full-arc mixed scenario with two types of zero-arc nodes -- ones that create data and ones that read data -- as well as full arc nodes to "relay" the data. The scenario has three roles:
zero_write: A zero-arc conductor that just creates entries with a timestamp field. Those entries are linked to a known base hash so thatzero_readnodes can retrieve them.zero_read: A zero-arc conductor that reads the entries created by the zero-arc node(s) and records the time lag between when the entry had been created and when it was first discovered.full: A full-arc conductor that is just here to serve entries to zero arc nodes.
-
full(1 agent) -
zero_read(1 agent) -
zero_write(1 agent)
get_timed_entries_network zome function.Zome Call, Single Value
Calls 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)
Additional Host Metrics
/etc/hostname/etc/hosts/etc/resolv.conf