Performance metrics of blockchain

Overall vs detailed performance

Overall performance (e.g., throughput, latency) can be employed to select the optimal blockchain system to fit the actual application scenario so that it is valuable for users. 1

The detailed performance provides more detailed information of the whole process which is valuable for blockchain developers to know the performance bottlenecks. 1

Overall performance metrics of blockchain

Transactions per second

Used for monitor the throughput in a period of time, which is the number of transactions per second.

During the period of time from tit_i to tjt_j, the transaction per second of a peer uu can be calculated as followed:

TPSu=Count(Tx(ti,tj))tjtiTPS_u=\frac{Count(Tx(t_i, t_j))}{t_j-t_i}

The transaction throughput of N peers can be calculated by taking average as follows:

TPS=uTPSuN\overline{TPS} = \frac{\sum_uTPS_u}{N}

Average Response Delay

This measurement captures the gap between the time when transaction is firstly sent into the network and the time when it is confirmed (i.e., be commited in a block and the block is accepted by all peers). The average transaction response delay of a peer uu can be calculated by the following equation:

ARDu=Tx(tTxconfirmedtTxinput)Count(Tx(ti,tj))ARD_u = \frac{\sum_{T_x}(t_{T_x confirmed} - t_{T_x input})}{Count(Tx(t_i, t_j))}

Transactions per CPU

This metric monitor the utilisation of the CPU when running the smart contracts. During the period of time from tit_i to tjt_j, the transaction per CPU of a peer uu can be calculated as followed:

TPCu=Count(Tx(ti,tj))titjF×CPU(t)TPC_u = \frac{Count(Tx(t_i, t_j))}{\int_{t_i}^{t_j}F\times CPU(t)}

Where F is the frequency of a single CPU core and CPU(t) is the CPU usage of the blockchain program at the time t.

Transaction Per Memory Second

This metrics represent the utilization of memory. It is calculated by the following equation:

TPMSu=Count(Tx(ti,tj))titjRMEM(t)+VMEM(t)TPMS_u = \frac{Count(Tx(t_i, t_j))}{\int_{t_i}^{t_j}RMEM(t)+VMEM(t)}

RMEM(t) and VMEM(t) are the real and virtual memory usage by the blockchain program at the time t.

Transactions per disk I/O

Transaction per disk I/O represents the utilization of I/O by the following equation:

TPDIOu=Count(Tx(ti,tj))titjDISKR(t)+DISKW(t)TPDIO_u = \frac{Count(Tx(t_i, t_j))}{\int_{t_i}^{t_j}DISKR(t)+DISKW(t)}

Transactions per network data

The transactions per network data monitors the consumption of network flow during a period of operation of a blockchain application:

TPNDu=Count(Tx(ti,tj))titjUPLOAD(t)+DOWNLOAD(t)TPND_u = \frac{Count(Tx(t_i, t_j))}{\int_{t_i}^{t_j}UPLOAD(t)+DOWNLOAD(t)}

Detailed performance metrics of blockchain

Peer discovery rate

TBA

RPC Response Rate

TBA

Transaction Propagation Rate

TBA

Contract Execution Time

TBA

State Updating Time

TBA

Consensus-Cost Time

TBA


  1. A detailed and real-time performance monitoring framework for blockchain systems; Proceedings - International Conference on Software Engineering; 2018