Bagaimana cara menafsirkan statistik menjalankan memtest?


63

Saya memiliki notebook di sini yang saya duga memiliki modul memori yang salah. Karena itu saya mengunduh Memtest86 + dan menjalankannya.

Perhatikan bahwa tangkapan layar tersebut bukan tangkapan layar saya yang sebenarnya, ini disediakan oleh memtest86 +

memtest

Bagaimana cara menafsirkan angka di layar? Saya telah membiarkannya berjalan sekitar empat jam dan sekarang saya lulus 7.

Terutama apa

  • nomor tes
  • hitungan Kesalahan
  • hitungan kesalahan ECC

menunjukkan? Apa nilai waras untuk kesalahan memori? Pada titik mana saya harus mempertimbangkan mengganti memori?


3
Anda ingin tetap menggunakan memori dengan kesalahan?
Daniel Beck

4
Hanya saran :). Jangan abaikan kesalahan dalam memtest. Hanya satu kesalahan kecil dalam RAM yang dapat merusak sistem operasi lengkap dan menyebabkan kehilangan data.
Rufo El Magufo

2
Secara umum, jika Anda tidak melihat area merah besar yang berkedip, semuanya baik-baik saja :-)
Kol

5
Jika kesalahan terbatas pada satu area spesifik dalam memori, dan Anda menjalankan Linux, Anda dapat memberitahu kernel untuk mengabaikan area-area seperti yang ditentukan di sini: gquigs.blogspot.com/2009/01/bad-memory-howto.html Jika Anda Sedang menjalankan Windows, kesalahan tidak dalam area yang konsisten, atau ada terlalu banyak, Anda harus mendapatkan RAM baru.
user55325

4
Selain itu, jika memory stick mulai rusak, kemungkinan area semakin rusak. Memori lebih murah dibandingkan dengan biaya perburuan data yang berulang dan masalah sistem crash.
Zds

Jawaban:


82

TL; DR

Angka terpenting pertama: Jumlah kesalahan untuk memori sehat adalah 0 . Angka apa pun di atas 0 dapat mengindikasikan sektor yang rusak / rusak.


Penjelasan layar

     Memtest86+ v1.00      | Progress of the entire pass (test series)
CPU MODEL and clock speed  | Progress of individual, current test
Level 1 cache size & speed | Test type that is currently running
Level 2 cache size & speed | Part of the RAM (sector) that is being tested
RAM size and testing speed | Pattern that is being written to the sector
Information about the chipset that your mainboard uses
Information about your RAM set-up, clock speed, channel settings, etc.

WallTime   Cached  RsvdMem   MemMap   Cache  ECC  Test  Pass  Errors  ECC Errs
---------  ------  -------  --------  -----  ---  ----  ----  ------  --------
Elapsed    Amount  Amount    Mapping  on     on   Test  # of  # of    # of ECC
time       of RAM  of        used     or     or   type  pass  errors  errors
           cached  reserved           off    off        done  found   found
                   RAM, not
                   tested

Penjelasan data / tes

MemTest menjalankan sejumlah tes, ia menulis pola khusus untuk setiap sektor memori dan mengambilnya. Jika data yang diambil berbeda dari data yang awalnya disimpan, MemTest mendaftarkan kesalahan dan menambah jumlah kesalahan satu. Kesalahan biasanya merupakan tanda strip RAM yang buruk.

Karena memori bukan hanya notepad yang menyimpan informasi tetapi memiliki fungsi-fungsi canggih seperti caching, beberapa tes berbeda dilakukan. Inilah yang Test #ditunjukkan. MemTest menjalankan sejumlah tes berbeda untuk melihat apakah ada kesalahan.

Beberapa contoh uji (disederhanakan):

  • Sektor uji dalam urutan ini: A, B, C, D, E, F. (Serial)
  • Sektor uji dalam urutan ini: A, C, E, B, D, F. (Bergerak)
  • Isi semua sektor dengan pola: aaaaaaaa
  • Isi semua sektor dengan pola acak.

Deskripsi lebih rinci dari semua tes dari: https://www.memtest86.com/technical.htm#detailed

Tes 0 [Tes alamat, jalan, tidak ada cache]

Menguji semua bit alamat di semua bank memori dengan menggunakan pola alamat yang berjalan.

Tes 1 [Tes alamat, alamat sendiri, Berurutan]

Setiap alamat ditulis dengan alamatnya sendiri dan kemudian diperiksa konsistensinya. Secara teori, tes-tes sebelumnya seharusnya menangkap setiap memori yang mengatasi masalah. Tes ini harus menangkap setiap kesalahan pengalamatan yang entah bagaimana tidak terdeteksi sebelumnya. Tes ini dilakukan secara berurutan dengan setiap CPU yang tersedia.

Tes 2 [Tes alamat, alamat sendiri, Paralel]

Sama seperti pengujian 1 tetapi pengujian dilakukan secara paralel menggunakan semua CPU dan menggunakan alamat yang tumpang tindih.

Tes 3 [Memindahkan inversi, satu & nol, Berurutan]

Tes ini menggunakan algoritma inversi bergerak dengan pola semua nol dan satu. Cache diaktifkan meskipun mengganggu beberapa derajat dengan algoritma pengujian. Dengan cache diaktifkan pengujian ini tidak memakan waktu lama dan harus dengan cepat menemukan semua kesalahan "keras" dan beberapa kesalahan yang lebih halus. Tes ini hanya pemeriksaan cepat. Tes ini dilakukan secara berurutan dengan setiap CPU yang tersedia.

Tes 4 [Memindahkan inversi, nol & nol, Paralel]

Sama seperti pengujian 3 tetapi pengujian dilakukan secara paralel menggunakan semua CPU.

Tes 5 [Memindahkan inversi, tepukan 8 bit]

Ini sama dengan tes 4 tetapi menggunakan pola lebar 8 bit "berjalan" dan nol. Tes ini akan lebih baik mendeteksi kesalahan halus dalam chip memori "lebar".

Tes 6 [inversi bergerak, pola acak]

Tes 6 menggunakan algoritma yang sama dengan tes 4 tetapi pola data adalah angka acak dan komplemennya. Tes ini sangat efektif dalam menemukan kesulitan untuk mendeteksi kesalahan data sensitif. Urutan bilangan acak berbeda dengan setiap lintasan sehingga beberapa lintasan meningkatkan efektivitas.

Tes 7 [Blokir, 64 bergerak]

Tes ini menekankan memori dengan menggunakan instruksi block move (movsl) dan didasarkan pada tes burnBX Robert Redelmeier. Memori diinisialisasi dengan pola pergeseran yang terbalik setiap 8 byte. Kemudian 4mb blok memori dipindahkan menggunakan instruksi movsl. Setelah langkah selesai, pola data diperiksa. Karena data diperiksa hanya setelah memori bergerak selesai, tidak mungkin untuk mengetahui di mana kesalahan terjadi. Alamat yang dilaporkan hanya untuk tempat pola buruk ditemukan. Karena gerakan dibatasi ke segmen memori 8MB, alamat yang gagal akan selalu kurang dari 8MB dari alamat yang dilaporkan. Kesalahan dari tes ini tidak digunakan untuk menghitung pola BadRAM.

Test 8 [Memindahkan inversi, tepukan 32 bit]

Ini adalah variasi dari algoritma inversi bergerak yang menggeser pola data yang tersisa satu bit untuk setiap alamat yang berurutan. Posisi bit awal digeser ke kiri untuk setiap lintasan. Untuk menggunakan semua kemungkinan pola data, 32 lintasan diperlukan. Tes ini cukup efektif dalam mendeteksi kesalahan data sensitif tetapi waktu pelaksanaannya lama.

Tes 9 [Urutan angka acak]

Tes ini menulis serangkaian angka acak ke dalam memori. Dengan mengatur ulang seed untuk nomor acak, urutan nomor yang sama dapat dibuat untuk referensi. Pola awal diperiksa dan kemudian dilengkapi dan diperiksa lagi pada pass berikutnya. Namun, tidak seperti tes menulis inversi bergerak dan memeriksa hanya dapat dilakukan di arah depan.

Tes 10 [Modulo 20, satu & nol]

Menggunakan algoritma Modulo-X akan mengungkap kesalahan yang tidak terdeteksi dengan memindahkan inversi karena gangguan cache dan buffering dengan algoritma. Seperti halnya pengujian, satu-satunya dan nol digunakan untuk pola data.

Uji 11 [Uji sedikit pudar, 90 mnt, 2 pola]

Tes sedikit pudar menginisialisasi semua memori dengan pola dan kemudian tidur selama 5 menit. Kemudian memori diperiksa untuk melihat apakah ada bit memori yang berubah. Semua satu dan semua pola nol digunakan.

Karena bad sector terkadang bekerja dan tidak bekerja di lain waktu, saya sarankan membiarkan MemTest menjalankan beberapa lintasan. Lulus penuh adalah seri uji lengkap yang telah lulus. (Seri tes di atas 1-11) Semakin banyak operan yang Anda dapatkan tanpa kesalahan, semakin akurat menjalankan MemTest Anda. Saya biasanya berlari sekitar 5 pass untuk memastikan.

Hitungan kesalahan untuk memori sehat harus 0. Setiap angka di atas 0 dapat mengindikasikan sektor yang rusak / rusak.

Hitungan kesalahan ECC hanya harus diperhitungkan saat ECCdiatur ke off. ECC adalah singkatan dari Memori kode koreksi kesalahan dan ini merupakan mekanisme untuk mendeteksi dan memperbaiki bit yang salah dalam keadaan memori. Ini dapat dibandingkan sedikit dengan pemeriksaan paritas yang dilakukan pada RAID atau media optik. Teknologi ini cukup mahal dan kemungkinan hanya akan ditemui dalam pengaturan server. Hitungan ECC menghitung berapa banyak kesalahan yang telah diperbaiki oleh mekanisme ECC memori. ECC seharusnya tidak harus dipanggil untuk RAM yang sehat, sehingga jumlah kesalahan ECC di atas 0 juga dapat menunjukkan memori buruk.


Penjelasan kesalahan

Contoh Memtest yang mengalami kesalahan. Ini menunjukkan sektor / alamat mana yang gagal.

Layar memtest dengan kesalahan

Kolom pertama ( Tst ) menunjukkan tes mana yang gagal, nomornya sesuai dengan nomor tes dari daftar yang telah disebutkan di atas. Kolom kedua ( Lulus ) menunjukkan jika tes itu telah lulus. Dalam contoh ini, pengujian 7 tidak memiliki lintasan.

Kolom ketiga ( Alamat Gagal ) menunjukkan bagian memori mana yang memiliki kesalahan. Bagian seperti itu memiliki alamat, seperti alamat IP, yang unik untuk bagian penyimpanan data itu. Ini menunjukkan alamat mana yang gagal dan seberapa besar potongan data. (0,8MB dalam contoh)

Kolom keempat ( Baik ) dan kelima ( Buruk ) menunjukkan data yang ditulis dan apa yang diambil masing-masing. Kedua kolom harus sama dalam memori yang tidak salah (jelas).

Kolom keenam ( Err-Bits ) menunjukkan posisi bit tepat yang gagal.

Kolom ketujuh ( Hitung ) menunjukkan jumlah kesalahan berurutan dengan alamat yang sama dan bit yang gagal.

Akhirnya, yang terakhir, kolom tujuh ( Chan ) menunjukkan saluran (jika banyak saluran digunakan pada sistem) di mana strip memori berada.


Jika ditemukan kesalahan

Jika MemTest menemukan kesalahan, metode terbaik untuk menentukan modul mana yang salah tercakup dalam pertanyaan Pengguna Super ini dan jawaban yang diterima:

Gunakan proses eliminasi - hapus setengah dari modul dan jalankan tes lagi ...

Jika tidak ada kegagalan, maka Anda tahu bahwa kedua modul ini baik, jadi kesampingkan dan uji lagi.

Jika ada kegagalan, maka potong menjadi setengah lagi (turun ke salah satu dari empat modul memori sekarang) kemudian uji lagi.

Tetapi, hanya karena satu gagal dalam tes, jangan menganggap yang lain tidak gagal (Anda bisa memiliki dua modul memori yang gagal) - di mana Anda telah mendeteksi kegagalan dengan dua modul memori, ujilah masing-masing dari keduanya secara terpisah setelahnya .

Catatan penting: Dengan fitur seperti interleaving memori, dan skema penomoran soket modul memori yang buruk oleh beberapa vendor motherboard, mungkin sulit untuk mengetahui modul mana yang diwakili oleh alamat yang diberikan.


Terima kasih untuk penjelasannya! Bisakah Anda menjawab bagaimana mencari tahu modul RAM yang tepat sesuai dengan kesalahan? Saya memiliki Alamat Gagal sama dengan 000c34e98dc - 3124.9MB. Mengapa ukuran potongan besar? Saya memiliki modul 2x1Gb dan 2x2Gb di PC saya. Bagaimana cara menemukan yang menyebabkan kegagalan?
Mikhail

@Mikhail Saya ingin merujuk Anda ke pertanyaan ini dan jawaban yang diterima: superuser.com/questions/253875/…
BloodPhilia

0 kesalahan tidak berarti RAM yang rusak, saya memiliki kasus di mana RAM stick lulus memtest dengan skor 100% dan hanya dengan menggantinya saya bisa menyelesaikan masalah yang rumit.
Orang Brasil itu,

3
Angka dalam MB setelah alamat hex bukan ukuran kesalahan, itu adalah lokasi kesalahan dalam MB. Saya cukup yakin bahwa ukuran satu kesalahan akan selalu menjadi satu kata, karena itu adalah ukuran dari apa yang ditulisnya ke memori.
Jarryd

6

Jumlah Kesalahan

Saat menjalani tes, jika memori gagal untuk salah satu tes, itu akan menambah jumlah kesalahan. Jika saya ingat dengan benar, itu menghitung jumlah alamat yang gagal dalam pengujian.

Jumlah Kesalahan ECC

Memori ECC adalah jenis chip memori khusus yang digunakan untuk menjaga agar data tidak rusak. ECC ErrsKolom Anda menghitung berapa banyak masalah yang diperbaiki oleh ECC.

(ECC lambat dan mahal dan pada dasarnya untuk sistem mission-critical yang tidak dapat diganggu untuk menukar RAM.)

Nomor Tes

Memtest melakukan berbagai jenis tes pada memori Anda, yang dijelaskan di situs web Memtest86 . Sama seperti terjemahan bahasa Inggris cepat:

Tes 0: Tes Alamat Jalan Kaki

Memtest akan menulis 00000001di lokasi memori pertama, 00000010di berikutnya, dan seterusnya, mengulangi pola ini setiap 8 byte. Kemudian ia membaca memori dan memastikan bahwa nilainya tidak berubah. ( Sumber )

Tes 1 & 2: Tes Alamat Alamat Sendiri

Memtest menulis setiap lokasi memori dengan alamatnya sendiri, dan memeriksa bahwa nilainya tidak berubah.

Tes 1 berurutan, dan uji 2 paralel (yaitu, menggunakan konkurensi).

Tes 3 & 4 Uji Inversi Bergerak

Intinya, tes ini memuat 0s ke dalam memori, dan kemudian

  1. mengambil setiap lokasi memori (mulai dari lokasi pertama / terendah),
  2. dan menulis kebalikan dari pola (saya akan percaya itu agak BUKAN, tapi saya tidak dapat menemukan dokumentasi tentang itu).

Tujuannya di sini adalah mencoba menguji setiap bit dan bit-bit yang berdekatan "setiap kemungkinan kombinasi 0s dan 1s".

Tes 3 tidak menggunakan konkurensi, sedangkan tes 4 tidak.

Tes 5: Memindahkan Inversi, Pat 8-bit

Ini melakukan metode inversi bergerak lagi, tapi kali ini dengan 1 berjalan dari uji 0 dalam blok 8-bit.

Tes 6: Inversi Bergerak, Pola Acak

Memtest menggunakan angka acak, bukan semua 0 atau 1 berjalan.

Tes 7: Blokir bergerak

Ini menyenangkan. Ini memuat pola ke dalam memori, memindahkannya dalam blok 4MB, dan memverifikasinya.

Tes 8: Inversi Bergerak, Pat 32-bit

Sama seperti tes 5, tetapi menggunakan blok 32-bit sebagai gantinya. Yang ini sebenarnya memuat setiap kemungkinan nilai 32-bit di setiap lokasi.

Tes 9: Angka Acak

Yang ini memuat angka pseudo-acak ke dalam memori dan memverifikasi. Yang keren tentang generator angka pseudo-acak adalah bahwa itu tidak terlalu acak (jika Anda pernah menjalankan printf("%d", rand());program C tanpa seeding dan mendapatkan 41 oh-begitu-acak, Anda tahu apa yang saya maksud). Jadi itu memverifikasi dengan mengatur ulang seeder angka acak dan menjalankan generator lagi.

Tes 10: Modulo-X

Setiap 20 lokasi, ia menulis pola (semua 0s atau semua 1s) dan menulis komplemen di semua lokasi lain, lalu memverifikasi.

Tes 11: Uji Bit memudar

Yang ini memuat RAM dengan semua 1s (dan sekali lagi dengan semua 0s), menunggu 5 menit, dan melihat apakah ada perubahan nilainya.


6

Nomor tes: jumlah tes khusus yang menjalankan memtest saat ini. Ada banyak dari mereka.

Count of error: Jumlah kesalahan memori yang ditemui

Kesalahan ECC: Jumlah kesalahan yang diperbaiki oleh ECC. Chipset / memori Anda tidak memiliki ECC, jadi nomor ini tidak masalah.

Jika memori Anda memiliki sejumlah kesalahan di atas 0, Anda akan ingin menggantinya.

EDIT: Tes adalah pola yang berbeda yang memtest menulis ke memori. Itu menulis pola yang berbeda ke dalam memori dan membacanya kembali untuk memeriksa kesalahan, dan menggunakan pola yang berbeda untuk dapat menguji semua keadaan semua bit.

Hitungan menunjukkan berapa kali hasil membaca kembali ke memtest tidak cocok dengan apa yang ditulisnya ke dalam memori, menandakan bahwa ada kesalahan dalam potongan memori yang diuji.

ECC adalah teknologi koreksi kesalahan yang dibangun ke dalam chip memori untuk server dan workstation. Kebanyakan dekstops tidak mendukung modul memori dengan ECC bawaan. Hampir semua server / workstation memiliki dukungan untuk itu, dan biasanya memerlukannya. Jumlah kesalahan yang diperbaiki oleh ECC adalah jumlah kesalahan yang berhasil diperbaiki oleh chip ECC.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.