Skip to content

Skip verify+import blocks perf test - #4498

Merged
g11tech merged 1 commit into
unstablefrom
dapplion/skip-import-perf
Sep 1, 2022
Merged

Skip verify+import blocks perf test#4498
g11tech merged 1 commit into
unstablefrom
dapplion/skip-import-perf

Conversation

@dapplion

@dapplion dapplion commented Sep 1, 2022

Copy link
Copy Markdown
Contributor

Motivation

This perf test timeout almost always, marking CI as red

   1) verify+import blocks - range sync perf test
       altair verifyImport mainnet_s3766816:31:
     Error: Timeout of 680000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/home/runner/work/lodestar/lodestar/packages/beacon-node/test/perf/chain/verifyImportBlocks.test.ts)
      at listOnTimeout (node:internal/timers:559:17)
      at processTimers (node:internal/timers:502:7)

https://github.com/ChainSafe/lodestar/runs/8049373420?check_suite_focus=true#step:9:489

Description

Disable temporarily to allow CI to be green, while debug why it timeouts

@dapplion
dapplion requested a review from a team as a code owner September 1, 2022 14:29
@github-actions

github-actions Bot commented Sep 1, 2022

Copy link
Copy Markdown
Contributor

Performance Report

鉁旓笍 no performance regression detected

Full benchmark results
Benchmark suite Current: 21f3a18 Previous: 4e73138 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 2.4163 ms/op 1.7252 ms/op 1.40
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 79.996 us/op 64.641 us/op 1.24
BLS verify - blst-native 1.8615 ms/op 2.1643 ms/op 0.86
BLS verifyMultipleSignatures 3 - blst-native 3.8026 ms/op 4.4695 ms/op 0.85
BLS verifyMultipleSignatures 8 - blst-native 8.1945 ms/op 9.6614 ms/op 0.85
BLS verifyMultipleSignatures 32 - blst-native 29.682 ms/op 35.127 ms/op 0.84
BLS aggregatePubkeys 32 - blst-native 39.417 us/op 46.565 us/op 0.85
BLS aggregatePubkeys 128 - blst-native 153.24 us/op 182.44 us/op 0.84
getAttestationsForBlock 174.48 ms/op 144.44 ms/op 1.21
isKnown best case - 1 super set check 439.00 ns/op 498.00 ns/op 0.88
isKnown normal case - 2 super set checks 431.00 ns/op 485.00 ns/op 0.89
isKnown worse case - 16 super set checks 433.00 ns/op 482.00 ns/op 0.90
CheckpointStateCache - add get delete 9.3340 us/op 8.7720 us/op 1.06
validate gossip signedAggregateAndProof - struct 4.2880 ms/op 5.0235 ms/op 0.85
validate gossip attestation - struct 2.0286 ms/op 2.3762 ms/op 0.85
pickEth1Vote - no votes 2.1760 ms/op 2.2322 ms/op 0.97
pickEth1Vote - max votes 21.555 ms/op 22.796 ms/op 0.95
pickEth1Vote - Eth1Data hashTreeRoot value x2048 11.674 ms/op 12.888 ms/op 0.91
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 22.200 ms/op 19.735 ms/op 1.12
pickEth1Vote - Eth1Data fastSerialize value x2048 1.6264 ms/op 1.4095 ms/op 1.15
pickEth1Vote - Eth1Data fastSerialize tree x2048 14.516 ms/op 12.611 ms/op 1.15
bytes32 toHexString 1.1940 us/op 874.00 ns/op 1.37
bytes32 Buffer.toString(hex) 727.00 ns/op 719.00 ns/op 1.01
bytes32 Buffer.toString(hex) from Uint8Array 965.00 ns/op 984.00 ns/op 0.98
bytes32 Buffer.toString(hex) + 0x 724.00 ns/op 735.00 ns/op 0.99
Object access 1 prop 0.41000 ns/op 0.32800 ns/op 1.25
Map access 1 prop 0.28900 ns/op 0.29600 ns/op 0.98
Object get x1000 18.014 ns/op 10.853 ns/op 1.66
Map get x1000 1.0450 ns/op 0.95200 ns/op 1.10
Object set x1000 128.66 ns/op 69.414 ns/op 1.85
Map set x1000 77.334 ns/op 45.791 ns/op 1.69
Return object 10000 times 0.37220 ns/op 0.43800 ns/op 0.85
Throw Error 10000 times 6.0551 us/op 6.1657 us/op 0.98
enrSubnets - fastDeserialize 64 bits 2.9350 us/op 2.3890 us/op 1.23
enrSubnets - ssz BitVector 64 bits 832.00 ns/op 755.00 ns/op 1.10
enrSubnets - fastDeserialize 4 bits 421.00 ns/op 369.00 ns/op 1.14
enrSubnets - ssz BitVector 4 bits 839.00 ns/op 803.00 ns/op 1.04
prioritizePeers score -10:0 att 32-0.1 sync 2-0 100.81 us/op 79.863 us/op 1.26
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 123.12 us/op 115.10 us/op 1.07
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 228.25 us/op 191.70 us/op 1.19
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 477.74 us/op 382.02 us/op 1.25
prioritizePeers score 0:0 att 64-1 sync 4-1 460.77 us/op 407.21 us/op 1.13
RateTracker 1000000 limit, 1 obj count per request 197.82 ns/op 176.29 ns/op 1.12
RateTracker 1000000 limit, 2 obj count per request 150.37 ns/op 127.18 ns/op 1.18
RateTracker 1000000 limit, 4 obj count per request 127.14 ns/op 102.78 ns/op 1.24
RateTracker 1000000 limit, 8 obj count per request 112.48 ns/op 92.353 ns/op 1.22
RateTracker with prune 5.0650 us/op 3.5260 us/op 1.44
array of 16000 items push then shift 3.1798 us/op 51.585 us/op 0.06
LinkedList of 16000 items push then shift 17.695 ns/op 15.116 ns/op 1.17
array of 16000 items push then pop 240.94 ns/op 207.72 ns/op 1.16
LinkedList of 16000 items push then pop 16.670 ns/op 14.124 ns/op 1.18
array of 24000 items push then shift 4.5517 us/op 77.357 us/op 0.06
LinkedList of 24000 items push then shift 21.304 ns/op 18.034 ns/op 1.18
array of 24000 items push then pop 220.32 ns/op 195.51 ns/op 1.13
LinkedList of 24000 items push then pop 18.195 ns/op 15.087 ns/op 1.21
intersect bitArray bitLen 8 11.795 ns/op 10.703 ns/op 1.10
intersect array and set length 8 182.47 ns/op 124.00 ns/op 1.47
intersect bitArray bitLen 128 72.406 ns/op 57.741 ns/op 1.25
intersect array and set length 128 2.3152 us/op 1.7092 us/op 1.35
Buffer.concat 32 items 1.9100 ns/op 1.7540 ns/op 1.09
pass gossip attestations to forkchoice per slot 3.2386 ms/op 2.8805 ms/op 1.12
computeDeltas 3.3220 ms/op 3.5140 ms/op 0.95
computeProposerBoostScoreFromBalances 908.23 us/op 814.25 us/op 1.12
altair processAttestation - 250000 vs - 7PWei normalcase 4.0219 ms/op 3.4943 ms/op 1.15
altair processAttestation - 250000 vs - 7PWei worstcase 6.0733 ms/op 5.3029 ms/op 1.15
altair processAttestation - setStatus - 1/6 committees join 208.87 us/op 176.44 us/op 1.18
altair processAttestation - setStatus - 1/3 committees join 402.04 us/op 339.34 us/op 1.18
altair processAttestation - setStatus - 1/2 committees join 563.63 us/op 486.46 us/op 1.16
altair processAttestation - setStatus - 2/3 committees join 727.91 us/op 634.64 us/op 1.15
altair processAttestation - setStatus - 4/5 committees join 1.0089 ms/op 894.99 us/op 1.13
altair processAttestation - setStatus - 100% committees join 1.1961 ms/op 1.0689 ms/op 1.12
altair processBlock - 250000 vs - 7PWei normalcase 28.861 ms/op 25.423 ms/op 1.14
altair processBlock - 250000 vs - 7PWei normalcase hashState 39.806 ms/op 34.526 ms/op 1.15
altair processBlock - 250000 vs - 7PWei worstcase 74.912 ms/op 92.633 ms/op 0.81
altair processBlock - 250000 vs - 7PWei worstcase hashState 98.895 ms/op 109.84 ms/op 0.90
phase0 processBlock - 250000 vs - 7PWei normalcase 3.8597 ms/op 4.5496 ms/op 0.85
phase0 processBlock - 250000 vs - 7PWei worstcase 46.815 ms/op 52.222 ms/op 0.90
altair processEth1Data - 250000 vs - 7PWei normalcase 952.69 us/op 1.0311 ms/op 0.92
Tree 40 250000 create 892.17 ms/op 676.22 ms/op 1.32
Tree 40 250000 get(125000) 293.01 ns/op 256.70 ns/op 1.14
Tree 40 250000 set(125000) 2.7414 us/op 1.8822 us/op 1.46
Tree 40 250000 toArray() 32.354 ms/op 32.287 ms/op 1.00
Tree 40 250000 iterate all - toArray() + loop 32.712 ms/op 27.780 ms/op 1.18
Tree 40 250000 iterate all - get(i) 111.83 ms/op 113.92 ms/op 0.98
MutableVector 250000 create 16.414 ms/op 19.973 ms/op 0.82
MutableVector 250000 get(125000) 14.837 ns/op 10.630 ns/op 1.40
MutableVector 250000 set(125000) 724.89 ns/op 427.09 ns/op 1.70
MutableVector 250000 toArray() 7.9543 ms/op 5.4909 ms/op 1.45
MutableVector 250000 iterate all - toArray() + loop 8.1541 ms/op 5.6792 ms/op 1.44
MutableVector 250000 iterate all - get(i) 3.2893 ms/op 2.7051 ms/op 1.22
Array 250000 create 7.3443 ms/op 5.4202 ms/op 1.35
Array 250000 clone - spread 4.1730 ms/op 2.4286 ms/op 1.72
Array 250000 get(125000) 1.7630 ns/op 1.1810 ns/op 1.49
Array 250000 set(125000) 1.7150 ns/op 1.1520 ns/op 1.49
Array 250000 iterate all - loop 167.87 us/op 153.07 us/op 1.10
effectiveBalanceIncrements clone Uint8Array 300000 102.31 us/op 92.055 us/op 1.11
effectiveBalanceIncrements clone MutableVector 300000 1.3170 us/op 632.00 ns/op 2.08
effectiveBalanceIncrements rw all Uint8Array 300000 252.51 us/op 247.14 us/op 1.02
effectiveBalanceIncrements rw all MutableVector 300000 228.84 ms/op 133.04 ms/op 1.72
phase0 afterProcessEpoch - 250000 vs - 7PWei 184.93 ms/op 187.61 ms/op 0.99
phase0 beforeProcessEpoch - 250000 vs - 7PWei 92.384 ms/op 113.87 ms/op 0.81
altair processEpoch - mainnet_e81889 506.15 ms/op 643.28 ms/op 0.79
mainnet_e81889 - altair beforeProcessEpoch 139.92 ms/op 170.28 ms/op 0.82
mainnet_e81889 - altair processJustificationAndFinalization 21.402 us/op 23.810 us/op 0.90
mainnet_e81889 - altair processInactivityUpdates 11.005 ms/op 8.6876 ms/op 1.27
mainnet_e81889 - altair processRewardsAndPenalties 92.286 ms/op 169.56 ms/op 0.54
mainnet_e81889 - altair processRegistryUpdates 3.1110 us/op 4.1850 us/op 0.74
mainnet_e81889 - altair processSlashings 649.00 ns/op 967.00 ns/op 0.67
mainnet_e81889 - altair processEth1DataReset 831.00 ns/op 1.0090 us/op 0.82
mainnet_e81889 - altair processEffectiveBalanceUpdates 2.4307 ms/op 2.0679 ms/op 1.18
mainnet_e81889 - altair processSlashingsReset 5.3940 us/op 5.5580 us/op 0.97
mainnet_e81889 - altair processRandaoMixesReset 5.9440 us/op 5.9290 us/op 1.00
mainnet_e81889 - altair processHistoricalRootsUpdate 826.00 ns/op 792.00 ns/op 1.04
mainnet_e81889 - altair processParticipationFlagUpdates 2.5180 us/op 2.7640 us/op 0.91
mainnet_e81889 - altair processSyncCommitteeUpdates 709.00 ns/op 650.00 ns/op 1.09
mainnet_e81889 - altair afterProcessEpoch 193.53 ms/op 197.89 ms/op 0.98
phase0 processEpoch - mainnet_e58758 532.45 ms/op 612.63 ms/op 0.87
mainnet_e58758 - phase0 beforeProcessEpoch 241.77 ms/op 220.07 ms/op 1.10
mainnet_e58758 - phase0 processJustificationAndFinalization 19.528 us/op 19.748 us/op 0.99
mainnet_e58758 - phase0 processRewardsAndPenalties 143.65 ms/op 124.18 ms/op 1.16
mainnet_e58758 - phase0 processRegistryUpdates 10.212 us/op 7.8640 us/op 1.30
mainnet_e58758 - phase0 processSlashings 802.00 ns/op 721.00 ns/op 1.11
mainnet_e58758 - phase0 processEth1DataReset 803.00 ns/op 804.00 ns/op 1.00
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 2.7042 ms/op 1.8135 ms/op 1.49
mainnet_e58758 - phase0 processSlashingsReset 5.0680 us/op 6.0500 us/op 0.84
mainnet_e58758 - phase0 processRandaoMixesReset 5.9670 us/op 6.3720 us/op 0.94
mainnet_e58758 - phase0 processHistoricalRootsUpdate 819.00 ns/op 1.0940 us/op 0.75
mainnet_e58758 - phase0 processParticipationRecordUpdates 4.8440 us/op 5.5510 us/op 0.87
mainnet_e58758 - phase0 afterProcessEpoch 158.37 ms/op 162.89 ms/op 0.97
phase0 processEffectiveBalanceUpdates - 250000 normalcase 2.5567 ms/op 1.9354 ms/op 1.32
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 3.4388 ms/op 2.2244 ms/op 1.55
altair processInactivityUpdates - 250000 normalcase 42.323 ms/op 55.907 ms/op 0.76
altair processInactivityUpdates - 250000 worstcase 51.853 ms/op 53.227 ms/op 0.97
phase0 processRegistryUpdates - 250000 normalcase 8.3080 us/op 9.3920 us/op 0.88
phase0 processRegistryUpdates - 250000 badcase_full_deposits 408.13 us/op 478.55 us/op 0.85
phase0 processRegistryUpdates - 250000 worstcase 0.5 221.78 ms/op 215.16 ms/op 1.03
altair processRewardsAndPenalties - 250000 normalcase 125.89 ms/op 131.78 ms/op 0.96
altair processRewardsAndPenalties - 250000 worstcase 83.572 ms/op 136.62 ms/op 0.61
phase0 getAttestationDeltas - 250000 normalcase 15.469 ms/op 11.669 ms/op 1.33
phase0 getAttestationDeltas - 250000 worstcase 14.435 ms/op 11.842 ms/op 1.22
phase0 processSlashings - 250000 worstcase 5.5088 ms/op 5.0874 ms/op 1.08
altair processSyncCommitteeUpdates - 250000 286.19 ms/op 292.52 ms/op 0.98
BeaconState.hashTreeRoot - No change 457.00 ns/op 505.00 ns/op 0.90
BeaconState.hashTreeRoot - 1 full validator 63.019 us/op 71.551 us/op 0.88
BeaconState.hashTreeRoot - 32 full validator 621.04 us/op 811.74 us/op 0.77
BeaconState.hashTreeRoot - 512 full validator 6.2465 ms/op 6.8471 ms/op 0.91
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 76.534 us/op 99.981 us/op 0.77
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.2033 ms/op 1.2960 ms/op 0.93
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 16.417 ms/op 18.924 ms/op 0.87
BeaconState.hashTreeRoot - 1 balances 61.670 us/op 68.372 us/op 0.90
BeaconState.hashTreeRoot - 32 balances 580.86 us/op 727.87 us/op 0.80
BeaconState.hashTreeRoot - 512 balances 6.2847 ms/op 7.1291 ms/op 0.88
BeaconState.hashTreeRoot - 250000 balances 88.777 ms/op 117.49 ms/op 0.76
aggregationBits - 2048 els - zipIndexesInBitList 37.222 us/op 24.297 us/op 1.53
regular array get 100000 times 67.440 us/op 61.926 us/op 1.09
wrappedArray get 100000 times 67.432 us/op 60.568 us/op 1.11
arrayWithProxy get 100000 times 28.939 ms/op 27.057 ms/op 1.07
ssz.Root.equals 521.00 ns/op 427.00 ns/op 1.22
byteArrayEquals 517.00 ns/op 425.00 ns/op 1.22
shuffle list - 16384 els 11.085 ms/op 11.381 ms/op 0.97
shuffle list - 250000 els 163.36 ms/op 168.93 ms/op 0.97
processSlot - 1 slots 14.032 us/op 14.582 us/op 0.96
processSlot - 32 slots 1.8359 ms/op 1.9513 ms/op 0.94
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 405.43 us/op 403.08 us/op 1.01
getCommitteeAssignments - req 1 vs - 250000 vc 5.3803 ms/op 5.3718 ms/op 1.00
getCommitteeAssignments - req 100 vs - 250000 vc 7.4204 ms/op 7.8697 ms/op 0.94
getCommitteeAssignments - req 1000 vs - 250000 vc 7.8140 ms/op 8.4469 ms/op 0.93
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 10.850 ns/op 7.8300 ns/op 1.39
state getBlockRootAtSlot - 250000 vs - 7PWei 1.2425 us/op 1.1307 us/op 1.10
computeProposers - vc 250000 17.015 ms/op 17.634 ms/op 0.96
computeEpochShuffling - vc 250000 165.62 ms/op 171.68 ms/op 0.96
getNextSyncCommittee - vc 250000 279.18 ms/op 290.54 ms/op 0.96

by benchmarkbot/action

@g11tech
g11tech enabled auto-merge (squash) September 1, 2022 14:48
@g11tech
g11tech merged commit 00807d7 into unstable Sep 1, 2022
@g11tech
g11tech deleted the dapplion/skip-import-perf branch September 1, 2022 14:50
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.

2 participants