Hacker News new | ask | show | jobs
by jackblack8989 3222 days ago
Any experts here care to tell how does one check for RAM quality? Does CPU-Z do it? (Writing from work, don't have admin perms to use)

Not talking about this particular case, but maybe case of a RAM not working in general.

4 comments

Generally you use memtest86+ or something similar (IIRC Windows' bootloader contains something like that since vista).

On the other hand I've seen memory module with sufficiently unfortunate pattern of broken bits, that it could not be detected by memtest86. Even such tools need some part of memory that they run from and thus does not get tested (also some memory is reserved for BIOS). The problem manifested itself by completely unusable Windows and occassionally flipped bits in files downloaded from network on Linux (I assume that on Linux the faulty bit ended up in DMA bounce buffer, while on windows in something significantly more critical). To confirm my hunch, that it was memory related I netcat'ed few GB worth of CHARGEN output and analyzed the pattern of bit errors, which were perfectly aligned on some boundary. Finding which module was faulty then involved rearranging modules, running memtest86 and repeating the CHARGEN experiment.

Edit: actually diagnosing this took about month and half. memtest86 was passing and there was unrelated known hardware bug in used network card which I though might be related to observed behavior. Experiment with chargen was motivated by finding out whether the bit errors were somehow aligned to TCP segment boundaries, instead I found out they were aligned on some quite large power of two, which clearly pointed to memory issue.

What do you mean by "CHARGEN?"
Standard service on TCP port 19 :) It spits out printable ASCII characters to anyone who asks as fast as it can.

General wisdom is that it is security hazard and not useful for anything on the open internet, but having some server with so called "simple TCP/IP services" in your internal testing LAN is useful for exactly this kind of debugging.

Edit: this whole debugging happened around january 2009, so at the time when chargen was long dead and certainly not a service offered by almost anyone on the internet.

Sadly, chargen is still alive on the open internet. It's not really a security hazard, but it does have a huge DDoS amplification factor, so it's not a good idea to run it on public IPs (and if you firewall it, do the world a favor and firewall the incoming requests, don't try to 'fix' it by firewalling the outgoing responses)
`memcheck86` is included in most Linux LiveCDs (ok, let's start to call them live USB sticks?). It will stress-test the system DDR/SDRAM.

If you need to check external memory (GPU, IoT, etc) then there is some tools online.

Note that memtest86 doesn't test against Rowhammer like attacks probabilities.

You can also use some overclocking features in advanced motherboard to push the memory beyond factory settings and see how far it gets before it starts to misbehave.

Memtest86+ is the gold standard of memory testing for modern systems. Recent versions even test for rowhammer iirc.
memtest86 can do functional tests.