73

My computer hangs at random on multiple occasions and on different OSes today, requiring me to hit the reset button. I suspect it could be a memory problem and did a memtest with memtest86.

It went through two passes with no errors. Is that enough, or do I need to run through overnight until I see an error?

What if it is a motherboard or CPU issue? How do I know without getting a new motherboard?

System Specifications:

  • Memory: 2.0GiB
  • Processor Pentium(R) Dual-Core CPU E5300 @ 2.60GHz x 2
  • Motherboard: ASUS P5KPL-AM EPU
2
  • You've probably gotten this figured out by now, but next time take a look at the kernel log on Linux after it hangs. That will give you an idea of what is going on.
    – scottkosty
    Jul 16, 2014 at 15:24
  • @CarComp: Please post the failed memtest results.
    – harrymc
    Mar 10, 2019 at 17:59

12 Answers 12

37

Testing can not prove the absence of bugs, only their presence

Memtest is great for finding errors in RAM. The rate at which is find errors is by necessity directly proportional to how broken the RAM is. The more broken it is the faster it finds errors.

90% of the time, if the RAM has a problem, memtest will find it within 10 seconds, 99% of the time, one pass will be enough to find the issue. The longer it takes to find the issue, the more subtle it is and the less likely it is the cause a problem with your PC (but you should still get new ram if you get even one error)

As the your computer is crashing quite frequently and you have run a few passes, It's probably not your RAM. As a next step, you should test you hard drive and then CPU with a tool such as Ultimate Boot CD or Hiren's. (Most modern BIOS's also have a built in HDD testing feature)

8
  • 2
    I suggest to try to clean the RAMs and socket and test them again first (use isopropyl alcohol; made positive experience with disinfection spray as replacement; But don't spray the latter one directly onto RAM - only onto the cloth as it shall only serve as resolvant and will eventually leave some residues when used in too high amounts)
    – SDwarfs
    Dec 8, 2014 at 14:33
  • 4
    So if somebody get at least one error - he'd throw his RAM out, go and buy a new one? Are you sure?
    – Tarasovych
    Apr 28, 2018 at 21:51
  • 3
    @Tarasovych: It depends on how important system stability is to you. At the PCs I maintain at work, I'd do exactly that (throw all the RAM out and buy new one), because (1) RAM is cheap and (2) software developer time is expensive. In fact, even throwing away the whole PC and buying a new one might turn out to be cheaper than lost productivity/work due to unreliable PCs.
    – Heinzi
    Sep 3, 2018 at 21:25
  • 1
    Overclocking can also cause these errors, but that doesn't mean you should throw out your ram, just reduce overclocking or increase dram voltage in safe range. Mar 1, 2019 at 17:36
  • 1
    This is wrong. In my experience, ram errors often don't show up until half or 90% of the way through testing. Mar 10, 2019 at 22:06
25

I've run memtest and seen 6 passes with no errors, with 4+ errors per pass after that. I normally just run 3-4 passes, but it's certainly possible to miss errors by doing just a couple of passes. I'd imagine that some errors only pop up as the memory modules heat up, thus causing problems with memory running at a high voltage.

4
  • if it is a heat related problem wouldn't prime95 be a better test vector, to generate a lot more heat in the system? Nov 6, 2015 at 1:27
  • 1
    @JeffAtwood No expert here, but prime95 woudn't necessarily point to RAM errors right?
    – Hele
    Nov 18, 2015 at 15:12
  • To test for heat related errors, run one instance of memtest per CPU core.Select your performance profile under power management. For laptops, do not place them onto cooling stands. Let memtest run for 24 hours. If no errors, you dont have issues with the ram.
    – user986363
    Jan 9, 2016 at 14:50
  • maybe these were soft errors that are not important? forums.passmark.com/memtest86/…
    – 16851556
    Oct 11, 2020 at 16:27
17
+50

MemTest86 tries to do a complete test of the RAM. While doing so, it has also become a good all-around test, since some of the tests also touch upon the motherboard's memory controller and the CPU.

RAM has much increased, to the point that a portable phone may today contain more RAM than for a mainframe of 20 years ago. The tests have multiplied as MemTest86 has evolved, and so has the RAM. Although the RAM has become faster, the tests are still time-consuming, measured in hours or even days.

Now for the bad news: I have found at least two respectable sources, Ten Forums and wiki How that give the same advice. I quote from Ten Forums:

MemTest86+ needs to run for at least 8 passes to be anywhere near conclusive, anything less will not give a complete analysis of the RAM.

If you are asked to run MemTest86+ by a Ten Forums member make sure you run the full 8 passes for conclusive results. If you run less than 8 passes you will be asked to run it again.

I should remark that MemTest86 has two versions, the Free and Pro, where the Pro version has several more tests than the Free version and configuration options. You may see the differences in the article Feature Comparision.

More information about the optimal number of passes can be gleamed from the article MemTest86 Technical Information from the description of the MemTest86 config file, mt86.cfg, available only in the Pro version:

PASS1FULL

Specifies whether the first pass shall run the full or reduced test. By default, the first pass shall run a reduced test (ie. fewer iterations) in order to detect the most obvious errors as soon as possible.

Conclusion 1: The first pass is shorter and faster, intended mostly to detect hard errors. The fact that the first pass has passed without error is encouraging, but users of the Free version need to wait for the second pass for the full gamut of tests.

The largest number of passes I have found was in this test:

Test 7 [Moving inversions, 32 bit pattern]

This is a variation of the moving inversions algorithm that shifts the data pattern left one bit for each successive address. The starting bit position is shifted left for each pass. To use all possible data patterns 32 passes are required. This test is quite effective at detecting data sensitive errors but the execution time is long.

Conclusion 2: Test 7 needs 32 passes to be totally complete, which I take as the upper bound on the number of passes required for a really exhaustive test.

I also remark that many of the tests use a random pattern, with a different pattern for each pass, meaning that each pass is different. Taking it to absurd heights, we might conclude that there is no upper limit to the number of passes required for an absolutely conclusive result.

My opinion

My opinion as regarding the number of passes is that one should run as many passes as one has the time to wait. The lower bound seems to be two passes, as only the second one will be a full test. But the question of "how much is enough" has no real answer. I note again that for the two technical references that I cited above, the minimal number of passes required for a good and conclusive result is 8 passes (perhaps so that Test 7 will do one whole 8-bit byte, among other reasons).

On the other hand, errors found by MemTest86 should be taken very seriously. As the question was raised here about the acceptable amount of failures, my answer is that even one failure is too much and not acceptable.

3
  • 1
    Your answer conveys insights that go beyond the others.
    – CarComp
    Mar 18, 2019 at 4:00
  • My testing stopped after 1pass, is there a setting for increasing number of passes?
    – kanna
    Dec 22, 2020 at 13:07
  • @kanna Maybe try with Memtest86+ which is the open source version (there is a stable and beta version so it could be useful to try both if possible).
    – baptx
    Sep 19, 2022 at 11:35
16

At work we usually left the machines running over night, but in all fairness, every time I've been able to show a memory problem with memtest it has been within seconds of starting it.

I've never seen a machine do 1 full pass to fail on one the following. (Not that it is necessarily impossible, just to show that it is rare.)

I used to work in a computer shop where we started memtest on new machines on a more or less daily basis.

Without enough info to really say so I'd still guess your problem is likelier an over heating or bad driver one.

Since you've tried more than one OS the driver part seems unlikely. Unless you've for example only tried different windows versions that use the same driver.

6
  • 4
    I actually saw errors starting at pass 3. I assume this has to do with the warming up of the RAM, CPU and/or memory controller. All my problems of this kind were related to either improper connection of the RAM to the socket, socket to motherboard or debris on the RAM (as I took the RAM out, cleaned RAM + Socket connector and put the RAM back in which eventually resolved the problem).
    – SDwarfs
    Dec 8, 2014 at 14:22
  • 1
    PS: I suggest at least 3 passes. While overnight with ~ 5-8 passes is more reliable.
    – SDwarfs
    Dec 8, 2014 at 14:23
  • 2
    I've seen errors surface on a third pass, I believe due to heat. Mar 9, 2015 at 3:07
  • 2
    I have seen a problem showed after 2-3 hours of memtest86+. Same memory for 30 min was "ok".
    – i486
    Oct 10, 2016 at 7:36
  • @i486 that's not useful, since the time depends on speed of the system and size of RAM. You need to refer to passes. Jun 22, 2023 at 18:41
13

http://hcidesign.com/memtest/manual.html

100% coverage represents one full pass of testing your memory. In general it is better to run multiple passes. Here are three typical lengths of testing you might use:

  1. Test until 100% coverage (a quick test to make sure your RAM is functioning reasonably)
  2. Test for 1 hour (this will catch everything except intermittent of errors)
  3. Test overnight (recommended; your computer is not doing anything else at night anyway, why not be absolutely sure your RAM is good?)
7

I have seen RAM pass the first 6 passes of memtest and then fail subsequent passes, and when running a Linux OS with that RAM would see locking up after a 6-8 hours. Other RAM on the same motherboard ran fine, so apparently the failing RAM was temperature sensitive.

When I suspect a RAM problem (e.g. Dell computers with diagnostic lights) I run memtest on one RAM module at a time in the first slot for 8-16hrs. If it passes that confirms both that slot and RAM module are good and I can (more) confidently use that slot to test other RAM modules.

1
  • Are you sure that Memtest86 tests RAM slots? I wasn't aware it did. Nov 22, 2018 at 20:31
6

My experience with memtest86+ differs a bit from most people here. memtest86 has helped me a lot along the years but unfortunately it sometimes fails to detect errors.

Although memtest works the majority of the time, it failed me a couple of times. The first time it failed to detect errors i had a PC with 1x 4GB DDR3 that was giving me BSODs related to the memory. I ran memtest for an entire day, we're talking about 15+ passes but no errors. I then tested it on a completely different computer, same thing, no errors. Operating system was completely unstable but no errors on memtest. I then used a different software named "PC-Check" from Eurosoft which is very similar to memtest but uses different algorithms. It is also bootable, does not need any operating system. It detected errors in less than 5 minutes. I then was able to send the module to Corsair RMA and get a replacement.

So, memtest is very good but not always enough. I currently use memtest and PC-check to check memory. If memtest fails to detect errors, PC check certainly will and vice versa. And trust me, it happens more often than one would think.

2
  • 1
    How to exactly recognize (from BS0D? minidump) that the BS0D was due to memory without doing memtest86?
    – 16851556
    Oct 11, 2020 at 16:33
  • 1
    That pc-check sw. costs more than $300. Probably a bit pricey if you're just going to use it a single time. Nov 21, 2022 at 22:31
2

I'd say 3 passes is generally enough. If you want to be extra sure, do 8 or 9 passes, since @Jeff saw errors in one case only on his 7th or later pass, but that can take forever! So, to be more practical, perhaps just limit yourself to one 8-hr overnight run so long as at least 3 passes are achieved, or one 24-hr whole-day + night run as long as at least 3 passes are achieved.

As a general rule of thumb, I think @LAwLz got it correct here when she said (emphasis added):

In most cases memtest will start spitting out errors within a minute if the RAM stick is bad. If you ask me, I'd say after 1 minute without errors you can be 50% sure that the RAM is good. After 5 minutes it's 70%. After one pass it's 90%. After 3 passes it's 99.9%, and so on.

@LAwLz also goes on to say there are no guarantees no matter how many passes you do:

Here is something to keep in mind though. Memtest will only prove that your RAM has issues, but it will not prove that it does not have issues (even after 10 hours of tests). Even if you run the test 100 times you can not be sure that it would not spit out an error after the 101th run.

And she also believes 8 hrs is good enough (but I'd add: so long as at least 3 passes are achieved during this time--if not, keep going until you get at least 3 passes):

Since I am currently waiting on a new RAM kit since my last one had a dead stick in it, I plan on running memtest on the new kit of RAM. I will be running it overnight, so that will be about 8 hours.

If you want to be as sure as practically possible, I'd say let it run overnight. If you don't get any errors after 8 hours of intense searching for errors, then it's pretty safe to say they are fine.

1

I do one pass to see if there are any obvious errors.

If there is an error no more passes needed.

If the problem with the computer is strange i let it go overnight or over day for ~10 hours just to be sure.

1

I usually run memtest EVERY TIME I change CPU, memory or notice odd issues. Reason is - memtest does not just test memory. It will error out in three other important cases:

1) If there are issues due to overheating of either CPU or memory. Normally, memtest loads CPU for several of the tests to almost 100%.

2) if CPU cannot access memory correctly. Most of the tests read & write at all locations of the memory.

3) if there are problems with power. I.e. a weak power supply or bad capacitors cause too many spikes offsetting random bits.

If I see at least a single red error, I start looking for what should be removed / fixed before using the hardware.

2
  • 3
    While this may be useful information, it doesn't answer the original question.
    – blm
    Jan 12, 2016 at 4:17
  • One wonders which of the three meintest* programs mentioned here Nikolai was referring to. Jun 22, 2023 at 19:06
1

I have a contrary perspective.

It depends on your tolerance for flakiness and crashes. On my primary computers I run Linux, and I have zero tolerance. My machines are typically up for upwards of a year before I reboot it or there is a power failure. There have been cases where it has been several (years). Then something odd happens for the second or third time, I shift to another platform and start diagnosing. It is almost always the RAM (Was an Ethernet board once, and a switch once, which only needed new capacitors).

Given this perspective, I have a different take on number of passes. When I buy a new machine (literally or new to me on ebay) I run it for 1-3 or 4 weeks depending on my patience. After that, it has always run indefinitely. The only bad machines I have taken on were two Apple XServes from 2009 with 24GB of memory that I got for free. Each had one bank of bad DIMMs, and after removal they ran for many weeks before I got around to turning them off. With 8 physical XEON cores running concurrently that was quite a few iterations. It took a week or so to fail memtest86. Then I repeated the failure (Another many days! What a pain...), then I replaced the bad DIMMs.

Why do I do that? on 3 occasions I have had a machine become "unreliable" in that it would do something flakey or hang after a few weeks to a few months.

With a Linux machine, on my first such long run it found an error after 3 weeks, I replaced the DIMM, and it never crashed again. Similarly a 2 week incident.

I had a Toshiba laptop running Windows that would run for various times, hours to a couple of weeks. I found that it was lacking thermal compound and instead using some foam thing between the CPU and GPU and heat pipe. I replaced it with thermal grease (albeit not mechanically tight since the mechanical design assumed a thermal pad with non-zero thickness) and that helped considerably, but it still crashed on occasion. I threw it out.

Yes, if something is very grossly wrong, it will be found on the first pass, but usually it takes a few dozen hours. The machines I am talking about all take about an hour, hour and a half to run a single pass so that would be a few dozen passes.

I had some motherboards which all consistently failed memtest86 after a few months of running, yet memtest86 did not find anything (I don't recall how much patience I had with run-time). I dropped from 4 to 3 banks of memory and they never crashed again. My ASUS motherboards with the same exact chipset always worked fine with 4 banks. Both used Crucial memory.

I used to use the clock control feature of the BIOS to UNDER clock a step under the theory that this would make the machine more reliable if DRAM timing is the problem, but when I did have a problem it never helped, and the incident above is the only time I found that reducing the load on the common lines helped.

With Windows machines, I find that often they still pass the memtest86 for a couple of weeks test, but the machine remains unreliable under Windows. Sometimes an imperfect machine is suddenly reliable after a Windows release boundary. I had an issue before and during Covid with resolved on the fourth semi-annual Windows release - three releases with the problem! The same machine was suddenly rock-solid.

So if you reboot every day, or are happy saying "Oh, gotta reboot", and are not paranoid that some day the bad bit is going to be in your data instead of the instructions, then I would say to run memtest86 for at least a full day. In my experience most things are found in more than a few passes and less than a day. The information about the first pass being less thorough makes sense - I think it has always made it through the first pass or two. But a full day is not by any means conclusive. I am confident that a full month is, and I often compromise and run it for 2-3 weeks because I am impatient.

Finally, sellers of used computers typically swap things around, or even strip them into bins of parts then reassemble them based on what the customer wants, sometimes will little regard to static. I was told by one of them that the static issue was resolved sometimes in the 2000's and is not an issue any more. The truth is that static may wipe out a part, But most of the time it is just hot enough to mildly degrade a transistor only to manifest itself down the road. If you get a machine that has been running for a few years and nobody has taken it apart, chances are good that it will run roughly forever. Weak transistors are caused by impurities in the silicon crystal lattice, and the electric fields drive them to drift towards where they do the most harm. At higher temperatures, they drift faster. When there is a high current discharge (aka spark) they as well as the dopants that make the transistor a transistor are quite free to move around change the doping profile (Slope of the cliff). Picture a box of neapolitan ice cream with nice crisp boundaries between the vanilla and chocolate, now insert a little ni-chrome coil an inch in right on the boundary and heat it up to red-hot for a few seconds. What is going to happen? I had a laptop that I bought from a local recycler that would fail on memtest86 or crash every few days. I took it back and when I express concern about static (Looking at his process) he handed me another saying "Here, I have not touched this. It belonged to the IT manager of , that's where all of these came from and he gave me his last." That was in 2013. It is still running (2021), has not crashed yet. Almost worthless by today's standards, but it serves it's current purpose.

Hope this is helpful! Not welcome news, but this has been my reality. For reference, this is all based on something more than the 20 machines that I can quickly count.

0

Given that, after one pass, it displays Pass complete, no errors, press Esc to exit, I always assumed that's sufficient.

enter image description here

2
  • 9
    Err, if that is really the case, wouldn't memtest automatically stop after one pass instead of allowing us to carry on testing forever? Feb 14, 2013 at 2:54
  • @QuestionOverflow: I don't know, would it? Feb 14, 2013 at 12:02

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .