768 GiB ECC DDR4 메모리를 갖춘 머신이 있습니다. 모듈 중 하나가 불안정하여 교체해야 합니다. dmesg
다음과 같은 항목으로 가득 차 있습니다.
[Mar25 08:07] mce: [Hardware Error]: Machine check events logged
[ +0.000014] EDAC skx MC1: HANDLING MCE MEMORY ERROR
[ +0.000003] EDAC skx MC1: CPU 0: Machine Check Event: 0x0 Bank 8: 0xdc00008001010092
[ +0.000002] EDAC skx MC1: TSC 0x116da2b2e75b2
[ +0.000001] EDAC skx MC1: ADDR 0x2e9282d900
[ +0.000001] EDAC skx MC1: MISC 0x200801c091001086
[ +0.000004] EDAC skx MC1: PROCESSOR 0:0x50657 TIME 1616659657 SOCKET 0 APIC 0x0
[ +0.000013] EDAC MC1: 2 CE memory read error on CPU_SrcID#0_MC#1_Chan#2_DIMM#0 (channel:2 slot:0 page:0x2e9282d offset:0x900 grain:32 syndrome:0x0 - OVERFLOW err_code:0x0101:0x0092 socket:0 imc:1 rank:1 bg:2 ba:2 row:0xfc0b col:0x40)
그리고 수정 가능한 복구된 ECC 오류가 있습니다.
$ edac-util --report=simple
mc0: Correctable errors: 0
mc0: Uncorrectable errors: 0
mc1: Correctable errors: 270
mc1: Uncorrectable errors: 0
mc2: Correctable errors: 0
mc2: Uncorrectable errors: 0
mc3: Correctable errors: 0
mc3: Uncorrectable errors: 0
Total CE: 270
Total UE: 0
dmidecode
시스템과 메모리에 대한 많은 훌륭한 정보를 보여줬 지만 ,나는 둘 사이의 관계를 이해하지 못한다.(논리)dmesg
출력에 표시된 주소 및dmidecode
(실제 주소).
특히, 커널이 주소에 문제가 있다고 알려주는 것처럼 보이지만 0x289282d900
물리적 주소는 그보다 낮게 제한되므로 이는 논리 주소여야 합니다. 내 시스템의 가장 높은 메모리 매핑 물리적 주소는 다음과 같습니다.
Handle 0x004F, DMI type 19, 31 bytes
Memory Array Mapped Address
Starting Address: 0x09000000000
Ending Address: 0x0BFFFFFFFFF
Range Size: 192 GB
Physical Array Handle: 0x004E
Partition Width: 3
다시 한 번 말씀드리지만, channel:2 slot:0
교체해야 할 항목의 범위를 좁히는 데 큰 도움이 되었지만 dmidecode
목록에는 없습니다.어느채널이 전혀 없지만 전체 출력하다마더보드의 (레이블이 붙은) 슬롯에 해당하는 물리적 주소 범위에 대한 유용한 그림:
$ sudo dmidecode -t memory|grep -i channel
$
다시 말하지만, 오래된 트릭 grep -i 'System RAM' /proc/iomem
도 작동하지 않습니다.
00000000-00000000 : System RAM
00000000-00000000 : System RAM
00000000-00000000 : System RAM
00000000-00000000 : System RAM
00000000-00000000 : System RAM
00000000-00000000 : System RAM
짜증나게도 내 마더보드 설명서에는 실제로 배치 방법( numa
실제로 노드!)이 자세히 나와 있지 않습니다.
어떤 물리적 메모리 스틱에 문제가 있는지 원격으로 확인할 수 있나요?
답변1
이 줄만 있으면 됩니다.
[ +0.000013] EDAC MC1: 2 CE memory read error on CPU_SrcID#0_MC#1_Chan#2_DIMM#0 (channel:2 slot:0
이 기사를 읽으려면:
CPU_SrcID#0=(CPU0)MC#1=(Memory Controller 1
게시 한 목록 edac-util
은 다음과 같습니다.
0-3)Chan#2_DIMM#0=(Would be C0 DIMM).
메모리 채널은 0(A0/A1), 1(B0/B1), 2(C0/C1) 등에서 시작해야 합니다. DIMM0은 이 채널의 기본 슬롯이 됩니다.
동일한 정보를 찾을 수 있어야 합니다.
edac-util -v
UE/CE를 보고합니다.
답변2
메모리 뱅크 인터리빙 및 매핑으로 인해 특정 작업에 어떤 모듈이 사용되는지 찾기가 어렵습니다.
모듈의 절반을 제거하고 문제가 지속되는지 확인하는 것은 어떻습니까? 범인을 찾을 때까지 계속 둘로 나눕니다. 검색 속도를 높이려면 (== boot into)를 실행하세요.기억력 테스트 86+테스트하는 동안 오류가 나타나도록 강제합니다. 많은 Linux 설치 DVD(예: Ubuntu)에는 쉽게 부팅할 수 있는 memtest86+ 이미지가 있습니다.