RAM'in ECC modunda çalışıp çalışmadığını nasıl kontrol edebilirim?


11

İşlemciyi değiştirdiğimden beri bu yazıyı güncelledim, ancak sorumun özü (ve ne yazık ki sonuçlar da) aynı.


İlk FreeNAS kutumu oluşturdum ve kritik verileri depolamak istediğim için ECC RAM kullanmak istedim. Bütçede olduğum için, hala ECC RAM'i destekleyecek en uygun fiyatlı çözümü bulmak istedim.

Biraz araştırma yaptıktan sonra, bir anakart, bellek ve ECC'yi destekleyen bir CPU'ya ihtiyacım olduğunu öğrendim. Seçtiğim anakart C232 yongaseti, DDR4 ve LGA1151 soketi olan "Gigabyte X150M-Pro ECC".

Ayrıca Kingston tarafından "KVR21E15S8K2 / 8" model numarasına sahip iki DIMM kiti aldım ( teknik özellik belgesi ). Gigabyte test edilmiş bellek modüllerinin bir listesini yayınladı ve modüllerim çalışan ECC ( desteklenen modüllerin listesi) ile destekleniyor gibi görünüyor .

RAM etiketi

Bütçede olduğum için ECC'yi destekleyen uygun fiyatlı bir Skylake CPU'ya ihtiyacım vardı. Intel'e göre Celeron G3900 ECC'yi destekliyor, ben de onunla gittim.

Bilgisayarı kurduktan sonra, sistemimin gerçekten ECC bellekle çalıştığını ve anakartın BIOS'una girdiğini doğrulamak istedim. Çeşitli internet sitelerinden, bazı anakartların ECC'nin çalışıp çalışmadığını anlaması gereken özel bir bölümü olduğunu öğrendim , ancak anakartım buna sahip görünmüyor. Tüm menüleri kontrol ettim ve benzer bir bölüm bulamadım.

Biraz daha araştırma yaptıktan ve Unix & Linux stackexchange üzerinde sorunumu çözmeyen bir yazı bulduktan sonra . Anlatabildiğim memtest86+kadarıyla "ECC" değerini bile göstermeyen en son denedim . Puget sistemlerinin kullandığı , "ECC: off" u gösteren eski 4.20 sürümünü denedim . Ancak daha önce bahsedilen yazıyı okuduktan sonra, gerçeği söylediğinden şüpheliyim (belki de bu yüzden özellik kaldırıldı?). Her iki versiyon da DIMM'in doğru hızını ve gecikmesini okumamıştı memtest86+.

memtest86 + ekran görüntüsü

Bir diğer popüler yolu ECC çalışıyorsa, sorunu oldu, öğrenmek için dmidecode -t memorykomut ve okunacaktır Total Widthve Data Width. Sonuçlarım sırasıyla 128 Bitsve 64 Bitsidi. Çıktının bir kısmı, anahtar / değer çiftine sahip bellek dizisi hakkında ayrıntılar gösterdi Error Correction Type: Single-bit ECC.

Ben bekliyordum 72 bitsiçin Total Widthbunu çift kanalla ilgili olabileceğini düşündüm ve çift kanal önleyecektir iki komşu yuvalara bellek modüllerini taşındı ama sonuç aynıydı bu yüzden. İşte tam çıkış arasında dmidecode -t memory.

Puget sistemlerinin yayınladığı ilginç C-programını bile denedim , ancak sonuç 0ECC desteği olmadığını gösterdi.

Şimdi Intel'in kendi web sitesindeki verilerin doğru olduğundan ve CPU'mun aslında ECC'yi desteklemediğinden şüphe etmeye başlıyorum. Hem bellek hem de anakart özellikle "ECC" ile markalı, bu yüzden bunları ekarte edebilirim.

BIOS sürümünün ECC'yi etkinleştirmek için bir güncellemeye ihtiyacı var mı (şu anda yok) veya ECC aslında zaten çalışıyor mu ve doğrulayamadım mı? Yoksa ECC belleği çalıştırmak ve Intel'in web sitesinin yanlış / yanıltıcı olması durumunda CPU seçimim yanlış mı?

CPU'm yanlış bir seçim olduğu ortaya çıkarsa, bir "bütçe ECC CPU" için bir sonraki en iyi seçim ne olurdu?

GÜNCELLEME: Sistemimin ECC etkinken gerçekten çalışıyor olabileceğine dair yeni bir işaret gördüm ve dmidecodearaç sadece garip veriler rapor ediyor. FreeNAS forumunda Dusan kullanıcısı sunucu sınıfı donanım kullanıyor (SuperMicro MB, Xeon CPU, Kingston DIMM) ve benzer bir çıktıya sahip 128 Bits. Ama eğer gerçekten işe yarıyorsa, kendinden emin olmadığını yazdı.

GÜNCELLEME 2: Bu soruya verdiği yanıtta yagmoth555'in de belirttiği gibi, anakartımın sadece Xeon işlemcilerle ECC'yi desteklediği görülüyor, ancak notun kopyalanan önceki kılavuzlardan bir kalıntı olduğunu düşündüm. Sanırım bu bir Xeon işlemciye bakmam gerektiği anlamına geliyor ..: - /


GÜNCELLEME 3: Tabii ki ECC'yi destekleyen ve kılavuzdaki gereksinimi karşılaması gereken bir Xeon E3-1220v5 aldım. ECC işlevselliğini kontrol etmek için tüm testleri tekrar yaptım ve sonuçlar temel olarak aynı:

ecc_check ve dmidecode

Puget Systems'daki yorumlardan, ecc_check.cprogramın Xeon ve Core i7 işlemcilerde çalışmadığı da anlaşılıyor ..: - /

memtest86+Bu sefer biraz daha kontrol ettim ve DDR4'ü veya C232 yonga setini desteklemediğinden oldukça eminim, çünkü sadece yanlış hız ve zamanlamaları değil, aynı zamanda kurulu DDR4 yerine DDR3'ü de rapor ediyor. Ancak, işlemci gayet iyi tespit etti, ancak yine de her iki sürümüyle de aynı sonucu aldım memtest86+:

memtest86 + v5.01

Sürüm 4.20 işlemcimi düzgün algılamıyor bile ..

memtest86 + v4.20

ECC için başka nasıl test edebileceğime dair herhangi bir fikir çok takdir edilmektedir.


Eğer makine ECC'yi desteklemediyse, başlamaz :)
Yetimler

1
@Orfans Anakartı bulmadan önce, Z170 vb. Gibi diğer yonga setlerinde "ECC desteği" iddiasında bulunan bazı daha ucuz olanları gördüm. Durumumun böyle olup olmadığını merak ediyorum.
comfreak

ECC genellikle POST bölümünde görürsünüz. Yükleme ekranını görmek için önyükleme sırasında ESC tuşuna basabilir misiniz?
yagmoth555

Memtest86.com dan da memtest deneyin
sitrin

@comfreak hmm, haklısın.
Yetimler

Yanıtlar:


4

Bugün bir olduğunu öğrendim ticari versiyonu arasında memtest86(olmadan +Passmark itibaren) teklifler minnetle ECC-Çekler dahil çok özgür bir versiyonu olduğunu.

Ayrıca DDR4 ve diğer tüm özelliklerini de destekler memtest86+.

Sonuçım ECC desteği için olumlu görünüyor, bu yüzden "geleneksel" araçlarla aynı sonucu almayı umsam da bunu yaptım dmidecode.

memtest86 sonucu


Birisi daha sonra bu yazıya rastlarsa ve daha fazla doğrulama ve teste ihtiyaç duyarsa, ECC yeteneklerini gerçekten test etmek için ECC hata enjeksiyonunu destekleyen ücretli bir sürüm de sunar.


3

Düzenlendi : Anakart kılavuzunuzdan kötü yeni ...:

resim açıklamasını buraya girin


BSD / linux'u çalıştırdığınızı görüyorum, OS'de çalıştırıyorsunuz; ( FreeNAS için kullanılabilir )

dmidecode -t 17

Şunun gibi bir çıktınız olmalıdır:

dmidecode 2.12 SMBIOS 2.5 present.

Handle 0x1100, DMI type 17, 28 bytes Memory Device Array Handle: 0x1000 Error Information Handle: Not Provided Total Width: 72 bits Data Width: 64 bits Size: 2048 MB Form Factor: DIMM Set: 1 Locator: DIMM1 Bank Locator: Not Specified Type: DDR2 Type Detail: Synchronous Speed: 667 MHz Manufacturer: AD00000000000000 Serial Number: 00002062 Asset Tag: 010839 Part Number: HYMP125P72CP8-Y5 Rank: 2

Toplam Genişlik: 72 bit Aradığınız parçasıdır.

Windows sisteminde çalıştırabilirsiniz

wmic MEMORYCHIP get DataWidth,TotalWidth

// ECC Bellek Veri Genişliği Toplam Genişlik 64 72

// ECC Dışı Bellek Veri Genişliği Toplam Genişlik 64 64

FreeBSD ve Windows için cevap oradan aldı


Temelde bu zaten denedim dmidecode -t memoryve TotalData
sonucum

@comfreak dmidecode -t 17 ne döndürür?
yagmoth555

Temelde aynı çıktıyı alıyorumdmidecode -t memory : slexy.org/view/s2JimvAzl6
comfreak

@comfreak iyi, 128 benim için hiçbir anlam ifade etmiyor. ECC (ayna ?? 64 + 64?) için genellikle 64 ecc olmayan veya 64b + 8b (72) 'dir. ancak arama 'dmidecode toplam 128 genişlik' FreeNAS bir sürü sonrası listeye ... çok ./ecc_check.py piton komut dosyası ile ECC saptamaya çalışır gibi görünüyor
yagmoth555

Benim varsayım, bunun çift kanalla ilgili olabileceğiydi, ancak iki modülü iki ayrı kanala koyduğumda bile aynı sonucu elde ettim, yani çift kanalın çalışmaması gerekir.
comfreak

3

Ryzen 7 işlemci kullanarak, bahsi geçen araçların hiçbiri benim için çalışmadı. Ancak yeterince yeni bir Linux çekirdeği ile, edac-utils, edac-ctl ve edac-util'deki araçlar ECC durumunu ve aynı zamanda düzeltilmiş hataların sayısı gibi şeyleri okuyabilir. Çekirdek günlüğü ayrıca dmesg'de "EDAC" içeren bazı bilgiler de içeren satırlar içerecektir. Bu işlevsellik, RAM'in hız aşırtması ve hataların bildirildiğini (yeterince yüksekse) kontrol ederek daha da test edilebilir, bu da gerçekten işe yarayabildiğinin kanıtıdır. Bununla birlikte, bu araçlar hataları rapor etse veya çalışmıyorsa bile, bu sadece ECC durum bilgilerinin okunmasının desteklenmediği anlamına gelir, ECC'nin çalışmadığını kanıtlamanın% 100 güvenilir bir yolu yoktur ...


1
Passmarks memtest86'yı denediniz mi? (
Cevabımda

Çıktınız değişse de, dmesg'deki EDAC bilgilerini kontrol etmek için çalıştırabilirsiniz dmesg | grep EDAC(bunu kök ayrıcalıklarıyla çalıştırmanız gerekebilir). Örneğin, ECC belleği yüklü ve BIOS'ta etkinleştirilmiş Ryzen tabanlı bir sistemde (varsa), şuna benzer bir çizgi görebilirsinizamd64: Node 0: DRAM ECC enabled.
Joe

0

Sunucu olmayan anakartlar ve yonga setleri için yalnızca belirli AMD anakartlar (ASRock gibi) ve tüm AMD yonga setleri ECC sunar.

Intel için ECC'yi yalnızca sunucu Xeon yonga setlerinde kullanılabilir hale getirir. Intel, masaüstü yonga setlerinde ECC'yi devre dışı bırakır.


Bu doğru olabilir, ancak burada sorulan asıl soruya cevap vermez.
comfreak

Op sorusu, xeon olmayan bir Intel yongası çalıştırdığı için geçerlidir. Cevap kontrol edememesidir.
d hee

Örneğin C232 yongaseti bir "masaüstü yongaseti" olduğundan ve ECC'yi desteklediğinden, cevabınızın son cümlesi yanlıştır. Bunun dışında, nasıl kontrol edileceği gibi soru daha geneldir, desteklenip desteklenmediğini bilmiyormuşsunuz gibi.
comfreak
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.