As you've discovered, Bitcoin Core is almost optimally non-performant on shared servers.
- The majority of the work done is on a single core, so measuring the total utilization of the CPU is not a good measure. Database operations are necessarily single threaded, and the majority of the work in the early parts of the chain are entirely consumed by this.
- Bitcoin Core is sensitive to disk speed and latency for some operations, which shared servers are often starved of resources for. EC2 especially is well known for atrocious IO performance in even moderately sized instances, other low cost providers suffer similarly.
Security issues with delegating your private material to a third party not withstanding, the best performance is going to be on a dedicated piece of hardware that is not EC2. Otherwise increasing the amount of dbcache
increases performance to a degree (more than a couple of gigabytes will not help), but this will not resolve CPU resource starvation which is common for shared hosts.
dbcache
, that should speed things up for you – chytrik Feb 5 '20 at 23:13