I'm trying to benchmark geth full sync. Here are my current machine specs:

  • Google Cloud
  • 16 vCPU
  • 14 Gb RAM
  • 700 Gb NVMe SSD RAID 0
  • 772k read/258k write IOPS
  • 6+ Gbps network

Launching with following docker-compose.yml

version: '2'
    image: ethereum/client-go
    command: "--syncmode full --nat=extip:x.x.x.x --cache=12288 --nousb"
    restart: always
    stop_grace_period: 4m
    stop_signal: SIGINT
      - 30303:30303
      - /mnt/disks/ssd:/root/.ethereum

So far none of the resources seem to be maxed out:

  • loadavg 3/16
  • network 0.3/750 MB/s
  • iops (r+w) 20/1000000

The machine appears to be mostly idle. How do I find out what is currently limiting sync speed?

Current speed at block 2M is ~300 blocks/sec

  • You can try asking them too at discordapp.com/invite/nthXNEv – eth Mar 29 at 15:42
  • It turned out that it is mostly bottlenecked by a single core CPU performance since transactions are inherently sequential. Some part of it is of course parallelizable, but some some parts are not. – Poma yesterday

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.