20

Is ECC RAM recommended for use in workstations, or is it something that only gets used in servers? If non-ECC RAM works in PCs, why would we need ECC RAM at all?

24

As stuff is stored into, left, and eventually pulled out of RAM, some corruption naturally occurs (theories vary, but the one with the most weight right now is EMI from the computer itself). ECC is a feature of RAM and motherboards that allows detection and correction of this corruption.

The corruption is usually pretty minor (ECC can usually detect and fix 1-2 bits per 64 bit "word" - and that's waaaaay beyond the typical error rates), but increases in frequency with the density of the RAM. Your average workstation/PC will never notice it. On a server where you're running high density RAM 24/7 in a high-demand environment serving critical services, you take every step you possibly can to prevent stuff from breaking.

Also note that ECC RAM must be supported by your motherboard, and the average workstation/PC does not support it.

ECC RAM is more expensive than non-ECC, is much more sensitive to clock speeds, and can incur a small (1-2%) performance hit. If it helps, an analogy that works is RAM to RAID controllers. On your PC, that hardware-assisted software RAID built into your chipset is great protection against single disk failures. On a server, that would never be enough. You need high-end, battery-backed fully hardware RAID with onboard RAM to ensure that you don't lose data due to a power outage, disk failure, or whatever.

So no, you don't really need ECC RAM in your workstation. The benefit simply will not justify the price.

  • 2
    As also pointed out in Basil Bourque's answer, the prices have pretty much converged these days (when I looked most recently, the price difference was the ~10% you'd expect from the additional chip area, for the same usable amount of RAM). It might be worth revisiting particularly the last sentence in light of this. – a CVn Oct 18 '15 at 13:07
9

If this article is anything to go by, then you should use ECC RAM.

It's not just a matter of "I don't run a server, so I don't need it". It depends how much you value your data. It's not just a matter of occasional crashes - the problem is you could get corruption and have no way of knowing that it's going on.

  • 3
    From the article: "[...] 4 GB of RAM has a 96% percent chance of having a bit error in three days without ECC RAM". This sounds like computers should be crashing constantly and data should become corrupted all the time. Yet everyone seems to be doing pretty fine without ECC... why? – Calimo Jun 8 '15 at 14:56
  • 1
    That's because that article is false when it comes to the error rate. The actual error rate is lower by many orders of magnitude. See the relevant reddit thread reddit.com/r/programming/comments/ayleb/… – mimrock Aug 11 '15 at 11:32
  • Whatever the error rate is, it also depends what is affected. Chances are it's not something that causes a system crash. – sudo Jun 17 '18 at 1:43
8

ECC RAM gets more interesting as memory sizes grow. The probability of a single bit error in a machine with 8GB of RAM is quite a lot higher than it was in the days of a 640K PC/XT, simply due to the larger number of bits. On a database server where that RAM might be in a disk buffer, a bit error can corrupt disk storage as well. Generally you would expect to use ECC memory on a server.

Some workstations (particularly those with Xeon or Opteron CPUs) take registered memory, which pretty much only comes in ECC flavours anyway. On a desktop PC you may view it as overkill.

4

ECC RAM is designed to aid in preventing and fixing memory based errors, usually using some sort of hamming code or modular redundancy. This is very useful in servers that contained important data, or need high availability, but it comes at a cost.

Whilst its probably worth paying the extra for your important servers, do you really want to do so for your desktop machine, does it matter if there is the occasionally memory error? Sure it matters if your SQL database drops some data during a transaction, but do you care if your word document is affected by a slight memory blip?

4

If you want a reliable workstation then you want ECC RAM for it. It will crash less often and work done on it and documents cached in RAM will not be randomly corrupted.

  • 4
    It seems like an immeasurably small chance of improved stability. The only RAM-related crashes I'm aware of on workstations are due to bad RAM or bad applications, never something that ECC would have prevented. It makes some (read: still only a tiny bit) of sense on servers where you're crunching terabytes of data constantly, but on workstations maybe the only thing that gets close is high-end graphics rendering or video processing. In short, I think you can get a completely reliable workstation without ECC RAM. – Chris Thorpe Feb 8 '10 at 4:55
  • I ran memtest86 several times overnight without any error. That's how often memory flip occurs... If lives depend on it, that would justify using ECC, otherwise I don't think this is a real issue 99.9% of the cases. It is very unlikely that 1 random bit a month will hit something critical in terabytes of data. – inf3rno May 7 '17 at 19:57
  • Ofc. ZFS is an exception. – inf3rno May 7 '17 at 20:03
  • 1
    @inf3rno That argument? Overnight is nothing. Altitude matters. I live in Colorado and on ECC system see several correctable errors each month. Come back with logs from an ECC system or you have no information. Also read Google's report on ECC errors. – Zan Lynx May 7 '17 at 20:04
  • 1
4

An additional benefit of ECC over what was mentioned above is that you can detect bad RAM. While running a long memtest86 session will usually find any problems, there may be very specific problems with the RAM which only show up rarely and in certain use cases. This can still happen much more frequently than the corruption that perfectly good ECC RAM is designed to protect against -- maybe once every month. So if you install monitoring software, you can be sure that your RAM is good, or replace bad chips. Still a marginal benefit, but as ECC memory is not much more expensive than normal RAM, it may be worth it.

1

ECC memory now costs about the same as non-ECC memory, as prices have dropped. So check prices; if prices are anywhere close, buy ECC if your workstation accommodates it.

0

I think there may be some confusion just based on the title of the question.

If you just mean the average desktop PC, then that is usually based on a platform that doesn't even have ECC support.

If you mean a workstation class computer, then it quite likely comes with ECC memory whether you care about it or not.
Overall, the workstation class is typically based on essentially server hardware but with proper graphics and packaged in a different form-factor.

The expected workload is also more taxing than that of the desktop PC, so if you acknowledge that ECC makes sense for servers, then I think it's not much of a stretch that ECC also makes sense for workstations.

For Desktop PCs, there's some debate whether ECC would make sense or not. It can absolutely be argued that everything ought to have ECC but, right now, it's not practical as the industry has decided to make ECC a feature to differentiate higher end hardware.

0

According to the article Zan Lynx linked in the comments: DRAM Errors in the Wild: A Large-Scale Field Study, the uncorrectable errors are common while random correctable errors appear rarely in a system. The incidence is probably a few in a year, but it depends on the usage.

So in a server environment the correctable errors might not be that important, but you boot the server machines rarely, so uncorrectable errors caused by failing RAM can be there undetected for a while corrupting your data. I think that's the main reason why servers need ECC. Workstations boot and so check RAM frequently, so hardware failures can be detected by every reboot. If that frequency is sufficient for your business, then I think you won't need ECC RAM in your workstation.

If we are talking about memory errors, it is better to version the important documents on the server. So if the workstation reads and modifies something, then the original content should not be overwritten on the server. Regular backups can do the same for you.

Another aspect of this question is security. If your workstation is connected to any non-safe network, then it might be vulnerable to the row hammer attack, which exploits a DRAM related phenomenon. So from security perspective it is better to use ECC RAM.

protected by Sven Jan 17 '16 at 17:48

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.