Solusi 1:
mcelog
akan memantau pengontrol memori dan melaporkan peristiwa kesalahan memori ke syslog, dan dalam beberapa konfigurasi dapat offline halaman memori buruk. Ini, tentu saja, selain penggunaannya yang biasa untuk memantau pengecualian pemeriksaan mesin dan berbagai kesalahan perangkat keras lainnya.
Sebagian besar distribusi Linux memiliki layanan yang disiapkan untuk menjalankannya sebagai daemon, mis. untuk EL 6:
chkconfig mcelog on
service mcelog start
Solusi 2:
Kernel Linux mendukung fitur deteksi dan koreksi kesalahan (EDAC) dari beberapa chipset. Pada sistem yang didukung dengan ECC, status pengontrol memori Anda dapat diakses melalui sysfs:
/sys/devices/system/edac/mc
Pohon direktori di bawah lokasi tersebut harus sesuai dengan perangkat keras Anda, mis.:
/sys/devices/system/edac/mc/mc0/csrow2/power
/sys/devices/system/edac/mc/mc0/csrow0/power
/sys/devices/system/edac/mc/mc0/dimm2/power
/sys/devices/system/edac/mc/mc0/dimm0/power
/sys/devices/system/edac/mc/mc1/power
...
Bergantung pada perangkat keras Anda, Anda mungkin harus memuat driver edac yang benar secara eksplisit, cf.:
find /lib/modules/$(uname -r) -name '*edac*'
edac-utils
package menyediakan frontend baris perintah dan pustaka untuk mengakses data tersebut, misalnya:
edac-util -rfull
mc0:csrow0:mc#0memory#0:CE:0
mc0:csrow2:mc#0memory#2:CE:0
mc0:noinfo:all:UE:0
mc0:noinfo:all:CE:0
mc1:noinfo:all:UE:0
mc1:noinfo:all:CE:0
Anda dapat menyiapkan semacam cron-job yang memanggil eac-util
secara berkala dan memasukkan hasilnya ke dalam sistem pemantauan Anda, tempat Anda kemudian dapat mengonfigurasi beberapa notifikasi.
Selain itu, menjalankan mcelog
umumnya adalah ide yang baik. Bergantung pada sistem, tetapi kesalahan ECC yang tidak dapat diperbaiki/dapat diperbaiki kemungkinan juga dilaporkan sebagai pengecualian pemeriksaan mesin (MCE). Maksud saya, bahkan periode singkat pelambatan CPU karena suhu yang lebih tinggi dilaporkan sebagai MCE.
Solusi 3:
Ini tergantung pada perangkat keras server Anda. Kotak putih atau sistem Supermicro akan menangani ini secara berbeda dari Dell, HP, atau IBM...
Salah satu fitur nilai tambah dari server kelas atas adalah adanya tingkat integrasi perangkat keras/OS. Server yang lebih baik akan melaporkan apa yang Anda cari sebagai bagian dari agen manajemen dan/atau solusi manajemen out-of-band (ILO, DRAC, IPMI).
Anda harus menggunakan alat asli platform perangkat keras Anda.
Kutipan dari server HP ProLiant yang menjalankan Linux dan agen Manajemen HP:
Trap-ID=6056
ECC Memory Correctable Errors detected.
dan
Trap-ID=6052
Advanced ECC Memory Engaged
atau yang lebih parah
Trap-ID=6029
A correctable memory log entry indicates a memory module needs to be
replaced.
atau yang terburuk... Mengabaikan kesalahan selama 6 hari hingga server mogok karena RAM buruk
0004 Repaired 22:21 12/01/2008 22:21 12/01/2008 0001
LOG: Corrected Memory Error threshold exceeded (Slot 1, Memory Module 1)
0007 Repaired 02:58 12/07/2008 02:58 12/07/2008 0001
LOG: POST Error: 201-Memory Error Single-bit error occured during
memory initialization,
Board 1, DIMM 1. Bank containing DIMM(s) has been disabled.
0008 Repaired 19:31 12/08/2009 19:31 12/08/2009 0001
LOG: ASR Detected by System ROM
Ini dicatat, ditambah jebakan SNMP dan email dikirim.
Secara umum, Anda akan melihat Pengecualian Pemeriksaan Mesin di buffer ring kernel, sehingga Anda dapat memeriksa dmesg
atau jalankan mcelog. Dalam pengalaman saya dengan peralatan Supermicro tanpa IPMI, itu tidak menangkap semuanya, dan saya masih memiliki kesalahan RAM yang lolos dan menyebabkan pemadaman. Sayangnya, hal ini menyebabkan kebijakan pembakaran RAM kuno sebelum penerapan sistem.
Solusi 4:
rasdaemon
paket dibuat sebagai pengganti edac-tools
, dan kernel yang lebih baru bahkan tidak mendukung edac-tools
atau mcelog
.
Pembaruan driver kernel linux EDAC mengubah cara penghitung kesalahan memori dikelola di ruang pengguna, jadi edac-tools
dan mcelog
secara efektif tidak digunakan lagi.