ECC RAM – Ease of Mind in Your Server Builds
As most of you know that in our previous article, we discussed the storage type that provides best value and reliability when building a server. But what about RAM? What to choose? ECC, Registered ECC or Non-ECC?
A Server by nature handles a lot of high-value data. It also runs numerous client-side applications and must not cause lag to the network. Here comes the big question – Is it better to use run-of-the-mill, eight chip RAM that runs at higher frequencies, or a nine-chip ECC memory, which is a tiny bit slower but provides a better, more reliable build?
Since we’re talking about a server, whose data and applications both need to have rock-solid stability, the wiser choice would be ECC RAM.
#What is ECC RAM?
The “ECC” in ECC RAM stands for “Error Correction Code” – and right off the bat, the name should give you a clue as to what it does and why it is preferable.
Standard RAM uses a bank of eight memory chips, which simply store data and provide it to the CPU when it is required. It doesn’t do anything else. ECC RAM, on the other hand, uses a bank of nine memory chips, only eight of which store and provide data to the CPU – the ninth chip is used exclusively to detect and correct errors that occur in the other eight chips.
This provides additional protection for systems that handle valuable data (like your server) and prevents data corruption by constantly checking for and correcting memory errors.
How Does ECC Help?
To start with, it means that RAM failure drops by almost 50% when using ECC RAM. RAM failures are mostly caused by memory errors, which occur when data stored in a RAM chip is misread by the computer. Because ECC RAM checks and prevents such occurrences, memory errors drop almost to zero, providing amazing stability for your data and your system.
Rare cases of ECC RAM failures are triggered by causes other than memory errors which means that these usually do not affect your data, whereas memory error failures will mess up your applications, corrupt your data, and in the case of a server, likely even the network that your rig is supposed to be handling.
How Does ECC Prevent All This?
In normal RAM, for every 8 bits of data, the system writes an additional ninth “parity” bit, which allows it to add it to the eight bits of data and check whether it causes an anomaly. Note that this only allows the system to discover an error, not correct it (and not all RAM has parity support in the first place).
It also needs to repeat the process for every 8 bits, which can offset the higher performance of non-ECC RAM. ECC RAM, on the other hands, uses the extra memory chip in its bank to create a 7-bit code which corresponds with every 64 bits of data that is stored in the RAM. When the data is read by the computer, a second code is generated and also checked against the first 7-bit code for a match.
If this does not give a positive match, the system discovers the error and – this is the important part – it can retrieve the 64-bits of data using the corresponding 7-bit code, which exists independently in the ninth chip. If all that is making your head spin, the simple version is this: ECC RAM means your data is constantly checked, errors corrected, and your sever made more stable.
#Why This is Important?
RAM specs run in three: Size (the amount of data that can be stored), Frequency (how fast the computer can read the data from the memory) and Timing (the wait time between read cycles). While higher frequencies in non-ECC RAM chips seem attractive (and are good enough for consumer-level work), the higher the frequency, the more unstable the RAM is.
To offset this, manufacturers are forced to lower the timings, which will force you to increase the size of your total available RAM. So when there is an error, it needs to be caught in the bud or your entire memory bank suffers. ECC RAM ensures exactly this.
#What’s The Downside?
So far, so good, right? So what’s the catch? There’s sure to be one. Well, to start with, ECC RAM sticks are bigger, more expensive and (for reasons obvious to anyone who’s been paying attention) not interchangeable with normal RAM. If you’re going to go with ECC, you need to go with ECC all the way – no middle option.
A second, significantly more minor disadvantage existed when ECC was first gaining momentum – the extra checking and correction of memory errors caused a slight dip in performance.
This has scared away many from making the switch to ECC, however, as technology marched on, this disparity has become lower and lower, and today ECC only causes a performance drag by… wait for it… …two per cent. Two percent. 2%.
That’s a maximum possible lag, and it comes hand-hand with an arsenal of advantages like system stability, data protection, error correction, and lower failure rates. Because the chances of memory errors are almost nil, ECC RAM failures occur at a frequency of are less than 50% of their non-ECC counterparts.
There is also another simple fact to consider, which is that faster memory does not always equal better yields in performance, which depends on numerous other factors, and it is unusual for RAM to bottleneck your processes in the first place.
To sum it up: For a more reliable, stable, error-free build at no significant cost to your performance, use ECC RAM.
“And that’s all for now, thanks for sticking with the article, and you know it will always good to let me know about the tutorial, in the comments down below.” 🙂