Syncing an Ethereum node is largely reliant on IOPS, I/O Per Second. Budget SSDs will struggle to an extent, and some won't be able to sync at all.
This document aims to snapshot some known good and known bad models.
For size, 4TB or 2TB come recommended as of mid 2024. A 2TB drive should last an Ethereum full node until late 2025 or thereabouts, with crystal ball uncertainty.
High-level, QLC and DRAMless are far slower than "mainstream" SSDs. QLC has lower endurance as well. Any savings will be gone when the drive fails early and needs to be replaced.
Other than a slow SSD model, these are things that can slow IOPS down:
- Heat. Check with
smartctl -x
; the SSD should be below 50C so it does not throttle. - TRIM not being allowed. This can happen with some hardware RAID controllers, as well as on macOS with non-Apple SSDs
- ZFS
- RAID5/6 - write amplification is no joke
- On SATA, the controller in UEFI/BIOS set to anything other than AHCI. Set it to AHCI for good performance.
If you haven't already, do turn off atime on your DB volume, it'll increase SSD lifetime and speed things up a little bit.
Some users have reported that NUC instability with certain drives can be cured by adding nvme_core.default_ps_max_latency_us=0
to their GRUB_CMDLINE_LINUX
kernel parameters via sudo nano /etc/default/grub
and sudo update-grub
. This keeps the drive from entering powersave states by itself.
The drive lists are ordered by interface and alphabetically by vendor name, not by preference. The lists are not exhaustive at all. @mwpastore linked a filterable spreadsheet in comments that has a far greater variety of drives and their characteristics. Filter it by DRAM yes, NAND Type TLC, Form Factor M.2, and desired capacity.
"Mainstream" and "Performance" drive models that can sync mainnet execution layer clients in a reasonable amount of time. Use M.2 NVMe if your machine supports it.
Note that in some cases older "Performance" PCIe 4 drives can be bought at a lower price than a PCIe 3 "Mainstream" drive - shop around.
- Often on sale: Samsung 970 EVO Plus, SK Hynix P31 Gold, Teamgroup MP34
- Higher endurance (TBW) than most: Seagate Firecuda 530, WD Red SN700
- Lowest power draw: SK Hynix P31 Gold - great choice for Rock5 B and other low-power devices
- 4TB available: Noted beside each drive, not an exhaustive list
We've started crowd-sourcing some IOPS numbers. If you want to join the fun, run fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=test --bs=4k --iodepth=64 --size=150G --readwrite=randrw --rwmixread=75
and give us the read and write IOPS. Don't forget to rm test
after.
M.2 NVMe "Mainstream" - TLC, DRAM, PCIe 3
- Any data center/enterprise NVMe SSD
- AData XPG Gammix S11/SX8200 Pro. Several hardware revisions. It's slower than some QLC drives. 68k/22k r/w IOPS
- AData XPG Gammix S50 Lite
- HP EX950
- Mushkin Pilot-E
- Samsung 970 EVO Plus 2TB, pre-rework (firmware 2B2QEXM7). 140k/46k r/w IOPS
- Samsung 970 EVO Plus 2TB, post-rework (firmware 3B2QEXM7 or 4B2QEXM7). In testing this syncs just as quickly as the pre-rework drive
- SK Hynix P31 Gold
- Team MP34, 2TB/4TB between 94k/31k and 118k/39k r/w IOPS
- WD Black SN750 (but not SN750 SE)
- WD Red SN700, 2TB/4TB 141k/47k r/w IOPS
M.2 NVMe "Performance" - TLC, DRAM, PCIe 4 or 5
- Any data center/enterprise NVMe SSD
- ADATA XPG Gammix S70, 2TB/4TB, 272k/91k r/w IOPS
- Corsair Force MP600 Pro and variants (but not "MP600 Core XT"), 2TB/4TB/8TB
- Crucial P5 Plus
- Kingston KC2000
- Kingston KC3000, 2TB/4TB, 377k/126k r/w IOPS
- Kingston Fury Renegade, 2TB/4TB
- Mushkin Redline Vortex (but not LX), 2TB/4TB
- Sabrent Rocket 4 Plus, 2TB/4TB/8TB
- Sabrent Rocket 4 Plus-G, 2TB/4TB
- Samsung 980 Pro (not 980) - a firmware update to 5B2QGXA7 is necessary to keep them from dying, if they are firmware 3B2QGXA7. Samsung's boot Linux is a bit broken, you may want to flash from your own Linux.
- Samsung 990 Pro, 124k/41k r/w IOPS 2TB/4TB - there are reports of 990 Pro rapidly losing health. A firmware update to 1B2QJXD7 is meant to stop the rapid degradation, but won't reverse any that happened on earlier firmware.
- Seagate Firecuda 530, 2TB/4TB 218k/73k r/w IOPS
- SK Hynix P41 Platinum / Solidigm P44 Pro, 99k/33k r/w IOPS
- Teamgroup MP44, 2TB/4TB/8TB 105k/35k r/w IOPS - caution that this is DRAMless and uses a Host Memory Buffer (HMB), yet appears to perform fine.
- WD Black SN850
- WD Black SN850X, 2TB/4TB 101k/33k r/w IOPS
- Any baremetal/dedicated server service
- AWS i3en.2xlarge
- AWS gp3 w/ >=10k IOPS provisioned and an m7i/a.xlarge
These "Budget" drive models are reportedly too slow to sync (all) mainnet execution layer clients.
- AData S40G/SX8100 4TB, QLC - the 2TB model is TLC and should be fine; 4TB is reportedly too slow
- Crucial P1, QLC - users report it can't sync Nethermind
- Crucial P2 and P3 (Plus), QLC and DRAMless - users report it can't sync Nethermind, 27k/9k r/w IOPS
- Kingston NV1 - probably QLC and DRAMless and thus too slow on 2TB, but could be "anything" as Kingston do not guarantee specific components.
- Kingston NV2 - like NV1 no guaranteed components
- WD Green SN350, QLC and DRAMless
- Anything both QLC and DRAMless will likely not be able to sync at all or not be able to consistently keep up with "chain head"
- Crucial BX500 SATA, HP S650 SATA, probably most SATA budget drives
- Samsung 980, DRAMless - unsure, this may belong in "Ugly". If you have one and can say for sure, please come to ethstaker Discord.
- Samsung T7 USB, even with current firmware
"Budget" drive models that reportedly can sync mainnet execution layer clients, if slowly.
Note that QLC drives usually have a markedly lower TBW than TLC, and will fail earlier.
- Corsair MP400, QLC
- Inland Professional 3D NAND, QLC
- Intel 660p, QLC. It's faster than some "mainstream" drives. 98k/33k r/w IOPS
- Seagata Barracuda Q5, QLC
- WD Black SN770, DRAMless
- Samsung 870 QVO SATA, QLC
2.5" SATA "Mainstream" - TLC, DRAM
- These have been moved to "ugly" because there are user reports that only Nimbus/Geth will now sync on SATA, and even that takes 3 days. It looks like after Dencun, NVMe is squarely the way to go.
- Any data center/enterprise SATA SSD
- Crucial MX500 SATA, 46k/15k r/w IOPS
- Samsung 860 EVO SATA, 55k/18k r/w IOPS
- Samsung 870 EVO SATA, 63k/20k r/w IOPS
- WD Blue 3D NAND SATA
- Contabo SSD - reportedly able to sync Geth 1.13.0 and Nethermind, if slowly
- Netcup VPS Servers - reportedly able to sync Geth 1.13.0 and Nethermind, if slowly
- Contabo NVMe - fast enough but not enough space. 800 GiB is not sufficient.
- Netcup RS Servers. Reportedly fast enough to sync Nethermind or Geth; still no speed demon.
I just hit a new personal best, syncing a mainnet full node (not archive) from scratch using Erigon and Lighthouse in roughly 48 hours after downloading snapshots.
--externalcl --prune=htcr
--sync-historic-states
I think the high IPC of these Raptor Cove P-cores helped a ton, and the 905p was able to keep up with the sustained, high, random read IOPS at low queue depths (up to 11K) toward the end of the initial sync. It was still hitting 36–42 blk/s at block 159* (vs ~20 at the same point on my 5950X and SK hynix P41 2TB). The 905p also seems to be able to transition more quickly between the batch assembly and commit phases—although not much moreso than a high-end Gen4 NAND flash drive like I expected.
What I'll do now is move Erigon's main LV to the 970 EVO+ and repeat the exact same sync. That will help me isolate how much of the speedup is from the Optane drive vs. the rest of the hardware. Specifically, per your notes on CPU performance, I'd like to know the difference between syncing with Raptor Cove vs Zen 3 P-cores.
UPDATE: After ~24 hours I'm at block 127* and already dropping below 40 blk/s. So far at least it seems like the 905p did speed things up measurably on otherwise the same hardware, but it remains to be seen how significantly it affected total sync time.
UPDATE 2: After ~48 hours I'm at block 153* and already dropping below 30 blk/s. The system appears to be I/O-bound per PSI; sustained random read IOPS at low queue depths seems to be peaking around 3.7K on the EVO+, or about a third of what I was seeing on the 905p at roughly the same point in the sync process.
UPDATE 3: It finished syncing last night/overnight and unfortunately I didn't check it before I went to bed and wasn't able to capture the exact time in my tmux scrollback buffer. Based on estimated block speed I would guess between 6⅓ and 9½ hours after the 48 hour mark, plus an hour or two for the remaining phases.
So in conclusion if you're largely I/O-bound as you get into blocks from 2021 and later then yes you could benefit from a drive that features high random read IOPS at low queue depths. In late 2022 that translates to an 8–12 hour speedup (48 hours vs 56–60 hours) with low-end 3D XPoint vs high-end TLC NAND on Raptor Cove. Whether it makes sense to spend hundreds and potentially thousands of dollars more on storage for such a speedup is highly questionable.
The next test would be to see if I can achieve a similar speedup with a smaller allocation of the 905p configured as a writeback cache. That would open up the possibility of pairing a relatively-cheap e.g. P1600X with some less expensive storage.