/
RChain platform performance

RChain platform performance

Purpose

The purpose of this page is to surface documentation related to performance of the RChain platform

RChain release

Mercury

Performance goals for Mercury

ReleasePerformance goal
Mercury 1.01,000-1,500 COMM events/second in a single shard
Mercury patch6,000 COMM events/second in a single shard

Definitions

When talking about performance on the RChain platform it is important to have clarity on definitions of terms related to performance. We recommend reading What does transaction mean for RChain as a first step for learning about the language of performance on the RChain platform.

Comm event - The completion of a send and receive of a message over a channel in the Rholang interpreter.

How to measure RChain platform performance

As a development team we use a performance test harness to evaluate the platform. Please see https://github.com/rchain/perf-harness for complete details on this testing environment.

When reporting on platform performance, we measure comm events/second running the Rholang contract intdupe.rho, a contract designed to create a large number of comm events on a wide range of channels, in the performance testing environment.

Related documentation 

Note - Not all of this documentation reflects current planning and is indicated in the title with "(deprecated)". We keep this documentation here to preserve the history of this work.

TitleCreatorModified
(deprecated) Measurement of RChain Network PerformanceMedha ParlikarApr 09, 2019
2018-11-14 meeting notes: calculating comm events to manage expectations about performanceKelly FosterJan 11, 2019

Work items in Jira

Key Summary T Updated Status Resolution
RCHAIN-1173 Report the performance of a given branch / PR / Git Tag Story 15/May/19 10:07 AM Done Done
RCHAIN-1487 Make it possible to run benchmarks using a single command Epic 12/Mar/19 4:12 PM Done Done
RCHAIN-1691 Profile the performance of RNode in Eclipse Story 10/Jan/19 9:37 AM Done Declined
RCHAIN-1223 Performance check: Evaluation of a file in RholangCLI & same file in Node eval & node repl should be +- 5% Story 27/Dec/18 1:52 PM Done Won't Do
RCHAIN-3703 Spans eat up a lot of memory Bug 04/Sep/19 5:01 AM Done Done
RCHAIN-448 Update Grafana to include memory utilization metrics Story 10/Jan/19 10:33 AM Done Done
RCHAIN-566 Set up a performance test that can be run in Eclipse Story 10/Jan/19 10:33 AM Done Done
RCHAIN-2314 Test a wide Redex Story 10/Jan/19 9:37 AM Done Done
RCHAIN-412 Updated Grafana that works with bare metal after test net launches Story 10/Jan/19 9:37 AM Done Done
RCHAIN-1901 Set up a tracing system (Zipkin) for the perf-harness environment Story 07/Feb/20 11:47 AM Done Done
RCHAIN-3472 Proposals take >15m when finalization is triggered periodically Bug 10/Sep/19 9:13 AM Done Cannot Reproduce
RCHAIN-1516 Performance tests for rchain network Story 10/Sep/19 8:48 AM Done Done
RCHAIN-3728 Increase max memory on dev net nodes to 50 GB Task 10/Sep/19 8:47 AM Done Done
RCHAIN-3691 Promote https://grafana.perf.rchain-dev.tk/ to https://grafana.rchain-dev.tk/ Task 21/Aug/19 12:44 PM Done Done
RCHAIN-3471 Tag metrics with hostname and network ID Story 04/Jul/19 2:42 AM Done Done
RCHAIN-3540 Integrate perf-harness into CI Story 26/Jun/19 2:38 PM Done Done
RCHAIN-2874 Ditch prometheus-pushgateway in favor of push-based metrics Story 16/May/19 9:43 AM Done Done
RCHAIN-3401 Add the ability to trigger a perf harness job from a GitHub pull request Sub-task 15/May/19 10:11 AM Done Done
RCHAIN-1929 Investigate reported garbage collection (GC) issues with node Story 28/Mar/19 8:20 PM Done Cannot Reproduce
RCHAIN-2839 Create contract to run on perf test harness to support measuring COMM events Story 27/Mar/19 8:20 AM Done Done
RCHAIN-3080 Failures observed in Gatling in perf test harness Bug 06/Mar/19 6:04 AM Done Done
RCHAIN-3020 perf tests: Set up Telegraf Story 27/Feb/19 6:34 AM Done Won't Do
RCHAIN-817 perf tests: Automate deployment of the perf harness Bug 13/Feb/19 6:12 AM Done Done
RCHAIN-2923 Ansible playbook: Grafana + Prometheus Pushgateway + Prometheus server role Sub-task 12/Feb/19 2:42 AM Done Done
RCHAIN-2765 Profile RNode and see if there is a bottleneck in the business logic Story 05/Feb/19 11:47 AM Done Done
RCHAIN-1939 Add a README file Story 05/Feb/19 11:06 AM Done Done
RCHAIN-2894 perf tests: Move metrics services onto a bigger disk partition Story 01/Feb/19 11:10 AM Done Done
RCHAIN-2873 perf tests: Resurrect Grafana Story 01/Feb/19 11:10 AM Done Done
RCHAIN-2879 perf tests: Restart Hubot on failure Story 01/Feb/19 11:10 AM Done Done
RCHAIN-2865 perf tests: Restore hubot integration in perf tests Story 01/Feb/19 11:10 AM Done Done
RCHAIN-2871 Allow for running perf tests from a fork Story 01/Feb/19 11:10 AM Done Duplicate
RCHAIN-2851 Make RDoctor client resilient to network failures Story 01/Feb/19 11:10 AM Done Done
RCHAIN-2868 Migrate perf tests to rundeck from hubot Story 01/Feb/19 11:10 AM Done Won't Do
RCHAIN-1459 perf tests: Port perf tests over to gcloud Story 30/Jan/19 8:02 AM Done Done
RCHAIN-1966 Make the dashboard more obvious Story 10/Jan/19 10:33 AM Done Done
RCHAIN-2048 Make gatling test multiple nodes. Story 10/Jan/19 10:33 AM Done Done
RCHAIN-2045 Make models subproject available to external projects Story 10/Jan/19 10:33 AM Done Done
RCHAIN-1206 Performance testing of a commit residing in a forked repository Story 10/Jan/19 10:33 AM Done Done
RCHAIN-2044 Make rholang test contracts a resource. Story 10/Jan/19 10:33 AM Done Done
RCHAIN-2034 deliver a tool that allows continuous perf tests. Story 10/Jan/19 10:33 AM Done Done
RCHAIN-1729 Performance testing of Node 8 Story 10/Jan/19 9:37 AM Done Declined
RCHAIN-1414 Move hubot/drone/grafana to a separate machine Story 27/Dec/18 1:53 PM Done Done
RCHAIN-1190 Dockerize hubot Story 27/Dec/18 1:52 PM Done Done
RCHAIN-1477 Measure transaction latency for token transfer Story 16/Jul/19 1:38 PM To Do Unresolved
RCHAIN-1505 RNode and network performance Epic 31/Jan/20 7:25 AM To Do Unresolved
RCHAIN-2819 Measure the minimal size of the heap for RNode to run Story 13/Aug/19 4:10 AM To Do Unresolved
RCHAIN-1909 Idea: internal node performance health checks??? Story 15/Jul/19 2:10 PM To Do Unresolved
RCHAIN-3358 Add alerts to the perf test harness to alert when there is regression Story 05/Jun/19 3:15 AM To Do Unresolved
RCHAIN-3217 Add perf-harness compilation to main build to resolve Gatling errors Story 12/Apr/19 2:49 PM To Do Unresolved
RCHAIN-1320 Implement regression test for COMM event performance Story 09/Apr/19 12:56 PM To Do Unresolved
RCHAIN-3039 benchmark the crypto primitives Story 26/Feb/19 7:04 AM To Do Unresolved
RCHAIN-1342 Define dimensions of reliability for a network Story 11/Jan/19 3:20 PM To Do Unresolved
RCHAIN-1318 Determine minimum system requirements for current version of RNode to achieve 40K COMM event goal Story 11/Jan/19 3:20 PM To Do Unresolved
RCHAIN-3730 perf-harness build is failing Task 08/Aug/19 10:07 PM In Review Unresolved

Related content