5

Why is Transactions Per Second (TPS) used as measure to indicate the Solana network performance?

In my opinion TPS depends on traffic in general. If nearly nobody is using the chain, the TPS is low. But that does not mean the network is slow, so using TPS might be confusing.

Is measuring the TPS a best-effort guestimate of the network health? Why is there no better alternative available - yet? Isn't there a way to identify a clogged network, like running on limits of compute power or such?

1 Answer 1

4

Why is TPS used to determine the Solana network health?

Let's start by saying TPS is not a good way to measure network health.

The reason it is often used to measure the health of the network is due to people finding that it sometimes correlates with congestive issues. This does not mean that it is a good metric to measure health though.

Just as an example, people are now often confused by devnet performance and commonly think there's issues looking at TPS. Devnet just has lower TPS because it has less usage and a whole lot less validators.

How should I measure network health?

There's a variety of metrics you should consider when determining network health.

Average Confirmation Time

When confirmation times start to skyrocket, that's usually an indicator that there is some amount of forking going on or transactions are not confirming before they expire. You can find this measurement on tools such as ping thing.

Tower Distance in Latest and Root Slot

If the tower distance is getting very high between latest and root slot, that can also lead to excessive forking. At a certain point, the cluster will go into Vote Only mode if the tower distance is too high. This will cause non-vote transactions to fail as the cluster tries to normalize.

Slot Skip Rate

Validators that are unable to produce a block within their designated timeframe will cause slots to be skipped. That paired with delinquent validators on the leader schedule can cause a high percentage of slots to be skipped and lead to a bad user experience.

Time since last block produced

A good indicator of cluster health is time since last block produced. If the time grows too far from the PoH target, it can be a leading indicator that the cluster may halt. This is not a sure-fire way to determine it, but a good indicator on how validators are doing with the current traffic and producing blocks.

Number of Validators Online

During high congestion times, it can be seen that a large amount of validators may be kicked offline due to OOM(Out of Memory) or other issues. If this amount gets too high and the cluster cannot maintain consensus, it will need to be restarted.

Other Factors

All of the above are good starting points to determine cluster health, but are not the complete list. Depending on the scenario, you may want to check into other cluster stats to understand if there is a problem elsewhere. A great example of this is checking pps(packets per second) and determining if they're too high for most Validator's NIC. Always be mindful of all cluster stats when determining cluster health.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.