
현재 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 RAM을 다루고 있다는 사실을 깨닫도록 속일 수 없었습니다. ECC On으로 구성하더라도 여전히 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"을 통해 지원됩니다.
이 시점에서 저는 M4A 보드를 ECC RAM으로 2년 이상 실행해 왔지만 오류가 보고되지 않았습니다. 일부 보드는 수정 가능한 오류(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 오류 보고 및 처리를 테스트하지 않았습니다.