{"id":249,"date":"2015-11-09T00:37:34","date_gmt":"2015-11-09T08:37:34","guid":{"rendered":"http:\/\/nramkumar.org\/tech\/?p=249"},"modified":"2015-11-09T00:37:34","modified_gmt":"2015-11-09T08:37:34","slug":"user-mode-memory-testing-in-linux","status":"publish","type":"post","link":"https:\/\/nramkumar.org\/tech\/blog\/2015\/11\/09\/user-mode-memory-testing-in-linux\/","title":{"rendered":"User mode memory testing in Linux"},"content":{"rendered":"<p>As discussed\u00a0<a href=\"https:\/\/nramkumar.org\/tech\/blog\/2015\/09\/27\/episode-3-a-new-server\/\" target=\"_blank\">here<\/a>, I recently updated the hardware on my home server. I ended up using <a href=\"http:\/\/www.newegg.com\/Product\/Product.aspx?Item=N82E16820145260\" target=\"_blank\">2x2GB of DDR3 SDRAM<\/a> that I had from an older upgrade.\u00a0<a href=\"http:\/\/www.newegg.com\" target=\"_blank\">Newegg<\/a>\u00a0had a great deal for 2x4GB of DDR3 SDRAM (<a href=\"http:\/\/www.newegg.com\/Product\/Product.aspx?Item=N82E16820226691\" target=\"_blank\">Mushkin DDR3 1600<\/a>\u00a0for $35) that I decided to jump in on. Got the memory and I decided to take a chance on mixing it with my old 2x2GB Corsair kit (this is a really bad idea &#8211; don&#8217;t try this. If the clock speed and timings of your memory don&#8217;t match, you&#8217;re definitely going to have a bad time). \u00a0I popped in the new memory and booted up the machine &#8211; it booted up just fine! I was impressed and thought that maybe I&#8217;d gotten really lucky \ud83d\ude42 However, I had a nagging suspicion that this was too good to be true. Sure enough, I was trying to download a new version of\u00a0<a href=\"https:\/\/plex.tv\" target=\"_blank\">plex media server<\/a>\u00a0and <code>tar zxvf<\/code> failed saying the download was corrupt.<\/p>\n<p>I was immediately sure that this must be bad memory mixing mojo, but since I&#8217;m lazy, I decided to figure out a way to do memory testing in user mode. Basically, <a href=\"http:\/\/www.memtest.org\/\" target=\"_blank\">memtest<\/a> is the gold standard for testing your memory for issues. However, it requires you to create a bootable disk and reboot your machine in order to run the diagnostics. I was too lazy to do this, so I searched around for something that I could run on my system without having to reboot it (again, don&#8217;t try this &#8211; this is dumb when your memory is proven to be flaky). Some searching led me to <a href=\"http:\/\/pyropus.ca\/software\/memtester\/\" target=\"_blank\">memtester<\/a>\u00a0which looked like it would do the trick. I downloaded it and ran <code>memtester 8G 100<\/code> to test the RAM modules (since I had 12 GB of RAM, I felt comfortable giving 8G to memtester to play with, hoping the OOM killer will take care of any issues). memtester found a bunch of bit flips and other assorted errors very quickly. I had to make a choice at this point &#8211; do I pull out my 2x2GB kit and continue with the 2x4GB or figure out a way to make this work.<\/p>\n<p>I decided\u00a0to try to make it work since the clock speed and timings for the two kits were identical (although voltages were different). I decided to lower the memory clock frequency in the BIOS to 1333 MHz instead of 1600 MHz. Rebooted the machine and ran memtester overnight &#8211; this time the system was stable and I&#8217;ve decided to keep it running this way. Note that the memtester single iteration takes a long time (around an hour), so I actually didn&#8217;t run 100 iterations. I just decided to arbitrarily stop the test after 10 hours of successful iterations.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>As discussed\u00a0here, I recently updated the hardware on my home server. I ended up using 2x2GB of DDR3 SDRAM that I had from an older upgrade.\u00a0Newegg\u00a0had a great deal for 2x4GB of DDR3 SDRAM (Mushkin DDR3 1600\u00a0for $35) that I decided to jump in on. Got the memory and I decided to take a chance&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[42],"tags":[85,86,84,87],"class_list":["post-249","post","type-post","status-publish","format-standard","hentry","category-home-server","tag-ddr3-sdram","tag-memory-testing","tag-memtester","tag-user-mode-memory-testing"],"_links":{"self":[{"href":"https:\/\/nramkumar.org\/tech\/wp-json\/wp\/v2\/posts\/249","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nramkumar.org\/tech\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nramkumar.org\/tech\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nramkumar.org\/tech\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nramkumar.org\/tech\/wp-json\/wp\/v2\/comments?post=249"}],"version-history":[{"count":1,"href":"https:\/\/nramkumar.org\/tech\/wp-json\/wp\/v2\/posts\/249\/revisions"}],"predecessor-version":[{"id":250,"href":"https:\/\/nramkumar.org\/tech\/wp-json\/wp\/v2\/posts\/249\/revisions\/250"}],"wp:attachment":[{"href":"https:\/\/nramkumar.org\/tech\/wp-json\/wp\/v2\/media?parent=249"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nramkumar.org\/tech\/wp-json\/wp\/v2\/categories?post=249"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nramkumar.org\/tech\/wp-json\/wp\/v2\/tags?post=249"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}