현재 Asus M5A97 Pro 마더보드(AMD 970 칩셋, FX-6100 CPU)에 설치되어 있는 비ECC RAM을 교체하기 위해 일부 ECC RAM을 구입할 계획입니다.
램을 설치한 후,RAM의 ECC 기능이 제대로 작동하는지 어떻게 알 수 있나요?
dmidecode --type memory
각 RAM 스틱이 현재 인쇄하는 내용을 고려했습니다 .
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
(먼저 바이트당 1비트의 ECC를 사용하고 싶습니다. 데이터 너비에는 여전히 64비트이지만 읽기에는 총 너비가 72비트입니다.)
ECC가 유효한지 여부를 결정하는 데 사용할 수 있습니까? 아니면 dmidecode 수준이 너무 낮은가요? 그 밖에 무엇을 사용할 수 있습니까(기다리고 로그에 ECC 오류가 나타나는지 확인하는 것 외에는 작동 중임을 나타내지만 작동하지 않는다는 의미는 아닙니다)?
고쳐 쓰다:그런 다음 edac-utils에 대해 생각했습니다. 그것들을 설치하면 얻을 수 있습니다 Not enabling Memory Error Detection and Correction since EDAC_DRIVER is not set
. 그러면 edac-util
실행 파일이 제공됩니다 edac-ctl
. 그 중 하나를 이 목적으로 사용할 수 있습니까?
답변1
것 같다당신에게 말할 확실한 방법은 없습니다, 그러나 여러 가지 방법으로 일종의 답변을 제공할 수 있습니다. 분명히 ECC가 작동하고 있다는 것을 알려주는 방법을 찾을 때까지 다양한 방법을 시도해야 합니다.
나로서는메모리 테스트 86+ 4.20ECC On으로 구성하더라도 ECC RAM을 처리하고 있다는 사실을 인식할 수 없습니다. 여전히 ECC: Disabled
IMC 라인에 보고됩니다. 아직 새 버전을 사용해 보지 않았습니다. 그러나 (아마도 edac-utils를 설치한 후 불행히도 기본적으로 두 가지를 동시에 수행했습니다) Linux는 부팅 로그에 다음과 같이 보고합니다(몇 가지 다른 항목과 함께 흩어져 있음).
[ 4.867198] EDAC MC: Ver: 2.1.0
...
[ 4.874374] MCE: In-kernel MCE decoding enabled.
[ 4.875414] AMD64 EDAC driver v3.4.0
[ 4.875438] EDAC amd64: DRAM ECC enabled.
...
[ 4.875542] EDAC amd64: CS0: Unbuffered DDR3 RAM
[ 4.875545] EDAC amd64: CS1: Unbuffered DDR3 RAM
[ 4.875546] EDAC amd64: CS2: Unbuffered DDR3 RAM
[ 4.875548] EDAC amd64: CS3: Unbuffered DDR3 RAM
이것은 아주 좋은 징조입니다. 수동으로 수행하면 /etc/init.d/edac restart
유사한 로그 항목이 생성되지 않으며 몇 번의 재부팅 전 이전 로그를 살펴보면 다음과 같습니다.
[ 13.886688] EDAC MC: Ver: 2.1.0
[ 13.890389] MCE: In-kernel MCE decoding enabled.
[ 13.891082] AMD64 EDAC driver v3.4.0
[ 13.891107] EDAC amd64: DRAM ECC disabled.
[ 13.891116] EDAC amd64: ECC disabled in the BIOS or no ECC capability, module will not load.
[ 13.891117] Either enable ECC checking or force module loading by setting 'ecc_enable_override'.
[ 13.891118] (Note that use of the override may cause unknown side effects.)
dmidecode --type memory
두 가지 매우 강력한 표시도 제공됩니다: 물리적 메모리 배열의 "오류 수정 유형" 속성(그러나 어떤 이유로비 ECC RAM에서도 동일하게 표시됩니다., 따라서 이는 메모리 기능보다는 마더보드 지원과 관련이 있을 수 있습니다.
Handle 0x0026, DMI type 16, 23 bytes
Physical Memory Array
Location: System Board Or Motherboard
Use: System Memory
Error Correction Type: Multi-bit ECC
각 저장 장치의 총 너비와 데이터 너비입니다(추가 비트는 ECC용입니다).
Handle 0x0028, DMI type 17, 34 bytes
Memory Device
Array Handle: 0x0026
Error Information Handle: Not Provided
Total Width: 72 bits
Data Width: 64 bits
답변2
서버/PC에 대한 콘솔 액세스 권한이 있고 재부팅할 수 있는 경우 매우 간단하고 효과적인 방법이 있습니다.기억력 테스트 86+
이 멋진 도구는 메모리에 ECC가 활성화되어 있는지 빠르게 보여줍니다. 또한 실제 테스트를 할 때 ECC 검증도 수행한다고 생각합니다.
다음은 (약간 오래된) 스크린샷입니다.
답변3
실제 하드웨어에 대한 경험을 요약해 보겠습니다. M5A 마더보드는 없지만 AMD 칩셋을 탑재한 M4A 마더보드가 2개 있습니다.
오전 3시
지금 몇 시지:
- M4A8xx 마더보드는 공식적으로 ECC를 지원합니다.
- AMD Phenom II 및 Athlon II는 ECC를 지원합니다. (다른 사람들은 작동할 수도 있음)
- AMD Phenom 칩은 "edac_mce_amd" 모듈을 통해 오류 보고를 지원합니다. 이 모듈은 ECC 없이 작동하며 캐시 또는 기타 CPU 관련 오류를 보고합니다.
- RAM ECC는 "amd64_edac"을 통해 지원됩니다.
나는 이 시점에서 2년 넘게 ECC RAM을 갖춘 M4A 보드를 사용해 왔지만 어떤 버그 보고서도 본 적이 없습니다. 일부 마더보드는 수정 가능한 오류(CE)를 보고하지 않는 것 같습니다. ECC 없이 불안정한 타이밍을 설정한 후 활성화하여 제대로 작동하는지 확인하는 것이 좋습니다. Memtest86을 사용할 수 있지만 해당 소프트웨어는 ECC 이벤트를 보고하지 않으며 ECC가 활성화된 상태에서 RAM이 이제 안정적이라는 것만 표시합니다. "mce" 부팅 매개변수에 전달된 커널 매개변수에 관계없이 커널 자체는 세부 정보 없이 메시지만 표시합니다.
[Hardware error] Machine Check Exception
이는 /sys의 "edac" 항목에도 기록되지 않습니다. 테스트를 통해 판단하면 이러한 오류는 수정될 것이지만 수정 불가능한 오류는 어떻게 처리될지 모르겠습니다.
또한 이러한 Asus 마더보드는 CPU 버그와 관련된 오류를 보고하지 않는 것 같습니다. 저는 깨진 ASRock 마더보드가 작동 중지되기 시작했지만 UE로 인해 이를 OS에 보고했을 때 처음으로 이 기능을 알게 되었습니다. 호환 보드에서 이 정보는 다음 형식으로 커널 메시지에 표시됩니다.
[Hardware error] Machine Check Excpetion logged
[Hardware error] ERROR DETAILS, ETC, ETC
이는 MCE 로그에 기록되지 않지만 커널에 의해 독점적으로 처리됩니다. (edac_mce_amd 모듈) 이는 버퍼에 있거나 메모리를 손상시키는 프로세스 종료와 같은 다른 옵션을 사용하는 경우 수정되지 않은 오류를 삭제할 수 있기 때문에 유용합니다.
이러한 Asus 마더보드에서는 CPU 오류 보고작동하지 않습니다. PSU나 마더보드 VRM이 손상되어 오류가 발생하기 시작하면 일부 데이터가 손상될 수 있기 때문에 이는 매우 좋지 않습니다. 정기적으로 CPU 안정성을 테스트하지 않으면 사용하지 않을 것입니다.
오전 4시
ASUS AM4 마더보드에서 이전 버전은 AM3처럼 작동했지만 메모리 오류 보고는 제대로 작동했습니다. /sys를 읽고 오류 수를 얻거나 커널 로그를 볼 수 있습니다. 현재 BIOS에서는 RAS 데몬을 설치하고 "ras-mc-ctl" 명령을 사용하여 오류 수를 읽어야 합니다.
이러한 플랫폼에서는 CPU 오류 보고 및 처리를 테스트하지 않았습니다.