From 7f9a476660fdc6e8df97a2784e2e54f33f0d0b31 Mon Sep 17 00:00:00 2001 From: Pankaj Garg Date: Sat, 27 Apr 2019 16:37:51 -0700 Subject: [PATCH] Performance metrics computation methodology (#4041) --- book/src/SUMMARY.md | 1 + book/src/performance-metrics.md | 29 +++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 book/src/performance-metrics.md diff --git a/book/src/SUMMARY.md b/book/src/SUMMARY.md index 14eb285584..6f0150188a 100644 --- a/book/src/SUMMARY.md +++ b/book/src/SUMMARY.md @@ -20,6 +20,7 @@ - [Ledger Replication](ledger-replication.md) - [Secure Vote Signing](vote-signing.md) - [Staking Delegation and Rewards](stake-delegation-and-rewards.md) + - [Performance Metrics](performance-metrics.md) - [Anatomy of a Fullnode](fullnode.md) - [TPU](tpu.md) diff --git a/book/src/performance-metrics.md b/book/src/performance-metrics.md new file mode 100644 index 0000000000..e6088ac711 --- /dev/null +++ b/book/src/performance-metrics.md @@ -0,0 +1,29 @@ +# Performance Metrics + +Solana cluster performance is measured as average number of transactions per second +that the network can sustain (TPS). And, how long it takes for a transaction to be +confirmed by super majority of the cluster (Confirmation Time). + +Each cluster node maintains various counters that are incremented on certain events. +These counters are periodically uploaded to a cloud based database. Solana's metrics +dashboard fetches these counters, and computes the performance metrics and displays +it on the dashboard. + +## TPS + +The leader node's banking stage maintains a count of transactions that it processed. +The dashboard displays the count averaged over 2 second period in the TPS time series +graph. The dashboard also shows per second mean, maximum and total TPS as a running +counter. + +## Confirmation Time + +Each validator node maintains a list of active ledger forks that are visible to the node. +A fork is considered to be frozen when the node has received and processed all entries +corresponding to the fork. A fork is considered to be confirmed when it receives cumulative +super majority vote, and when one of its children forks is frozen. + +The node assigns a timestamp to every new fork, and computes the time it took to confirm +the fork. This time is reflected as validator confirmation time in performance metrics. +The performance dashboard displays the average of each validator node's confirmation time +as a time series graph. \ No newline at end of file