forked from anza-xyz/agave
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Performance metrics computation methodology (anza-xyz#4041)
- Loading branch information
Showing
2 changed files
with
30 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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. |