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

fix: update beacon max-old-space-size to 8192 #6343

Merged
merged 2 commits into from
Jan 23, 2024

Conversation

nflaig
Copy link
Member

@nflaig nflaig commented Jan 23, 2024

Motivation

Description

As discussed in the standup, we should increase our default heap memory limit. In the issue I initially proposed to use 6GB but from the call today it sounded like the consensus is rather to increase it to 8GB to prevent the node from crashing during non-finality or even potential DDoS attacks.

The downside of increasing the limit might be a slightly higher memory usage but it is not really clear how much impact this has. Increasing the limit might even be helpful to reduce GC overhead as the node should be consistently below the set limit now, even on Holesky.

This value can be revisited once #5968 is fully implemented and we are able to handle bad network conditions like non-finality without having a huge increase in memory.

Note: I did not update all occurrences of --max-old-space-size that we have in the code base as I think it is either not required or might be helpful if we get an error due to reaching the limit there.

Closes #6137

@nflaig nflaig requested a review from a team as a code owner January 23, 2024 15:19
@philknows
Copy link
Member

8192 is also what I've recommended to people running into errors and I think it's good to have the excess space even if it won't be used. It's a better UX than only incrementing what we think we need.... until we need more. We can revisit this setting as @tuyennhv mentioned after #5968 with more data.

Copy link

codecov bot commented Jan 23, 2024

Codecov Report

Merging #6343 (ff115ad) into unstable (398be86) will not change coverage.
The diff coverage is n/a.

Additional details and impacted files
@@            Coverage Diff            @@
##           unstable    #6343   +/-   ##
=========================================
  Coverage     60.13%   60.13%           
=========================================
  Files           407      407           
  Lines         46451    46451           
  Branches       1534     1534           
=========================================
  Hits          27935    27935           
  Misses        18486    18486           
  Partials         30       30           

@nflaig nflaig force-pushed the nflaig/increase-memory-limit branch from 65c1b9e to ff115ad Compare January 23, 2024 15:34
@nflaig nflaig changed the title feat: increase default memory limit to 8GB fix: update beacon max-old-space-size to 8192 Jan 23, 2024
@wemeetagain wemeetagain merged commit 43994ba into unstable Jan 23, 2024
14 of 16 checks passed
@wemeetagain wemeetagain deleted the nflaig/increase-memory-limit branch January 23, 2024 16:05
Copy link
Contributor

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: b168ed2 Previous: 398be86 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 660.69 us/op 634.40 us/op 1.04
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 135.87 us/op 94.987 us/op 1.43
BLS verify - blst-native 1.5238 ms/op 1.4008 ms/op 1.09
BLS verifyMultipleSignatures 3 - blst-native 3.2887 ms/op 2.8635 ms/op 1.15
BLS verifyMultipleSignatures 8 - blst-native 7.1294 ms/op 6.2760 ms/op 1.14
BLS verifyMultipleSignatures 32 - blst-native 26.067 ms/op 23.453 ms/op 1.11
BLS verifyMultipleSignatures 64 - blst-native 49.742 ms/op 47.057 ms/op 1.06
BLS verifyMultipleSignatures 128 - blst-native 100.51 ms/op 91.182 ms/op 1.10
BLS deserializing 10000 signatures 1.0381 s/op 952.28 ms/op 1.09
BLS deserializing 100000 signatures 10.084 s/op 9.6330 s/op 1.05
BLS verifyMultipleSignatures - same message - 3 - blst-native 1.4126 ms/op 1.5177 ms/op 0.93
BLS verifyMultipleSignatures - same message - 8 - blst-native 1.6717 ms/op 1.6346 ms/op 1.02
BLS verifyMultipleSignatures - same message - 32 - blst-native 2.6613 ms/op 2.7768 ms/op 0.96
BLS verifyMultipleSignatures - same message - 64 - blst-native 4.1109 ms/op 3.6557 ms/op 1.12
BLS verifyMultipleSignatures - same message - 128 - blst-native 6.8540 ms/op 6.1731 ms/op 1.11
BLS aggregatePubkeys 32 - blst-native 31.098 us/op 28.904 us/op 1.08
BLS aggregatePubkeys 128 - blst-native 115.95 us/op 106.35 us/op 1.09
getAttestationsForBlock 61.365 ms/op 55.824 ms/op 1.10
getSlashingsAndExits - default max 254.98 us/op 167.28 us/op 1.52
getSlashingsAndExits - 2k 546.56 us/op 501.40 us/op 1.09
proposeBlockBody type=full, size=empty 6.9782 ms/op 7.2484 ms/op 0.96
isKnown best case - 1 super set check 482.00 ns/op 616.00 ns/op 0.78
isKnown normal case - 2 super set checks 461.00 ns/op 639.00 ns/op 0.72
isKnown worse case - 16 super set checks 432.00 ns/op 570.00 ns/op 0.76
CheckpointStateCache - add get delete 6.3910 us/op 7.4970 us/op 0.85
validate api signedAggregateAndProof - struct 3.2892 ms/op 3.0684 ms/op 1.07
validate gossip signedAggregateAndProof - struct 3.1841 ms/op 3.1282 ms/op 1.02
validate gossip attestation - vc 640000 1.4742 ms/op 1.4892 ms/op 0.99
batch validate gossip attestation - vc 640000 - chunk 32 182.05 us/op 177.87 us/op 1.02
batch validate gossip attestation - vc 640000 - chunk 64 158.39 us/op 169.36 us/op 0.94
batch validate gossip attestation - vc 640000 - chunk 128 153.21 us/op 165.39 us/op 0.93
batch validate gossip attestation - vc 640000 - chunk 256 164.51 us/op 165.70 us/op 0.99
pickEth1Vote - no votes 1.7447 ms/op 1.4265 ms/op 1.22
pickEth1Vote - max votes 13.548 ms/op 19.109 ms/op 0.71
pickEth1Vote - Eth1Data hashTreeRoot value x2048 27.815 ms/op 22.488 ms/op 1.24
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 41.396 ms/op 32.044 ms/op 1.29
pickEth1Vote - Eth1Data fastSerialize value x2048 991.18 us/op 784.01 us/op 1.26
pickEth1Vote - Eth1Data fastSerialize tree x2048 5.6055 ms/op 7.4214 ms/op 0.76
bytes32 toHexString 789.00 ns/op 1.1050 us/op 0.71
bytes32 Buffer.toString(hex) 350.00 ns/op 423.00 ns/op 0.83
bytes32 Buffer.toString(hex) from Uint8Array 602.00 ns/op 671.00 ns/op 0.90
bytes32 Buffer.toString(hex) + 0x 349.00 ns/op 498.00 ns/op 0.70
Object access 1 prop 0.28000 ns/op 0.30700 ns/op 0.91
Map access 1 prop 0.16200 ns/op 0.19100 ns/op 0.85
Object get x1000 8.4690 ns/op 10.236 ns/op 0.83
Map get x1000 1.0490 ns/op 1.0290 ns/op 1.02
Object set x1000 98.548 ns/op 100.07 ns/op 0.98
Map set x1000 71.855 ns/op 65.569 ns/op 1.10
Return object 10000 times 0.33580 ns/op 0.33640 ns/op 1.00
Throw Error 10000 times 4.9033 us/op 4.7531 us/op 1.03
fastMsgIdFn sha256 / 200 bytes 4.4400 us/op 4.1380 us/op 1.07
fastMsgIdFn h32 xxhash / 200 bytes 431.00 ns/op 475.00 ns/op 0.91
fastMsgIdFn h64 xxhash / 200 bytes 504.00 ns/op 626.00 ns/op 0.81
fastMsgIdFn sha256 / 1000 bytes 13.835 us/op 14.096 us/op 0.98
fastMsgIdFn h32 xxhash / 1000 bytes 711.00 ns/op 603.00 ns/op 1.18
fastMsgIdFn h64 xxhash / 1000 bytes 783.00 ns/op 659.00 ns/op 1.19
fastMsgIdFn sha256 / 10000 bytes 136.07 us/op 114.61 us/op 1.19
fastMsgIdFn h32 xxhash / 10000 bytes 2.6690 us/op 2.2770 us/op 1.17
fastMsgIdFn h64 xxhash / 10000 bytes 1.7940 us/op 1.5460 us/op 1.16
send data - 1000 256B messages 30.764 ms/op 29.926 ms/op 1.03
send data - 1000 512B messages 38.690 ms/op 46.719 ms/op 0.83
send data - 1000 1024B messages 52.536 ms/op 46.002 ms/op 1.14
send data - 1000 1200B messages 47.906 ms/op 48.539 ms/op 0.99
send data - 1000 2048B messages 63.041 ms/op 73.687 ms/op 0.86
send data - 1000 4096B messages 75.966 ms/op 63.367 ms/op 1.20
send data - 1000 16384B messages 197.98 ms/op 190.91 ms/op 1.04
send data - 1000 65536B messages 741.25 ms/op 754.39 ms/op 0.98
enrSubnets - fastDeserialize 64 bits 2.4780 us/op 2.8450 us/op 0.87
enrSubnets - ssz BitVector 64 bits 749.00 ns/op 688.00 ns/op 1.09
enrSubnets - fastDeserialize 4 bits 311.00 ns/op 288.00 ns/op 1.08
enrSubnets - ssz BitVector 4 bits 675.00 ns/op 660.00 ns/op 1.02
prioritizePeers score -10:0 att 32-0.1 sync 2-0 146.40 us/op 155.45 us/op 0.94
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 178.38 us/op 209.03 us/op 0.85
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 222.74 us/op 229.84 us/op 0.97
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 424.02 us/op 385.87 us/op 1.10
prioritizePeers score 0:0 att 64-1 sync 4-1 476.57 us/op 481.07 us/op 0.99
array of 16000 items push then shift 2.0436 us/op 1.8940 us/op 1.08
LinkedList of 16000 items push then shift 11.862 ns/op 12.285 ns/op 0.97
array of 16000 items push then pop 155.53 ns/op 134.41 ns/op 1.16
LinkedList of 16000 items push then pop 10.741 ns/op 10.075 ns/op 1.07
array of 24000 items push then shift 4.0351 us/op 3.1156 us/op 1.30
LinkedList of 24000 items push then shift 14.879 ns/op 11.180 ns/op 1.33
array of 24000 items push then pop 211.92 ns/op 176.82 ns/op 1.20
LinkedList of 24000 items push then pop 10.590 ns/op 9.6230 ns/op 1.10
intersect bitArray bitLen 8 7.5440 ns/op 7.3860 ns/op 1.02
intersect array and set length 8 103.61 ns/op 89.607 ns/op 1.16
intersect bitArray bitLen 128 40.649 ns/op 37.425 ns/op 1.09
intersect array and set length 128 1.2756 us/op 1.1631 us/op 1.10
bitArray.getTrueBitIndexes() bitLen 128 2.0870 us/op 1.8840 us/op 1.11
bitArray.getTrueBitIndexes() bitLen 248 3.6240 us/op 3.3470 us/op 1.08
bitArray.getTrueBitIndexes() bitLen 512 7.5570 us/op 6.8030 us/op 1.11
Buffer.concat 32 items 1.2400 us/op 1.1570 us/op 1.07
Uint8Array.set 32 items 2.7630 us/op 2.7160 us/op 1.02
Set add up to 64 items then delete first 6.2212 us/op 5.3898 us/op 1.15
OrderedSet add up to 64 items then delete first 7.5590 us/op 7.1415 us/op 1.06
Set add up to 64 items then delete last 6.1503 us/op 5.7749 us/op 1.07
OrderedSet add up to 64 items then delete last 7.5772 us/op 7.4197 us/op 1.02
Set add up to 64 items then delete middle 6.2940 us/op 5.6392 us/op 1.12
OrderedSet add up to 64 items then delete middle 9.4259 us/op 9.5396 us/op 0.99
Set add up to 128 items then delete first 11.792 us/op 12.176 us/op 0.97
OrderedSet add up to 128 items then delete first 16.288 us/op 17.092 us/op 0.95
Set add up to 128 items then delete last 12.680 us/op 11.598 us/op 1.09
OrderedSet add up to 128 items then delete last 17.067 us/op 15.382 us/op 1.11
Set add up to 128 items then delete middle 12.551 us/op 11.666 us/op 1.08
OrderedSet add up to 128 items then delete middle 22.053 us/op 20.848 us/op 1.06
Set add up to 256 items then delete first 26.752 us/op 23.618 us/op 1.13
OrderedSet add up to 256 items then delete first 35.775 us/op 32.627 us/op 1.10
Set add up to 256 items then delete last 23.470 us/op 22.484 us/op 1.04
OrderedSet add up to 256 items then delete last 32.406 us/op 29.884 us/op 1.08
Set add up to 256 items then delete middle 23.305 us/op 23.560 us/op 0.99
OrderedSet add up to 256 items then delete middle 55.190 us/op 55.496 us/op 0.99
transfer serialized Status (84 B) 2.3020 us/op 1.9910 us/op 1.16
copy serialized Status (84 B) 1.7450 us/op 1.5110 us/op 1.15
transfer serialized SignedVoluntaryExit (112 B) 2.7300 us/op 2.1220 us/op 1.29
copy serialized SignedVoluntaryExit (112 B) 1.8020 us/op 1.5740 us/op 1.14
transfer serialized ProposerSlashing (416 B) 3.4760 us/op 3.0630 us/op 1.13
copy serialized ProposerSlashing (416 B) 2.8920 us/op 2.9460 us/op 0.98
transfer serialized Attestation (485 B) 3.1490 us/op 2.8190 us/op 1.12
copy serialized Attestation (485 B) 3.7970 us/op 2.3180 us/op 1.64
transfer serialized AttesterSlashing (33232 B) 4.5540 us/op 2.3020 us/op 1.98
copy serialized AttesterSlashing (33232 B) 12.255 us/op 8.9420 us/op 1.37
transfer serialized Small SignedBeaconBlock (128000 B) 4.7640 us/op 2.7760 us/op 1.72
copy serialized Small SignedBeaconBlock (128000 B) 35.492 us/op 29.048 us/op 1.22
transfer serialized Avg SignedBeaconBlock (200000 B) 5.3510 us/op 3.3090 us/op 1.62
copy serialized Avg SignedBeaconBlock (200000 B) 48.293 us/op 45.187 us/op 1.07
transfer serialized BlobsSidecar (524380 B) 5.8170 us/op 3.5620 us/op 1.63
copy serialized BlobsSidecar (524380 B) 170.09 us/op 197.35 us/op 0.86
transfer serialized Big SignedBeaconBlock (1000000 B) 5.3260 us/op 4.0420 us/op 1.32
copy serialized Big SignedBeaconBlock (1000000 B) 286.46 us/op 391.87 us/op 0.73
pass gossip attestations to forkchoice per slot 6.4303 ms/op 4.3567 ms/op 1.48
forkChoice updateHead vc 100000 bc 64 eq 0 1.2709 ms/op 705.73 us/op 1.80
forkChoice updateHead vc 600000 bc 64 eq 0 6.2912 ms/op 6.7301 ms/op 0.93
forkChoice updateHead vc 1000000 bc 64 eq 0 8.4878 ms/op 8.1654 ms/op 1.04
forkChoice updateHead vc 600000 bc 320 eq 0 5.7758 ms/op 4.4903 ms/op 1.29
forkChoice updateHead vc 600000 bc 1200 eq 0 6.1581 ms/op 4.6307 ms/op 1.33
forkChoice updateHead vc 600000 bc 7200 eq 0 7.9807 ms/op 5.5593 ms/op 1.44
forkChoice updateHead vc 600000 bc 64 eq 1000 15.840 ms/op 11.578 ms/op 1.37
forkChoice updateHead vc 600000 bc 64 eq 10000 18.037 ms/op 13.024 ms/op 1.38
forkChoice updateHead vc 600000 bc 64 eq 300000 61.968 ms/op 20.816 ms/op 2.98
computeDeltas 500000 validators 300 proto nodes 9.1551 ms/op 7.3024 ms/op 1.25
computeDeltas 500000 validators 1200 proto nodes 9.1717 ms/op 7.1152 ms/op 1.29
computeDeltas 500000 validators 7200 proto nodes 9.0075 ms/op 6.8017 ms/op 1.32
computeDeltas 750000 validators 300 proto nodes 12.569 ms/op 10.460 ms/op 1.20
computeDeltas 750000 validators 1200 proto nodes 13.157 ms/op 10.519 ms/op 1.25
computeDeltas 750000 validators 7200 proto nodes 12.977 ms/op 10.596 ms/op 1.22
computeDeltas 1400000 validators 300 proto nodes 24.715 ms/op 20.052 ms/op 1.23
computeDeltas 1400000 validators 1200 proto nodes 28.083 ms/op 21.162 ms/op 1.33
computeDeltas 1400000 validators 7200 proto nodes 26.914 ms/op 20.947 ms/op 1.28
computeDeltas 2100000 validators 300 proto nodes 37.270 ms/op 31.098 ms/op 1.20
computeDeltas 2100000 validators 1200 proto nodes 36.644 ms/op 34.531 ms/op 1.06
computeDeltas 2100000 validators 7200 proto nodes 34.625 ms/op 31.529 ms/op 1.10
altair processAttestation - 250000 vs - 7PWei normalcase 4.0386 ms/op 2.5935 ms/op 1.56
altair processAttestation - 250000 vs - 7PWei worstcase 5.2060 ms/op 3.9495 ms/op 1.32
altair processAttestation - setStatus - 1/6 committees join 168.22 us/op 193.19 us/op 0.87
altair processAttestation - setStatus - 1/3 committees join 330.23 us/op 373.80 us/op 0.88
altair processAttestation - setStatus - 1/2 committees join 423.29 us/op 534.05 us/op 0.79
altair processAttestation - setStatus - 2/3 committees join 508.85 us/op 654.99 us/op 0.78
altair processAttestation - setStatus - 4/5 committees join 788.78 us/op 858.92 us/op 0.92
altair processAttestation - setStatus - 100% committees join 898.89 us/op 1.0021 ms/op 0.90
altair processBlock - 250000 vs - 7PWei normalcase 11.239 ms/op 10.122 ms/op 1.11
altair processBlock - 250000 vs - 7PWei normalcase hashState 37.662 ms/op 35.514 ms/op 1.06
altair processBlock - 250000 vs - 7PWei worstcase 51.083 ms/op 45.743 ms/op 1.12
altair processBlock - 250000 vs - 7PWei worstcase hashState 107.16 ms/op 102.27 ms/op 1.05
phase0 processBlock - 250000 vs - 7PWei normalcase 3.5761 ms/op 2.9177 ms/op 1.23
phase0 processBlock - 250000 vs - 7PWei worstcase 35.752 ms/op 31.999 ms/op 1.12
altair processEth1Data - 250000 vs - 7PWei normalcase 696.90 us/op 584.65 us/op 1.19
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 16.919 us/op 13.991 us/op 1.21
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 54.570 us/op 75.645 us/op 0.72
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 16.587 us/op 35.764 us/op 0.46
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 15.614 us/op 12.771 us/op 1.22
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 162.00 us/op 191.33 us/op 0.85
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.4862 ms/op 1.4062 ms/op 1.06
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.9862 ms/op 1.7804 ms/op 1.12
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.9588 ms/op 2.0526 ms/op 0.95
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 4.3751 ms/op 4.4584 ms/op 0.98
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 3.2544 ms/op 2.7254 ms/op 1.19
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 6.7118 ms/op 5.6375 ms/op 1.19
Tree 40 250000 create 515.47 ms/op 366.95 ms/op 1.40
Tree 40 250000 get(125000) 248.89 ns/op 218.71 ns/op 1.14
Tree 40 250000 set(125000) 1.6689 us/op 1.1221 us/op 1.49
Tree 40 250000 toArray() 26.825 ms/op 23.271 ms/op 1.15
Tree 40 250000 iterate all - toArray() + loop 27.739 ms/op 23.684 ms/op 1.17
Tree 40 250000 iterate all - get(i) 89.452 ms/op 73.424 ms/op 1.22
MutableVector 250000 create 17.227 ms/op 14.794 ms/op 1.16
MutableVector 250000 get(125000) 8.5140 ns/op 7.0400 ns/op 1.21
MutableVector 250000 set(125000) 431.90 ns/op 296.40 ns/op 1.46
MutableVector 250000 toArray() 4.3317 ms/op 3.8275 ms/op 1.13
MutableVector 250000 iterate all - toArray() + loop 4.2639 ms/op 3.7158 ms/op 1.15
MutableVector 250000 iterate all - get(i) 1.7992 ms/op 1.5600 ms/op 1.15
Array 250000 create 4.1101 ms/op 3.7376 ms/op 1.10
Array 250000 clone - spread 1.8638 ms/op 1.4291 ms/op 1.30
Array 250000 get(125000) 1.6230 ns/op 1.1660 ns/op 1.39
Array 250000 set(125000) 6.3850 ns/op 4.3190 ns/op 1.48
Array 250000 iterate all - loop 200.41 us/op 175.28 us/op 1.14
effectiveBalanceIncrements clone Uint8Array 300000 87.751 us/op 46.337 us/op 1.89
effectiveBalanceIncrements clone MutableVector 300000 1.9310 us/op 454.00 ns/op 4.25
effectiveBalanceIncrements rw all Uint8Array 300000 285.21 us/op 210.25 us/op 1.36
effectiveBalanceIncrements rw all MutableVector 300000 237.65 ms/op 115.30 ms/op 2.06
phase0 afterProcessEpoch - 250000 vs - 7PWei 163.76 ms/op 119.06 ms/op 1.38
phase0 beforeProcessEpoch - 250000 vs - 7PWei 82.526 ms/op 59.314 ms/op 1.39
altair processEpoch - mainnet_e81889 756.33 ms/op 554.34 ms/op 1.36
mainnet_e81889 - altair beforeProcessEpoch 120.51 ms/op 102.27 ms/op 1.18
mainnet_e81889 - altair processJustificationAndFinalization 37.520 us/op 21.833 us/op 1.72
mainnet_e81889 - altair processInactivityUpdates 12.710 ms/op 6.1338 ms/op 2.07
mainnet_e81889 - altair processRewardsAndPenalties 106.86 ms/op 69.568 ms/op 1.54
mainnet_e81889 - altair processRegistryUpdates 9.1030 us/op 3.2060 us/op 2.84
mainnet_e81889 - altair processSlashings 1.3510 us/op 670.00 ns/op 2.02
mainnet_e81889 - altair processEth1DataReset 2.1870 us/op 661.00 ns/op 3.31
mainnet_e81889 - altair processEffectiveBalanceUpdates 3.0216 ms/op 1.7796 ms/op 1.70
mainnet_e81889 - altair processSlashingsReset 11.724 us/op 4.0230 us/op 2.91
mainnet_e81889 - altair processRandaoMixesReset 14.017 us/op 6.5930 us/op 2.13
mainnet_e81889 - altair processHistoricalRootsUpdate 1.8380 us/op 1.1530 us/op 1.59
mainnet_e81889 - altair processParticipationFlagUpdates 5.3160 us/op 1.9060 us/op 2.79
mainnet_e81889 - altair processSyncCommitteeUpdates 1.4270 us/op 1.8280 us/op 0.78
mainnet_e81889 - altair afterProcessEpoch 171.54 ms/op 127.66 ms/op 1.34
capella processEpoch - mainnet_e217614 3.2659 s/op 2.7998 s/op 1.17
mainnet_e217614 - capella beforeProcessEpoch 668.43 ms/op 554.21 ms/op 1.21
mainnet_e217614 - capella processJustificationAndFinalization 31.182 us/op 18.010 us/op 1.73
mainnet_e217614 - capella processInactivityUpdates 31.076 ms/op 23.638 ms/op 1.31
mainnet_e217614 - capella processRewardsAndPenalties 485.19 ms/op 471.74 ms/op 1.03
mainnet_e217614 - capella processRegistryUpdates 25.343 us/op 28.836 us/op 0.88
mainnet_e217614 - capella processSlashings 558.00 ns/op 809.00 ns/op 0.69
mainnet_e217614 - capella processEth1DataReset 534.00 ns/op 682.00 ns/op 0.78
mainnet_e217614 - capella processEffectiveBalanceUpdates 5.2391 ms/op 5.9825 ms/op 0.88
mainnet_e217614 - capella processSlashingsReset 3.7030 us/op 4.0040 us/op 0.92
mainnet_e217614 - capella processRandaoMixesReset 4.8160 us/op 6.3290 us/op 0.76
mainnet_e217614 - capella processHistoricalRootsUpdate 762.00 ns/op 713.00 ns/op 1.07
mainnet_e217614 - capella processParticipationFlagUpdates 1.6220 us/op 2.5520 us/op 0.64
mainnet_e217614 - capella afterProcessEpoch 332.42 ms/op 322.83 ms/op 1.03
phase0 processEpoch - mainnet_e58758 518.31 ms/op 474.03 ms/op 1.09
mainnet_e58758 - phase0 beforeProcessEpoch 180.89 ms/op 160.26 ms/op 1.13
mainnet_e58758 - phase0 processJustificationAndFinalization 25.541 us/op 21.771 us/op 1.17
mainnet_e58758 - phase0 processRewardsAndPenalties 69.837 ms/op 57.036 ms/op 1.22
mainnet_e58758 - phase0 processRegistryUpdates 17.877 us/op 14.251 us/op 1.25
mainnet_e58758 - phase0 processSlashings 1.1770 us/op 555.00 ns/op 2.12
mainnet_e58758 - phase0 processEth1DataReset 872.00 ns/op 699.00 ns/op 1.25
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.4580 ms/op 1.6091 ms/op 0.91
mainnet_e58758 - phase0 processSlashingsReset 5.7730 us/op 3.3130 us/op 1.74
mainnet_e58758 - phase0 processRandaoMixesReset 10.678 us/op 5.4720 us/op 1.95
mainnet_e58758 - phase0 processHistoricalRootsUpdate 1.4670 us/op 436.00 ns/op 3.36
mainnet_e58758 - phase0 processParticipationRecordUpdates 11.369 us/op 4.0820 us/op 2.79
mainnet_e58758 - phase0 afterProcessEpoch 121.46 ms/op 97.623 ms/op 1.24
phase0 processEffectiveBalanceUpdates - 250000 normalcase 2.1366 ms/op 1.4386 ms/op 1.49
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.8769 ms/op 1.9660 ms/op 0.95
altair processInactivityUpdates - 250000 normalcase 33.917 ms/op 30.365 ms/op 1.12
altair processInactivityUpdates - 250000 worstcase 32.226 ms/op 25.117 ms/op 1.28
phase0 processRegistryUpdates - 250000 normalcase 21.108 us/op 11.459 us/op 1.84
phase0 processRegistryUpdates - 250000 badcase_full_deposits 510.60 us/op 757.55 us/op 0.67
phase0 processRegistryUpdates - 250000 worstcase 0.5 205.20 ms/op 131.85 ms/op 1.56
altair processRewardsAndPenalties - 250000 normalcase 68.449 ms/op 62.347 ms/op 1.10
altair processRewardsAndPenalties - 250000 worstcase 47.106 ms/op 55.388 ms/op 0.85
phase0 getAttestationDeltas - 250000 normalcase 12.374 ms/op 9.8583 ms/op 1.26
phase0 getAttestationDeltas - 250000 worstcase 13.978 ms/op 11.671 ms/op 1.20
phase0 processSlashings - 250000 worstcase 123.83 us/op 120.06 us/op 1.03
altair processSyncCommitteeUpdates - 250000 203.19 ms/op 169.18 ms/op 1.20
BeaconState.hashTreeRoot - No change 1.0070 us/op 461.00 ns/op 2.18
BeaconState.hashTreeRoot - 1 full validator 187.59 us/op 126.71 us/op 1.48
BeaconState.hashTreeRoot - 32 full validator 1.7747 ms/op 1.3308 ms/op 1.33
BeaconState.hashTreeRoot - 512 full validator 23.286 ms/op 21.931 ms/op 1.06
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 238.77 us/op 219.69 us/op 1.09
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 4.4142 ms/op 2.1282 ms/op 2.07
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 44.144 ms/op 28.349 ms/op 1.56
BeaconState.hashTreeRoot - 1 balances 187.29 us/op 142.97 us/op 1.31
BeaconState.hashTreeRoot - 32 balances 1.6860 ms/op 1.4945 ms/op 1.13
BeaconState.hashTreeRoot - 512 balances 17.268 ms/op 14.408 ms/op 1.20
BeaconState.hashTreeRoot - 250000 balances 283.65 ms/op 212.45 ms/op 1.34
aggregationBits - 2048 els - zipIndexesInBitList 46.941 us/op 20.081 us/op 2.34
byteArrayEquals 32 96.682 ns/op 81.011 ns/op 1.19
Buffer.compare 32 93.157 ns/op 57.855 ns/op 1.61
byteArrayEquals 1024 2.6735 us/op 2.3551 us/op 1.14
Buffer.compare 1024 87.494 ns/op 80.450 ns/op 1.09
byteArrayEquals 16384 48.441 us/op 37.273 us/op 1.30
Buffer.compare 16384 325.80 ns/op 281.78 ns/op 1.16
byteArrayEquals 123687377 298.90 ms/op 266.39 ms/op 1.12
Buffer.compare 123687377 11.030 ms/op 8.0518 ms/op 1.37
byteArrayEquals 32 - diff last byte 92.566 ns/op 84.478 ns/op 1.10
Buffer.compare 32 - diff last byte 61.898 ns/op 60.722 ns/op 1.02
byteArrayEquals 1024 - diff last byte 2.3080 us/op 2.1198 us/op 1.09
Buffer.compare 1024 - diff last byte 82.966 ns/op 75.149 ns/op 1.10
byteArrayEquals 16384 - diff last byte 36.711 us/op 34.258 us/op 1.07
Buffer.compare 16384 - diff last byte 309.45 ns/op 283.17 ns/op 1.09
byteArrayEquals 123687377 - diff last byte 287.58 ms/op 256.30 ms/op 1.12
Buffer.compare 123687377 - diff last byte 13.130 ms/op 6.6865 ms/op 1.96
byteArrayEquals 32 - random bytes 13.770 ns/op 5.4440 ns/op 2.53
Buffer.compare 32 - random bytes 83.721 ns/op 63.056 ns/op 1.33
byteArrayEquals 1024 - random bytes 7.9880 ns/op 5.4050 ns/op 1.48
Buffer.compare 1024 - random bytes 76.476 ns/op 62.213 ns/op 1.23
byteArrayEquals 16384 - random bytes 8.2890 ns/op 5.3970 ns/op 1.54
Buffer.compare 16384 - random bytes 78.034 ns/op 61.795 ns/op 1.26
byteArrayEquals 123687377 - random bytes 17.260 ns/op 8.9500 ns/op 1.93
Buffer.compare 123687377 - random bytes 93.660 ns/op 66.270 ns/op 1.41
regular array get 100000 times 61.097 us/op 45.555 us/op 1.34
wrappedArray get 100000 times 56.803 us/op 45.738 us/op 1.24
arrayWithProxy get 100000 times 19.017 ms/op 14.470 ms/op 1.31
ssz.Root.equals 66.742 ns/op 55.826 ns/op 1.20
byteArrayEquals 62.993 ns/op 54.400 ns/op 1.16
Buffer.compare 15.385 ns/op 11.497 ns/op 1.34
shuffle list - 16384 els 8.3173 ms/op 7.0133 ms/op 1.19
shuffle list - 250000 els 124.71 ms/op 102.73 ms/op 1.21
processSlot - 1 slots 27.434 us/op 15.688 us/op 1.75
processSlot - 32 slots 5.8523 ms/op 3.0100 ms/op 1.94
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 80.931 ms/op 59.020 ms/op 1.37
getCommitteeAssignments - req 1 vs - 250000 vc 2.9437 ms/op 2.5861 ms/op 1.14
getCommitteeAssignments - req 100 vs - 250000 vc 4.3115 ms/op 3.7728 ms/op 1.14
getCommitteeAssignments - req 1000 vs - 250000 vc 4.7694 ms/op 4.1600 ms/op 1.15
findModifiedValidators - 10000 modified validators 625.03 ms/op 556.18 ms/op 1.12
findModifiedValidators - 1000 modified validators 501.30 ms/op 439.29 ms/op 1.14
findModifiedValidators - 100 modified validators 479.20 ms/op 437.62 ms/op 1.10
findModifiedValidators - 10 modified validators 552.06 ms/op 431.84 ms/op 1.28
findModifiedValidators - 1 modified validators 542.33 ms/op 403.82 ms/op 1.34
findModifiedValidators - no difference 589.45 ms/op 417.90 ms/op 1.41
compare ViewDUs 5.8368 s/op 4.9680 s/op 1.17
compare each validator Uint8Array 1.7453 s/op 1.7215 s/op 1.01
compare ViewDU to Uint8Array 1.2506 s/op 1.3202 s/op 0.95
migrate state 1000000 validators, 24 modified, 0 new 792.28 ms/op 836.06 ms/op 0.95
migrate state 1000000 validators, 1700 modified, 1000 new 1.0030 s/op 1.2018 s/op 0.83
migrate state 1000000 validators, 3400 modified, 2000 new 1.2976 s/op 1.4794 s/op 0.88
migrate state 1500000 validators, 24 modified, 0 new 1.1281 s/op 887.66 ms/op 1.27
migrate state 1500000 validators, 1700 modified, 1000 new 1.6835 s/op 1.2396 s/op 1.36
migrate state 1500000 validators, 3400 modified, 2000 new 2.5059 s/op 1.4686 s/op 1.71
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 7.7300 ns/op 4.9800 ns/op 1.55
state getBlockRootAtSlot - 250000 vs - 7PWei 1.2153 us/op 663.60 ns/op 1.83
computeProposers - vc 250000 19.463 ms/op 9.7328 ms/op 2.00
computeEpochShuffling - vc 250000 148.77 ms/op 110.61 ms/op 1.34
getNextSyncCommittee - vc 250000 241.02 ms/op 177.89 ms/op 1.35
computeSigningRoot for AttestationData 48.526 us/op 34.397 us/op 1.41
hash AttestationData serialized data then Buffer.toString(base64) 3.5551 us/op 2.4392 us/op 1.46
toHexString serialized data 2.0199 us/op 1.1957 us/op 1.69
Buffer.toString(base64) 387.14 ns/op 247.77 ns/op 1.56

by benchmarkbot/action

@wemeetagain
Copy link
Member

🎉 This PR is included in v1.15.0 🎉

jeluard pushed a commit to jeluard/lodestar that referenced this pull request Jan 30, 2024
* feat: increase default memory limit to 8GB

* Revise comments
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.

Consider increasing default value for --max-old-space-size
3 participants