The following are benchmarks via sar
for a normal Prysm node.
A beacon-chain is running, connected remotely to Alchemy with an Infura backup.
A validator is running with 500 validating keys.
Via sar -u 3
Linux 5.11.0-1017-aws (ip-.) 09/09/21 _x86_64_ (4 CPU)
09:26:57 CPU %user %nice %system %iowait %steal %idle
Average: all 63.60 0.00 2.28 0.64 0.00 33.48
Via sar -n DEV 3
Average: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil
Average: lo 18.61 18.61 9.26 9.26 0.00 0.00 0.00 0.00
Average: ens5 5289.61 3459.83 1927.83 1722.38 0.00 0.00 0.00 0.00
Via sar -d 3
Average: DEV tps rkB/s wkB/s dkB/s areq-sz aqu-sz await %util
Average: dev259-0 24.25 3.51 1947.41 0.00 80.46 0.05 2.16 1.52
Via sar -r 3
09:34:39 kbmemfree kbavail kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty
Average: 8260245 12685871 3022840 18.79 27217 4588160 4652009 28.91 276959 7255164 154
Based on these observations:
- We will continue to use a m5.xlarge instance and will look into changing to a m5a.xlarge instance. A t4g instance was considered as it may reduce expenditure but it will cost more if average CPU utilization is above 40-50% which seems to be the case here
- Due to the high CPU usage, we will continue to use 16GB of memory as they are linked and related to the instance type. Otherwise 8GB of memory would suffice.
- A AWS GP2 EBS SSD is sufficient with an IOPS of 500-768 (size dependent)
- Network I/O never seems to exceed 10mbps so the regular uplink on AWS of upto 10Gbps is more than sufficient