จะตรวจสอบว่า RAM ทำงานในโหมด ECC ได้อย่างไร?


11

ฉันอัปเดตโพสต์นี้ตั้งแต่ฉันเปลี่ยนโปรเซสเซอร์ แต่หลักของคำถามของฉัน (และน่าเสียดายที่ผลลัพธ์เช่นกัน) เหมือนกัน


ฉันสร้างกล่อง FreeNAS แรกและต้องการใช้ ECC RAM เนื่องจากฉันต้องการจัดเก็บข้อมูลสำคัญ เนื่องจากฉันอยู่ในงบประมาณฉันต้องการไปหาทางออกที่เหมาะสมที่สุดที่จะยังคงสนับสนุน ECC RAM

หลังจากทำการวิจัยบางอย่างฉันพบว่าฉันต้องการแผงวงจรหลักหน่วยความจำและ CPU ที่รองรับ ECC เมนบอร์ดที่ฉันเลือกคือ "Gigabyte X150M-Pro ECC" ซึ่งมีชิปเซ็ต C232, DDR4 และซ็อกเก็ต LGA1151

ฉันยังซื้อชุดอุปกรณ์สอง DIMM ที่ผลิตโดย KINGSTON ด้วยหมายเลขรุ่น "KVR21E15S8K2 / 8" ( แผ่นข้อมูลจำเพาะ ) Gigabyte เผยแพร่รายการของโมดูลหน่วยความจำที่ผ่านการทดสอบและดูเหมือนว่าโมดูลของฉันจะรองรับ ECC ที่ใช้งานได้ ( รายการของโมดูลที่รองรับ )

ป้ายกำกับ RAM

เนื่องจากฉันอยู่ในงบประมาณฉันต้องการ Skylake CPU ราคาไม่แพงที่รองรับ ECC ตามIntel Celeron G3900 รองรับ ECC ดังนั้นฉันจึงไปกับมัน

หลังจากสร้างคอมพิวเตอร์ฉันต้องการตรวจสอบว่าระบบของฉันทำงานด้วยหน่วยความจำ ECC และเข้า BIOS ของเมนบอร์ด จากเว็บไซต์อินเทอร์เน็ตหลายแห่งฉันพบว่าเมนบอร์ดบางตัวมีส่วนพิเศษที่ควรบอกว่า ECC ใช้งานได้หรือไม่ แต่มาเธอร์บอร์ดของฉันไม่มี ฉันตรวจสอบเมนูทั้งหมดแล้วและไม่พบหัวข้อที่คล้ายกัน

หลังจากทำวิจัยเพิ่มเติมและพบโพสต์บน Unix & Linux stackexchange ซึ่งไม่ได้แก้ปัญหาของฉัน ฉันพยายามล่าสุดmemtest86+ซึ่งจากสิ่งที่ฉันสามารถบอกได้แม้จะไม่แสดงค่า "ECC" ฉันลองรุ่น 4.20 ที่เก่ากว่าซึ่งระบบ Puget ใช้ซึ่งแสดงว่า "ECC: off" อย่างไรก็ตามหลังจากอ่านโพสต์ที่กล่าวถึงก่อนหน้านี้ฉันสงสัยว่ามันบอกความจริง (อาจเป็นเพราะเหตุใดคุณลักษณะนี้จึงถูกลบออกไป) รุ่นทั้งสองยังไม่ได้อ่านจากความเร็วที่ถูกต้องและความล่าช้าของหน่วยความจำ DIMM memtest86+ซึ่งจะเพิ่มข้อสงสัยของฉันที่มีต่อ

memtest86 + ภาพหน้าจอ

อีกวิธีที่นิยมที่จะหาออกถ้า ECC คือการทำงานก็จะออกdmidecode -t memoryคำสั่งและการอ่านออกและTotal Width Data Widthผลลัพธ์ของฉันถูก128 Bitsและ64 Bitsตามลำดับ Error Correction Type: Single-bit ECCส่วนหนึ่งของการส่งออกพบว่ามีรายละเอียดเกี่ยวกับอาร์เรย์หน่วยความจำที่มีคู่คีย์มูลค่าของ

ผมคาดหวังว่า72 bitsสำหรับTotal Widthดังนั้นฉันคิดว่ามันอาจจะเกี่ยวข้องกับช่องทางคู่และย้ายโมดูลหน่วยความจำในสองช่องที่อยู่ติดกันซึ่งควรป้องกันไม่ให้สองช่องทาง แต่ผลที่ได้ก็เหมือนกัน นี่คือการส่งออกเต็มรูปแบบdmidecode -t memoryของ

ฉันลองใช้โปรแกรม C ที่น่าสนใจที่ระบบ Puget เผยแพร่ แต่ผลลัพธ์ก็คือ0ไม่ได้ระบุว่ารองรับ ECC

ตอนนี้ฉันเริ่มสงสัยว่าข้อมูลในเว็บไซต์ของ Intel นั้นถูกต้องและ CPU ของฉันไม่รองรับ ECC ทั้งหน่วยความจำและมาเธอร์บอร์ดนั้นมียี่ห้อ "ECC" โดยเฉพาะดังนั้นฉันสามารถแยกสิ่งเหล่านั้นออกได้

เป็นไปได้ไหมว่าเวอร์ชั่น BIOS นั้นจำเป็นต้องมีการอัพเดท (ปัจจุบันไม่มี) เพื่อเปิดใช้งาน ECC หรือ ECC ใช้งานได้จริงแล้วและฉันไม่สามารถตรวจสอบได้? หรือฉันเลือก CPU ผิดถ้าฉันต้องการเรียกใช้หน่วยความจำ ECC และเว็บไซต์ของ Intel ผิด / ทำให้เข้าใจผิด

หากซีพียูของฉันกลายเป็นตัวเลือกที่ผิดตัวเลือกที่ดีที่สุดถัดไปสำหรับ "งบประมาณ ECC CPU" คืออะไร

อัปเดต:ฉันเห็นตัวบ่งชี้ใหม่ว่าระบบของฉันจริงอาจทำงานด้วยการเปิดใช้งาน ECC และdmidecodeเครื่องมือเพียงรายงานข้อมูลแปลก ๆ กว่าฟอรั่ม FreeNAS ผู้ใช้ Dusan ใช้ฮาร์ดแวร์เซิร์ฟเวอร์เกรด (Supermicro MB, CPU Xeon, คิงส์ตัน DIMM) 128 Bitsและมีผลลัพธ์ที่คล้ายกับ แต่เขาเขียนว่าเขาไม่แน่ใจว่าตัวเองถ้ามันใช้งานได้จริง

อัปเดต 2:ตามที่ yagmoth555 พูดถึงในคำตอบของเขาสำหรับคำถามนี้ดูเหมือนว่าเมนบอร์ดของฉันรองรับเฉพาะ ECC ที่ใช้โปรเซสเซอร์ Xeon แม้ว่าฉันคิดว่าโน้ตนั้นเป็นของเดิมจากคู่มือก่อนหน้านี้ที่คัดลอกมา ฉันคิดว่านั่นหมายความว่าฉันต้องหาโปรเซสเซอร์ Xeon .. : - /


อัปเดต 3:ฉันซื้อ Xeon E3-1220v5 ซึ่งแน่นอนว่ารองรับ ECC และควรเป็นไปตามข้อกำหนดจากคู่มือ ฉันทำการทดสอบทั้งหมดอีกครั้งเพื่อตรวจสอบการทำงานของ ECC และผลลัพธ์นั้นเหมือนกันโดยทั่วไป:

ecc_check และ dmidecode

จากความคิดเห็นที่ Puget Systems ดูเหมือนว่าecc_check.cโปรแกรมจะไม่ทำงานบนโปรเซสเซอร์ Xeon และ Core i7 .. : - /

ฉันเช็คเอาท์memtest86+มากกว่านี้ในเวลานี้และฉันค่อนข้างแน่ใจว่ามันไม่รองรับ DDR4 หรือชิปเซ็ต C232 เลยเพราะมันรายงานไม่เพียง แต่ความเร็วและเวลาที่ไม่ถูกต้อง แต่ยัง DDR3 แทนที่จะติดตั้ง DDR4 อย่างไรก็ตามมันตรวจจับโปรเซสเซอร์ได้ดี แต่ฉันยังคงได้ผลลัพธ์ที่เหมือนกันกับทั้งสองเวอร์ชันmemtest86+:

memtest86 + v5.01

เวอร์ชั่น 4.20 ตรวจไม่พบโปรเซสเซอร์ของฉันอย่างถูกต้อง ..

memtest86 + v4.20

ความคิดเห็นใด ๆ เกี่ยวกับวิธีอื่นที่ฉันสามารถทดสอบสำหรับ ECC ได้รับการชื่นชมอย่างมาก


ถ้าเครื่องของคุณไม่รองรับ ECC มันจะไม่เริ่ม :)
เด็กกำพร้า

1
@ ออร์ฟานก่อนที่ฉันจะพบกับเมนบอร์ดฉันเห็นราคาถูกกว่าที่อ้างว่า "สนับสนุน ECC" บนชิปเซ็ตอื่น ๆ เช่น Z170 ฯลฯ ปรากฎว่ามันหมายถึงว่าบอร์ดสามารถทำงานได้ (ไม่ผิดพลาด) กับหน่วยความจำ ECC ดังนั้นฉันสงสัยว่ากรณีของฉันเป็นเช่นนั้น
comfreak

หาก ECC โดยปกติคุณจะเห็นมันในส่วน POST คุณสามารถกด ESC ในระหว่างการบู๊ตเพื่อดูหน้าจอ boit ได้หรือไม่?
yagmoth555

ลอง memtest จาก memtest86.com
citrin

@comfreak อืมคุณพูดถูก
เด็กกำพร้า

คำตอบ:


4

วันนี้ผมพบว่ามีความเป็นเชิงพาณิชย์รุ่นของmemtest86(ไม่+) จาก PassMark ว่าข้อเสนอรุ่นฟรีเกินไปซึ่งรวมถึงขอบคุณ ECC-ตรวจสอบ

นอกจากนี้ยังสนับสนุน DDR4 และคุณสมบัติอื่น ๆ memtest86+ของ

ผลของฉันดูเหมือนจะเป็นในเชิงบวกสำหรับการสนับสนุน ECC ดังนั้นฉันจะเรียกสิ่งนี้ทำถึงแม้ว่าผมหวังที่จะได้รับผลเช่นเดียวกับเครื่องมือ "ดั้งเดิม" dmidecodeเช่น

memtest86 ผลลัพธ์


หากมีคนสะดุดโพสต์นี้ในเวลาต่อมาและต้องการการตรวจสอบเพิ่มเติมและการทดสอบพวกเขายังเสนอรุ่นจ่ายที่รองรับการฉีดข้อผิดพลาด ECC สำหรับการทดสอบความสามารถ ECC จริง


3

แก้ไข : แย่ใหม่จากคู่มือเมนบอร์ดของคุณ ... :

ป้อนคำอธิบายรูปภาพที่นี่


ฉันเห็นคุณเรียกใช้ BSD / linux เรียกใช้ที่อยู่ภายในระบบปฏิบัติการ (ว่างสำหรับFreeNAS )

dmidecode -t 17

คุณควรมีผลลัพธ์เช่น:

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

ความกว้างทั้งหมด: 72 บิตเป็นส่วนหนึ่งที่คุณกำลังมองหา

ในระบบ Windows คุณสามารถเรียกใช้

wmic MEMORYCHIP get DataWidth,TotalWidth

// หน่วยความจำ ECC DataWidth TotalWidth 64 72

// ข้อมูลหน่วยความจำ Non-ECC DataWidth TotalWidth 64 64

คำตอบสำหรับ FreeBSD & Windows นั้นมาจากที่นั่น


นั่นเป็นสิ่งที่ฉันได้ลองไปแล้วdmidecode -t memoryและผลลัพธ์ของฉันคือ 128 บิตTotalและ 64 บิตData
comfreak

@comfreak dmidecode -t 17 คืนค่าอะไร
yagmoth555

โดยทั่วไปฉันจะได้ผลลัพธ์เดียวกันเช่นdmidecode -t memory: slexy.org/view/s2JimvAzl6
comfreak

@comfreak ดี 128 ทำให้ฉันไม่เข้าใจ โดยปกติจะเป็น 64 non ecc หรือ 64b + 8b (72) สำหรับ ECC (mirror ?? 64 + 64?) แต่การค้นหารายการ 'dmidecode ความกว้างทั้งหมด 128' มีจำนวนมากโพสต์ freenas ... ดูเหมือนจะพยายามตรวจจับ ECC ด้วย. /ecc_check.py python script
yagmoth555

ข้อสันนิษฐานของฉันคือมันอาจเกี่ยวข้องกับ dual channel แต่ฉันยังได้ผลลัพธ์เดียวกันเมื่อฉันใส่โมดูลสองตัวในสองช่องสัญญาณแยกกันหมายความว่า dual channel ไม่ควรทำงาน
comfreak

3

การใช้โปรเซสเซอร์ Ryzen 7 ไม่มีเครื่องมือใดที่ใช้งานได้สำหรับฉันเช่นกัน อย่างไรก็ตามด้วยเคอร์เนลลีนุกซ์ที่เพียงพอล่าสุดเครื่องมือใน edac-utils, edac-ctl และ edac-util สามารถอ่านสถานะ ECC และสิ่งต่าง ๆ เช่นจำนวนข้อผิดพลาดที่ถูกแก้ไข บันทึกเคอร์เนลจะมีบรรทัดที่มี "EDAC" ใน dmesg ซึ่งควรให้ข้อมูลบางอย่างเช่นกัน ฟังก์ชั่นนี้สามารถทดสอบเพิ่มเติมได้โดยการโอเวอร์คล็อก RAM และตรวจสอบว่ามีการรายงานข้อผิดพลาด (ถ้าสูงพอ) นั่นเป็นการพิสูจน์ได้มากเท่าที่คุณจะสามารถใช้งานได้จริง อย่างไรก็ตามแม้ว่าเครื่องมือเหล่านี้จะรายงานข้อผิดพลาดหรือไม่ทำงานนั่นหมายความว่าการอ่านข้อมูลสถานะ ECC ไม่ได้รับการสนับสนุนดูเหมือนจะไม่มีวิธีที่เชื่อถือได้ 100% เพื่อพิสูจน์ว่า ECC ไม่ทำงาน ...


1
คุณลองใช้รหัสผ่าน memtest86 หรือไม่? (คนที่ฉันพูดถึงในคำตอบของฉัน)
comfreak

ในขณะที่ผลลัพธ์ของคุณอาจแตกต่างกันไปตรวจสอบข้อมูล EDAC ใน dmesg คุณสามารถเรียกใช้dmesg | grep EDAC(คุณอาจต้องเรียกใช้สิ่งนี้ด้วยสิทธิ์พิเศษของรูท) ตัวอย่างเช่นในระบบที่ใช้ Ryzen ซึ่งติดตั้งและเปิดใช้งานหน่วยความจำ ECC ใน BIOS (ถ้ามี) คุณอาจเห็นบรรทัดที่ดูเหมือนamd64: Node 0: DRAM ECC enabled.
Joe

0

สำหรับเมนบอร์ดและชิปเซ็ตที่ไม่ใช่เซิร์ฟเวอร์เฉพาะเมนบอร์ด AMD เท่านั้น (เช่น ASRock) และชิปเซ็ต AMD ใด ๆ ที่เสนอ ECC

สำหรับ Intel พวกเขาทำให้ ECC พร้อมใช้งานบนชิปเซ็ต Xeon ของเซิร์ฟเวอร์เท่านั้น Intel ปิดใช้งาน ECC บนชิปเซ็ตเดสก์ท็อป


อาจเป็นจริง แต่ไม่ตอบคำถามจริงที่ถามที่นี่
comfreak

มันใช้กับคำถาม op เมื่อเขาใช้ชิปที่ไม่ใช่ xeon Intel คำตอบคือเขาไม่สามารถตรวจสอบได้
วันที่

ประโยคสุดท้ายของคำตอบของคุณไม่ถูกต้องเนื่องจากชิปเซ็ต C232 เป็น "ชิปเซ็ตเดสก์ท็อป" และรองรับ ECC นอกเหนือจากนั้นคำถามทั่วไปมากกว่าเช่นเดียวกับวิธีการตรวจสอบเช่นถ้าคุณไม่ทราบว่าได้รับการสนับสนุนหรือไม่
comfreak
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.