Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add opPool metrics #4126

Merged
merged 2 commits into from
Jun 7, 2022
Merged

Add opPool metrics #4126

merged 2 commits into from
Jun 7, 2022

Conversation

dapplion
Copy link
Contributor

@dapplion dapplion commented Jun 7, 2022

Motivation

Description

Add opPool metrics

Closes #2984

@dapplion dapplion requested a review from a team as a code owner June 7, 2022 19:27
@github-actions
Copy link
Contributor

github-actions bot commented Jun 7, 2022

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: 12ccdb0 Previous: fe5c98e Ratio
altair processAttestation - 250000 vs - 7PWei normalcase 3.7092 ms/op 4.2532 ms/op 0.87
altair processAttestation - 250000 vs - 7PWei worstcase 6.3573 ms/op 7.1125 ms/op 0.89
altair processAttestation - setStatus - 1/6 committees join 235.47 us/op 244.42 us/op 0.96
altair processAttestation - setStatus - 1/3 committees join 406.07 us/op 466.06 us/op 0.87
altair processAttestation - setStatus - 1/2 committees join 563.44 us/op 658.40 us/op 0.86
altair processAttestation - setStatus - 2/3 committees join 750.06 us/op 832.57 us/op 0.90
altair processAttestation - setStatus - 4/5 committees join 1.0196 ms/op 1.1577 ms/op 0.88
altair processAttestation - setStatus - 100% committees join 1.2671 ms/op 1.4989 ms/op 0.85
altair processBlock - 250000 vs - 7PWei normalcase 26.793 ms/op 37.455 ms/op 0.72
altair processBlock - 250000 vs - 7PWei normalcase hashState 35.334 ms/op 39.085 ms/op 0.90
altair processBlock - 250000 vs - 7PWei worstcase 84.063 ms/op 87.269 ms/op 0.96
altair processBlock - 250000 vs - 7PWei worstcase hashState 115.66 ms/op 114.69 ms/op 1.01
phase0 processBlock - 250000 vs - 7PWei normalcase 3.7068 ms/op 3.9335 ms/op 0.94
phase0 processBlock - 250000 vs - 7PWei worstcase 48.188 ms/op 56.672 ms/op 0.85
altair processEth1Data - 250000 vs - 7PWei normalcase 711.97 us/op 791.53 us/op 0.90
Tree 40 250000 create 785.24 ms/op 877.28 ms/op 0.90
Tree 40 250000 get(125000) 306.47 ns/op 368.65 ns/op 0.83
Tree 40 250000 set(125000) 2.6100 us/op 2.9955 us/op 0.87
Tree 40 250000 toArray() 32.736 ms/op 37.378 ms/op 0.88
Tree 40 250000 iterate all - toArray() + loop 33.390 ms/op 37.781 ms/op 0.88
Tree 40 250000 iterate all - get(i) 119.99 ms/op 130.26 ms/op 0.92
MutableVector 250000 create 17.524 ms/op 19.064 ms/op 0.92
MutableVector 250000 get(125000) 12.547 ns/op 18.942 ns/op 0.66
MutableVector 250000 set(125000) 660.34 ns/op 780.59 ns/op 0.85
MutableVector 250000 toArray() 5.8091 ms/op 8.5731 ms/op 0.68
MutableVector 250000 iterate all - toArray() + loop 6.2434 ms/op 8.6508 ms/op 0.72
MutableVector 250000 iterate all - get(i) 3.0314 ms/op 3.9903 ms/op 0.76
Array 250000 create 5.8140 ms/op 8.3192 ms/op 0.70
Array 250000 clone - spread 3.8141 ms/op 3.2465 ms/op 1.17
Array 250000 get(125000) 1.6910 ns/op 1.3280 ns/op 1.27
Array 250000 set(125000) 1.6900 ns/op 1.2500 ns/op 1.35
Array 250000 iterate all - loop 132.09 us/op 194.02 us/op 0.68
effectiveBalanceIncrements clone Uint8Array 300000 190.63 us/op 84.898 us/op 2.25
effectiveBalanceIncrements clone MutableVector 300000 800.00 ns/op 860.00 ns/op 0.93
effectiveBalanceIncrements rw all Uint8Array 300000 260.82 us/op 288.67 us/op 0.90
effectiveBalanceIncrements rw all MutableVector 300000 173.61 ms/op 193.32 ms/op 0.90
phase0 afterProcessEpoch - 250000 vs - 7PWei 194.06 ms/op 233.26 ms/op 0.83
phase0 beforeProcessEpoch - 250000 vs - 7PWei 75.150 ms/op 77.428 ms/op 0.97
altair processEpoch - mainnet_e81889 582.55 ms/op 658.04 ms/op 0.89
mainnet_e81889 - altair beforeProcessEpoch 152.85 ms/op 153.23 ms/op 1.00
mainnet_e81889 - altair processJustificationAndFinalization 70.048 us/op 35.021 us/op 2.00
mainnet_e81889 - altair processInactivityUpdates 10.337 ms/op 13.525 ms/op 0.76
mainnet_e81889 - altair processRewardsAndPenalties 140.03 ms/op 161.07 ms/op 0.87
mainnet_e81889 - altair processRegistryUpdates 14.900 us/op 8.7040 us/op 1.71
mainnet_e81889 - altair processSlashings 4.0090 us/op 2.0300 us/op 1.97
mainnet_e81889 - altair processEth1DataReset 4.2420 us/op 2.0680 us/op 2.05
mainnet_e81889 - altair processEffectiveBalanceUpdates 2.8469 ms/op 2.9057 ms/op 0.98
mainnet_e81889 - altair processSlashingsReset 30.955 us/op 12.266 us/op 2.52
mainnet_e81889 - altair processRandaoMixesReset 28.346 us/op 13.214 us/op 2.15
mainnet_e81889 - altair processHistoricalRootsUpdate 4.4000 us/op 2.3160 us/op 1.90
mainnet_e81889 - altair processParticipationFlagUpdates 17.698 us/op 6.9480 us/op 2.55
mainnet_e81889 - altair processSyncCommitteeUpdates 3.0100 us/op 2.0350 us/op 1.48
mainnet_e81889 - altair afterProcessEpoch 188.66 ms/op 238.42 ms/op 0.79
phase0 processEpoch - mainnet_e58758 634.63 ms/op 667.07 ms/op 0.95
mainnet_e58758 - phase0 beforeProcessEpoch 236.32 ms/op 219.97 ms/op 1.07
mainnet_e58758 - phase0 processJustificationAndFinalization 66.073 us/op 29.213 us/op 2.26
mainnet_e58758 - phase0 processRewardsAndPenalties 139.77 ms/op 85.764 ms/op 1.63
mainnet_e58758 - phase0 processRegistryUpdates 36.470 us/op 18.951 us/op 1.92
mainnet_e58758 - phase0 processSlashings 3.6650 us/op 2.2310 us/op 1.64
mainnet_e58758 - phase0 processEth1DataReset 3.7740 us/op 1.7860 us/op 2.11
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 2.5762 ms/op 2.3437 ms/op 1.10
mainnet_e58758 - phase0 processSlashingsReset 18.327 us/op 10.571 us/op 1.73
mainnet_e58758 - phase0 processRandaoMixesReset 28.901 us/op 14.669 us/op 1.97
mainnet_e58758 - phase0 processHistoricalRootsUpdate 4.1020 us/op 2.1640 us/op 1.90
mainnet_e58758 - phase0 processParticipationRecordUpdates 22.884 us/op 13.094 us/op 1.75
mainnet_e58758 - phase0 afterProcessEpoch 171.95 ms/op 190.95 ms/op 0.90
phase0 processEffectiveBalanceUpdates - 250000 normalcase 2.4953 ms/op 3.4786 ms/op 0.72
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 2.5084 ms/op 4.3407 ms/op 0.58
altair processInactivityUpdates - 250000 normalcase 40.111 ms/op 37.380 ms/op 1.07
altair processInactivityUpdates - 250000 worstcase 50.217 ms/op 38.025 ms/op 1.32
phase0 processRegistryUpdates - 250000 normalcase 30.255 us/op 14.914 us/op 2.03
phase0 processRegistryUpdates - 250000 badcase_full_deposits 497.83 us/op 514.87 us/op 0.97
phase0 processRegistryUpdates - 250000 worstcase 0.5 227.24 ms/op 243.77 ms/op 0.93
altair processRewardsAndPenalties - 250000 normalcase 123.39 ms/op 94.623 ms/op 1.30
altair processRewardsAndPenalties - 250000 worstcase 115.75 ms/op 147.20 ms/op 0.79
phase0 getAttestationDeltas - 250000 normalcase 12.669 ms/op 14.519 ms/op 0.87
phase0 getAttestationDeltas - 250000 worstcase 13.075 ms/op 14.873 ms/op 0.88
phase0 processSlashings - 250000 worstcase 6.6732 ms/op 6.2311 ms/op 1.07
altair processSyncCommitteeUpdates - 250000 301.26 ms/op 328.87 ms/op 0.92
BeaconState.hashTreeRoot - No change 639.00 ns/op 669.00 ns/op 0.96
BeaconState.hashTreeRoot - 1 full validator 75.809 us/op 72.223 us/op 1.05
BeaconState.hashTreeRoot - 32 full validator 742.47 us/op 702.44 us/op 1.06
BeaconState.hashTreeRoot - 512 full validator 7.6217 ms/op 7.9878 ms/op 0.95
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 98.961 us/op 97.692 us/op 1.01
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.3480 ms/op 1.3758 ms/op 0.98
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 17.919 ms/op 18.669 ms/op 0.96
BeaconState.hashTreeRoot - 1 balances 68.774 us/op 83.282 us/op 0.83
BeaconState.hashTreeRoot - 32 balances 1.0987 ms/op 559.57 us/op 1.96
BeaconState.hashTreeRoot - 512 balances 5.7178 ms/op 6.0020 ms/op 0.95
BeaconState.hashTreeRoot - 250000 balances 98.455 ms/op 99.552 ms/op 0.99
aggregationBits - 2048 els - zipIndexesInBitList 27.837 us/op 40.944 us/op 0.68
regular array get 100000 times 53.515 us/op 79.541 us/op 0.67
wrappedArray get 100000 times 52.172 us/op 78.662 us/op 0.66
arrayWithProxy get 100000 times 32.142 ms/op 34.433 ms/op 0.93
ssz.Root.equals 483.00 ns/op 600.00 ns/op 0.81
byteArrayEquals 511.00 ns/op 597.00 ns/op 0.86
shuffle list - 16384 els 11.203 ms/op 13.531 ms/op 0.83
shuffle list - 250000 els 164.94 ms/op 192.73 ms/op 0.86
processSlot - 1 slots 16.605 us/op 15.030 us/op 1.10
processSlot - 32 slots 2.1469 ms/op 2.2033 ms/op 0.97
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 795.14 us/op 464.24 us/op 1.71
getCommitteeAssignments - req 1 vs - 250000 vc 5.2390 ms/op 6.2901 ms/op 0.83
getCommitteeAssignments - req 100 vs - 250000 vc 7.3939 ms/op 8.6212 ms/op 0.86
getCommitteeAssignments - req 1000 vs - 250000 vc 7.9610 ms/op 9.3607 ms/op 0.85
computeProposers - vc 250000 21.185 ms/op 21.965 ms/op 0.96
computeEpochShuffling - vc 250000 167.94 ms/op 190.77 ms/op 0.88
getNextSyncCommittee - vc 250000 308.56 ms/op 319.84 ms/op 0.96
pass gossip attestations to forkchoice per slot 6.0517 ms/op 3.7587 ms/op 1.61
computeDeltas 3.8275 ms/op 3.8167 ms/op 1.00
computeProposerBoostScoreFromBalances 815.43 us/op 1.0540 ms/op 0.77
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 2.4361 ms/op 2.3684 ms/op 1.03
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 79.980 us/op 83.964 us/op 0.95
BLS verify - blst-native 2.0560 ms/op 2.2210 ms/op 0.93
BLS verifyMultipleSignatures 3 - blst-native 4.3077 ms/op 4.3908 ms/op 0.98
BLS verifyMultipleSignatures 8 - blst-native 9.2265 ms/op 9.5043 ms/op 0.97
BLS verifyMultipleSignatures 32 - blst-native 32.386 ms/op 34.271 ms/op 0.95
BLS aggregatePubkeys 32 - blst-native 45.341 us/op 45.155 us/op 1.00
BLS aggregatePubkeys 128 - blst-native 175.08 us/op 180.74 us/op 0.97
getAttestationsForBlock 63.395 ms/op 72.374 ms/op 0.88
isKnown best case - 1 super set check 481.00 ns/op 512.00 ns/op 0.94
isKnown normal case - 2 super set checks 466.00 ns/op 498.00 ns/op 0.94
isKnown worse case - 16 super set checks 477.00 ns/op 478.00 ns/op 1.00
CheckpointStateCache - add get delete 12.703 us/op 12.525 us/op 1.01
validate gossip signedAggregateAndProof - struct 5.1958 ms/op 4.8674 ms/op 1.07
validate gossip attestation - struct 2.4057 ms/op 2.3562 ms/op 1.02
altair verifyImport mainnet_s3766816:31 6.9497 s/op 7.3233 s/op 0.95
pickEth1Vote - no votes 2.1603 ms/op 2.5509 ms/op 0.85
pickEth1Vote - max votes 24.270 ms/op 31.434 ms/op 0.77
pickEth1Vote - Eth1Data hashTreeRoot value x2048 13.119 ms/op 14.564 ms/op 0.90
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 22.367 ms/op 24.151 ms/op 0.93
pickEth1Vote - Eth1Data fastSerialize value x2048 1.6546 ms/op 1.8461 ms/op 0.90
pickEth1Vote - Eth1Data fastSerialize tree x2048 18.719 ms/op 21.053 ms/op 0.89
bytes32 toHexString 1.0680 us/op 1.3450 us/op 0.79
bytes32 Buffer.toString(hex) 761.00 ns/op 851.00 ns/op 0.89
bytes32 Buffer.toString(hex) from Uint8Array 1.0860 us/op 1.1440 us/op 0.95
bytes32 Buffer.toString(hex) + 0x 818.00 ns/op 851.00 ns/op 0.96
Object access 1 prop 0.38200 ns/op 0.44700 ns/op 0.85
Map access 1 prop 0.33000 ns/op 0.34500 ns/op 0.96
Object get x1000 15.401 ns/op 20.574 ns/op 0.75
Map get x1000 0.97000 ns/op 1.1700 ns/op 0.83
Object set x1000 97.221 ns/op 142.08 ns/op 0.68
Map set x1000 71.057 ns/op 85.586 ns/op 0.83
Return object 10000 times 0.38620 ns/op 0.42840 ns/op 0.90
Throw Error 10000 times 6.1909 us/op 6.8597 us/op 0.90
enrSubnets - fastDeserialize 64 bits 2.6740 us/op 3.3620 us/op 0.80
enrSubnets - ssz BitVector 64 bits 831.00 ns/op 905.00 ns/op 0.92
enrSubnets - fastDeserialize 4 bits 399.00 ns/op 501.00 ns/op 0.80
enrSubnets - ssz BitVector 4 bits 800.00 ns/op 889.00 ns/op 0.90
prioritizePeers score -10:0 att 32-0.1 sync 2-0 101.46 us/op 114.25 us/op 0.89
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 137.38 us/op 160.76 us/op 0.85
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 242.46 us/op 267.66 us/op 0.91
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 541.60 us/op 468.63 us/op 1.16
prioritizePeers score 0:0 att 64-1 sync 4-1 491.90 us/op 531.97 us/op 0.92
RateTracker 1000000 limit, 1 obj count per request 175.06 ns/op 224.79 ns/op 0.78
RateTracker 1000000 limit, 2 obj count per request 136.49 ns/op 168.90 ns/op 0.81
RateTracker 1000000 limit, 4 obj count per request 115.80 ns/op 139.84 ns/op 0.83
RateTracker 1000000 limit, 8 obj count per request 101.60 ns/op 126.59 ns/op 0.80
RateTracker with prune 4.7320 us/op 5.0990 us/op 0.93
array of 16000 items push then shift 4.6645 us/op 3.7792 us/op 1.23
LinkedList of 16000 items push then shift 26.672 ns/op 29.212 ns/op 0.91
array of 16000 items push then pop 262.90 ns/op 275.78 ns/op 0.95
LinkedList of 16000 items push then pop 20.706 ns/op 24.357 ns/op 0.85
array of 24000 items push then shift 7.7783 us/op 5.2526 us/op 1.48
LinkedList of 24000 items push then shift 23.431 ns/op 29.023 ns/op 0.81
array of 24000 items push then pop 209.57 ns/op 232.81 ns/op 0.90
LinkedList of 24000 items push then pop 21.153 ns/op 23.869 ns/op 0.89
intersect bitArray bitLen 8 11.556 ns/op 13.221 ns/op 0.87
intersect array and set length 8 169.36 ns/op 192.20 ns/op 0.88
intersect bitArray bitLen 128 65.178 ns/op 83.692 ns/op 0.78
intersect array and set length 128 2.1114 us/op 2.6482 us/op 0.80

by benchmarkbot/action

@wemeetagain wemeetagain merged commit a1a740b into unstable Jun 7, 2022
@wemeetagain wemeetagain deleted the dapplion/metrics-oppool branch June 7, 2022 20:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add op pool metrics
2 participants