ECC vs non-ECC memory performance

I’m planning to add a new system to my mini-farm, and the new system supports ECC memory. What would be best for storagenodes? ECC or non-ECC? Is there a performance penalty with ECC memory for nodes?

Good question. I can just add, that all i had was a non-ECC, in 14 nodes, and didn’t notice any RAM problem or data coruption since i first started a v3 node in 2019.
how ever i noticed that ECC are cheaper on 2nd market, and if Your motherborad can handle them, could be a cheap option for a lot of RAM!

I didn’t notice either, but if I can add a safety mesure, why not? I only buy new stuff and ECC vs non-ECC is not a big difference. Is DDR4-2400 laptop format. But I read articles about ECC being x% slower than non-ECC because of the obvious extra step of error verification and correction, and I don’t know if anyone tested both with storagenodes and saw any difference. In general, tests from articles are not so relevant I believe, because they include stress tests, gaming, intensive video editing etc. and they take notice of every ms.

If you do not fuck up bad with channels (single module, different types) difference is usualy 0-3%, and for most aplications irrelevant since the bottleneck is an other device.(CPU-GPU-HDD)

there are slight gains if you hit the sweet spot of the cpu, but in general not worth the extra cost.

ECC are normaly in server useage, thus 2.market widely available. =less price.
But they are bought also in larger quantity.

Standard Mainboards (support is depending on the cpu actualy, since RAM controler is there) mostly do not support ECC RAM anyway. or are at higher cost.
(IMHO, im no expert. building gaming pcs since 1998)

1 Like

If possible, you should use ECC memory for stuff that runs for a long time between reboots. Even perfectly working memory can be corrupted by a cosmic ray hitting the wrong spot on the chip. The chance of that happening increases with uptime and most software (including zfs) assumes that RAM does not corrupt data, which means in case of a bit flip in memory, you can corrupt part of the filesystem.

I do not know about the performance impact. My servers use registered memory, so that definitely adds a delay, but just ECC alone? I don’t know.

1 Like

Hi, and NTFS? i use NTFS, it seems to give no F about non-ECC

Yes, I was thinking to bit flips also, because the machines are all NAS including the new one.
They don’t restart for weeks or months, but only when a DSM update happens. Untill now, I think they don’t have issues with nonECC, but bit flips are hard to detect sometimes.

A bit flip may not do anything - it may happen in unused memory or in a place that is never read before it is overwritten. If it happens in some data area, the data may be corrupted. If it happens in the kernel area, the system may crash or start behaving in a weird way.

Memory corruption is pretty rare, so you may just not have encountered it. Basically, the majority of file systems assume that the memory does not corrupt data. Put some data in a buffer and when you are ready, write that buffer to the disk, no need to compute a checksum for that buffer, nothing is going to happen to it, right?

1 Like