How to speed up BSC syncing #4231
Replies: 4 comments 6 replies
-
|
Beta Was this translation helpful? Give feedback.
-
@AskAlexSharov does adding |
Beta Was this translation helpful? Give feedback.
-
I know this is an old issue, but I would have asked: How is your RAID0 configured? What filesystem are you using? It could be a stripe width problem. Or one or both NVMe drives are attached to the PCH (instead of directly to the CPU) and are taking a latency hit and/or bottlenecking at the chipset. Or the NVMe controllers are thermal-throttling. And as Alex said, any kind of software RAID is going to impact latency. Oh, and be sure that your firewall is forwarding the correct ports for both TCP and UDP. I've been struggling with performance issues as well. I'm mired around 20 blk/s for the last ~1M blocks on a Ryzen 5 5600G with 32GB DDR4-3200 CL22 and high-end SATA SSDs. I'm feeling impatient because I had to re-sync from scratch due to some bad pruning options and now my client (i.e. a paying customer) is getting slashed. It's frustrating that the CPU is mostly idle, the disks are mostly idle, the network uplink is mostly idle, etc. and it's moving at a snail's pace. And of course tuning is challenging because every time you interrupt erigon (and/or the CL client) to try something new you risk having to re-process something you've already processed. I'm using LVM2 and XFS. LVM2 can be a little frustrating (e.g. no round-robin reading from mirrors) but it's flexible and it has lots of features and knobs. It uses mdraid, dm-cache, etc. on the backend. XFS can automatically determine sectors sizes, stripe widths, etc. from the underlying block device(s) and in general it's a great filesystem for databases. My primary block device for the erigon database and snapshots is an LVM2 mirror. There's a pair of fast Gen3 NVMe drives in the system as well; they're not big enough to hold the entire database, but I've got a dedicated NVMe-backed LV mounted at mainnet/etl-temp and I've played around with write-back and -through caching. I've tried pinning processes using Ultimately, it seems like the biggest factors are, in order: 1. memory capacity, throughput, and latency (and by extension L3 cache size and performance); 2. disk latency; and 3. lightly-threaded CPU performance. That's the best explanation for what I'm seeing on this particular hardware, which is limited on all three factors. In retrospect I should have spun up an archive node on a more capable system and then played around with forking a full node from it. Once my client is back up and validating I might revisit this. EDIT: Welp, I upgraded the RAM to a much faster XMP CL16 kit, and it didn't help at all. So... 🤷♂️ |
Beta Was this translation helpful? Give feedback.
-
Is there any way to speed up sync with an already synced node with same config on local network ? |
Beta Was this translation helpful? Give feedback.
-
After 2 days of syncing, I only got 10 blocks per second on syncing.
It will take around 2 weeks to fully synced, it's too long.
How to improve the syncing speed for BSC ?
erigon version 2022.99.99-dev-2ec9733c (just got updated this morning)
Here the command :
Here my bare-metal machine :
Here the complete logs :
Beta Was this translation helpful? Give feedback.
All reactions