q9f / eth2-bench-2020-07

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

✔️ Update: new benchmark available: Multi-client benchmark on Medalla testnet 2020/10/01


Multi-client benchmark on Altona testnet 2020/07/16

Preliminary, high-level ETH2-client benchmarks.

  • Lighthouse
  • Prysm
  • Teku
  • Nimbus

PDF: 2020-07-eth2-bench.pdf

preview

Host systems (4x)

  • Machine: Scaleway GP-BM1-S (bare metal)
  • OS: Ubuntu 20.04 LTS, kernel 5.4.0-40-generic #44-Ubuntu
  • CPU: Intel Xeon E3-1240 v6, 8 cores
  • RAM: 32 GB
  • Disk: 250GB SSD

Lighthouse

Prysm

Teku

Nimbus

Altona testnet

Metrics collected

  • time: Unix time in seconds
    • all: (Ruby) Time.now.to_i
  • db: Database size in bytes
    • Lighthouse: (Shell) du -bs $HOME/.lighthouse/beacon/chain_db/
    • Prysm: (Shell) du -bs $HOME/.eth2/beaconchaindata/
    • Teku: (Shell) du -bs $HOME/.local/share/teku/data/db/
  • mem: Resident memory in bytes
    • Lighthouse: (REST API) /node/health, .pid_mem_resident_set_size
    • Prysm: (Metrics) process_resident_memory_bytes
    • Teku: (Metrics) process_resident_memory_bytes
  • slot: Head slot number in 1
    • Lighthouse: (REST API) /beacon/head, .slot
    • Prysm: (gRPC API) /eth/v1alpha1/beacon/chainhead, .headSlot
    • Teku: (REST API) /beacon/head, .slot
  • bps: Slot sync each second in 1/second (*)
    • all: (Ruby) (h.to_f - prev_h.to_f) / dt
  • peers: Peer count in 1
    • Lighthouse: (REST API) /network/peer_count
    • Prysm: (gRPC API) /eth/v1alpha1/node/peers (counted)
    • Teku: (REST API) /network/peer_count

*) Note, due to different ways of processing incoming badges of blocks, this metric should be recomputed based on an average taken over 60 seconds.

Metrics derived (TBD)

  • Slot sync speed over time (moving average)
  • Database size over sync time
  • Database size over slot count (future projection: 1Y, 5Y)
  • Resident memory usage over sync time
  • Resident memory usage over time augmented with chain finality (external data)

About

License:The Unlicense


Languages

Language:R 48.0%Language:Ruby 46.8%Language:Shell 5.2%