Faulty RAM modules can cause a variety of problems and can come from any vendor -- including Apple. Furthermore, the problems caused by bad memory can be latent, developing over time, and/or non-specific.
A recent e-mail from MacFixIt reader Rock Norris exemplifies the aforementioned -- his faulty RAM shipped was supplied by Apple at the time of his MacBook Pro's purchase, and the detrimental effects developed slowly.
"In December, my wife and I bought a MacBook Pro, and had it come with 2 GB out of the box. The machine ran fine most of the time, but my wife began to find more and more issues as time wore on and her use of it increased. Eventually, we started getting incessant hangs, unexpected quits, and then, after a couple of weeks, the occasional kernel panic. [...] I tried to do a clean archive and install and start cleaning things up. That's when things got interesting. The install would not complete, and seemed to take forever to complete the first part (disc 1). This left our laptop in a state of half-installed, and of course would not boot correctly, or even fully mount, even in Target Disk mode on our older G4 tower. [...] I finally ran the Apple Hardware Test disc. Running through the main test, it turned out one of the RAM modules failed. Hearing this, AppleCare was ready to send out a replacement module, but we had a local AppleCare Service Rep and decided to let him do the repair since it was all covered.
"The problem here is that the bad RAM doesn't always result in a kernel panic immediately. Sometimes it's severely slowed overall operation, or spinning beachball, or unexpected quits, and then maybe kernel panics. And it's very intermittent, too. If your usage of the hardware's RAM is very light, you may not run across the issue often."
Among the issues that can be caused by bad RAM:
- Problems waking from sleep
- Kernel panics (see this tutorial for other causes for/solutions to kernel panics)
- System-wide freezes
- Drive/directory corruption
- Poor performance
There are three primary methods for identifying and eliminating problematic RAM modules:
Run the Apple Hardware Test This is the simplest method and should be used first.
To run the Apple Hardware Test on PowerPC-based Macs, insert the Apple Hardware Test disc, then shut down the system. Restart your Mac then immeidately hold down the C key until the "Loading..." icon appears.
To use the Apple Hardware Test disc on Intel-based Macs, insert the disc labeled "Mac OS X Install Disc 1". Resetart your Mac then immediately hold down the D key before the gray startup screen appears. You should see a picture of a screen with a chip in front of it.
Once the program hardware test program has loaded, select the Perform extended testing checkbox then press the Test button. If the test discovers faulty modules, it will display an explicit message indicating which slot harbors it.
Use a third-party RAM testing utility If the Apple Hardware Test does not discover faulty modules but you still suspect that bad RAM is the cause f your issue(s), you can try a third-party RAM testing utility. The most popular tool for this procedure is Memtest -- a command line utility. There is also a graphical interface application driven by Memtest called Rember.
For information on using both of these utilities, see this "Troubleshooting Tools" column.
Remove modules one-by-one or in sets If neither of the above procedures identifies a faulty module(s), and you still think bad RAM might be your problem (neither aforementioned method is capable of identifying bad RAM in all cases), you may want to try the manual approach:
- Pull all RAM modules except one (or two if your Mac requires paired RAM)
- Check for persistence of the problem(s)
- If the problem is gone, add the removed modules back one at a time (or two at a time if your Mac requires pairs), restarting your Mac each time to check if the problem recurs; If the problem is not gone, switch the module out with one (or two) of the remaining modules and check for elimination of the problem until you've identified the problematic module(s)