I had an AWS c6g.2xlarge
instance even set IOPS to 16k doesn't seem to help after one day. I've started a new AWS EC2 i3 instance with 900G ephemeral NVME SSD to verify whether an even higher IOPS can help sync eventually. Will update this thread if I got some progress. Date when the comment was posted: 2021-05-28.
Some raw numbers to check during syncing:
i3.xlarge
instance with ephemeral native NVME, IOPS 70K, iostat MB_wrtn/s was averaged to be about 10M/s
c5.2xlarge
instance with gp3
volume, IOPS 16K, MB_wrtn/s was almost 0
Finally synced in 10 hours!
Based on geth process log, those are some final signals before the node became synced.
eth.syncing
result was frozen, but we can notice that pulledStates was the same as knownStates.I'll share my AWS EC2 based configuration here hope that can help others struggling with building a fully synced node.
I used a i3.xlarge
EC2 instance with 4 CPUs, 32GB Memory, 900G native NVME and 8G gp3 volume for hosting the operating system. The AMI was Amazon Linux 2 AMI (HVM), SSD Volume Type, in 64-bit (x86) arch.
When the instance first started you have to create file system on the 900G blk device by mkfs -t xfs /dev/nvme0n1
(check device id by running lsblk
). And then mkdir /opt/bsc
and mount /dev/nvme0n1 /opt/bsc
According to AWS Pricing Calculator, the cost for a i3.xlarge
instance is about $228.40 per month.
i3.xlarge
instance NVME disk was ephemeral which means the data would be gone if you ever stopped the EC2 instance. Since EC2 SLA is not particularly high (99.99% which translates into 52m 35s downtime per year), it is recommended to run at least 2 of the above instances behind a load balancer to ensure continuous service.
Instance type should be changed to i3.2xlarge
now due to disk space usage is reaching i3.xlarge
instance type's SSD upper limits.