RAM이 ECC 모드에서 실행 중인지 확인하는 방법


11

프로세서를 교체 한 후이 게시물을 업데이트했지만 내 질문의 핵심 (그리고 불행히도 결과도 동일)입니다.


첫 FreeNAS 박스를 만들고 중요한 데이터를 저장하고 싶을 때 ECC RAM을 사용하고 싶었습니다. 예산이 부족하기 때문에 여전히 ECC RAM을 지원하는 가장 저렴한 솔루션을 원했습니다.

조사를 마친 후에 ECC를 지원하는 마더 보드, 메모리 및 CPU가 필요하다는 것을 알았습니다. 내가 선택한 메인 보드는 C232 칩셋, DDR4 및 LGA1151 소켓이있는 "기가 바이트 X150M-Pro ECC"입니다.

또한 Kingston에서 모델 번호가 "KVR21E15S8K2 / 8"( 사양 시트 ) 인 DIMM 두 개를 구입했습니다 . Gigabyte는 테스트를 거친 메모리 모듈 목록을 발표했으며 내 모듈은 작동하는 ECC ( 지원되는 모듈 목록)에서 지원 되는 것으로 보입니다 .

RAM 라벨

예산이 책정되어 있으므로 ECC를 지원하는 저렴한 Skylake CPU가 필요했습니다. Intel 에 따르면 Celeron G3900은 ECC를 지원하므로 그와 함께갔습니다.

컴퓨터를 구축 한 후 시스템이 실제로 ECC 메모리로 실행되고 있으며 메인 보드의 BIOS에 들어 갔는지 확인하고 싶었습니다. 다양한 인터넷 사이트에서 일부 마더 보드에는 ECC가 작동하는지 여부를 알려주 는 특수 섹션 이 있지만 내 마더 보드에는 그렇지 않은 것 같습니다. 모든 메뉴를 확인했는데 비슷한 섹션을 찾을 수 없습니다.

더 많은 연구를 한 Unix & Linux stackexchange에서 내 문제를 해결하지 못했습니다. 내가 memtest86+말할 수있는 것에서 최신 을 시도했지만 "ECC"라는 가치조차 보여주지 못했습니다. Puget 시스템 에서 "ECC : off"를 표시 하는 이전 4.20 버전 사용해 보았습니다 . 그러나 이전에 언급 한 게시물을 읽은 후에는 그것이 진실을 말하는지 의심합니다 (아마도 기능이 제거 된 이유일까요?). 두 버전 모두 DIMM의 정확한 속도와 대기 시간을 읽지 못하여에 대한 의구심을 추가했습니다 memtest86+.

memtest86 + 스크린 샷

또 다른 인기있는 방법은 ECC가 작동되면, 발행했다 알아내는 dmidecode -t memory명령을하고 읽어 Total WidthData Width. 내 결과는 128 Bits64 Bits각각. 출력의 일부에는 키-값 쌍이있는 메모리 배열에 대한 세부 사항이 표시되었습니다 Error Correction Type: Single-bit ECC.

I는 기대 된 72 bits위해 Total WidthI 그것이 듀얼 채널에 관련 될 수도 생각 듀얼 채널을 방지한다 인접한 두 슬롯에 메모리 모듈을 이동하지만, 그 결과는 동일하므로,. 의 전체 출력 은 다음과 같습니다 dmidecode -t memory.

Puget 시스템이 공개 한 흥미로운 C- 프로그램 을 시험해 보았지만 결과는 0ECC 지원이 없음을 나타 냈습니다 .

이제 인텔 자체 웹 사이트의 데이터가 정확하고 내 CPU가 실제로 ECC를 지원하지 않는다는 것을 의심하기 시작했습니다. 메모리와 마더 보드 모두 "ECC"로 브랜드화되어 있으므로이를 배제 할 수 있습니다.

ECC를 활성화하려면 BIOS 버전에 업데이트가 필요합니까 (현재는 없음) ECC가 실제로 작동하고 있으며이를 확인할 수 없었습니까? 아니면 ECC 메모리를 실행하려고하는데 인텔 웹 사이트가 잘못 / 오도하는 경우 CPU 선택이 잘못 되었습니까?

내 CPU가 잘못된 선택으로 판명되면 "예산 ECC CPU"에 대한 다음 최선의 선택은 무엇입니까?

업데이트 : 좀보고 새로운 표시 실제로 ECC 실행 될 수 내 시스템이 활성화되고 있음을 dmidecode도구 그냥 이상한 데이터를보고합니다. FreeNAS 포럼에서 사용자 Dusan은 서버급 하드웨어 (SuperMicro MB, Xeon CPU, Kingston DIMM)를 사용하며와 비슷한 출력을가집니다 128 Bits. 그러나 그는 실제로 작동한다면 자신이 확실하지 않다고 썼다.

업데이트 2 : yagmoth555 가이 질문 에 대한 답변 에서 언급했듯이 , 내 마더 보드는 Xeon 프로세서와 ECC 만 지원하는 것 같습니다. 제온 프로세서를 살펴 봐야한다는 뜻입니다 .. :-/


업데이트 3 : 물론 ECC를 지원하는 Xeon E3-1220v5를 구입했으며 매뉴얼의 요구 사항을 충족해야합니다. ECC 기능을 확인하기 위해 모든 테스트를 다시 실행했으며 결과는 기본적으로 동일합니다.

ecc_check 및 dmidecode

Puget Systems의 의견에 따르면 ecc_check.cXeon 및 Core i7 프로세서 에서는 프로그램이 작동하지 않는 것 같습니다 . :-/

memtest86+이번에 좀 더 체크 아웃했는데 DDR4 또는 C232 칩셋을 전혀 지원하지 않는다고 확신합니다. 설치된 DDR4 대신 잘못된 속도와 타이밍뿐만 아니라 DDR3 도보 고하기 때문입니다. 그러나 프로세서는 잘 감지되었지만 여전히 두 버전의 동일한 결과를 얻었습니다 memtest86+.

memtest86 + v5.01

버전 4.20도 내 프로세서를 제대로 감지하지 못합니다.

memtest86 + v4.20

ECC를 테스트 할 수있는 방법에 대한 아이디어는 대단히 감사합니다.


기계가 ECC를 지원하지 않으면 시작되지 않습니다. :)
Orphans

1
@Orphans 마더 보드를 찾기 전에 Z170 등과 같은 다른 칩셋에서 "ECC 지원"을 요구하는 더 저렴한 것들을 보았습니다. 보드가 ECC 메모리로 실행될 수 있지만 충돌하지 않고 효과적으로 사용할 수 없다는 것을 의미합니다. 내 사건이 그런 것인지 궁금합니다.
comfreak

ECC가 보통 POST 섹션에 표시됩니다. 부팅하는 동안 Esc 키를 눌러 boit 화면을 볼 수 있습니까?
yagmoth555

memtest86.com에서 memtest를 사용해보십시오
citrin

@ comfreak 흠, 당신이 맞아요.
Orphans

답변:


4

오늘은이 있음을 발견 상용 버전memtest86(포함하지 않는 +패스 마크에서)를 제공 다행히도 ECC-확인을 포함 너무 무료 버전이.

또한 DDR4 및의 다른 모든 기능도 지원합니다 memtest86+.

제 결과는 ECC 지원에 긍정적 인 것 같습니다. 따라서 "전통적인"도구와 동일한 결과를 얻기를 원하지만이 작업을 수행 할 것 dmidecode입니다.

memtest86 결과


누군가 나중에이 게시물을 우연히 발견하여 추가 검증 및 테스트가 필요한 경우 실제로 ECC 기능을 테스트하기 위해 ECC 오류 삽입을 지원하는 유료 버전도 제공합니다.


3

편집 : 메인 보드 매뉴얼에서 새것이 잘못되었습니다 ... :

여기에 이미지 설명을 입력하십시오


BSD / linux를 실행하고 OS에서 실행하는 것을 보았습니다. ( 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 메모리 데이터 너비 총계 64 72

// 비 -ECC 메모리 데이터 너비 총 너비 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 나에게 이해가되지 않습니다. 일반적으로 ECC (미러 ?? 64 + 64?)의 경우 비 ecc 또는 64b + 8b (72)입니다. 그러나 'dmidecode total width 128'을 검색하면 많은 freenas post가 나열됩니다. ./ecc_check.py python script
yagmoth555

내 가정은 그것이 듀얼 채널과 관련이있을 수도 있지만 두 개의 모듈을 두 개의 별도 채널에 넣을 때도 동일한 결과를 얻습니다. 즉 듀얼 채널이 작동하지 않아야합니다.
comfreak

3

Ryzen 7 프로세서를 사용하면 언급 한 도구 중 어느 것도 나를 위해 일하지 않았습니다. 그러나 최근 충분한 Linux 커널을 사용하면 edac-utils, edac-ctl 및 edac-util의 도구가 ECC 상태와 수정 된 오류 수와 같은 정보를 읽을 수 있습니다. 커널 로그에는 dmesg에 "EDAC"가있는 행도 포함되어 있으며, 이에 대한 정보도 제공해야합니다. 이 기능은 RAM을 오버 클로킹하고 오류가보고되는지 확인합니다 (충분히 높은 경우). 실제로 작동하는지 확인할 수있는 충분한 증거입니다. 그러나 이러한 도구가 오류를보고하거나 작동하지 않더라도 ECC 상태 정보 읽기가 지원되지 않는다는 것만으로 ECC가 작동하지 않는다는 것을 100 % 신뢰할 수있는 방법이없는 것 같습니다 ...


1
암호 memtest86을 사용해 보셨습니까? (내 대답에서 언급 한 것)
comfreak

출력이 다를 수 있지만 dmesg에서 EDAC 정보를 확인하려면 실행할 수 있습니다 dmesg | grep EDAC(루트 권한으로이를 실행해야 할 수도 있음). 예를 들어, ECC 메모리가 설치되어 BIOS에서 활성화 된 Ryzen 기반 시스템 (해당되는 경우)에서 다음과 같은 줄이 나타날 수 있습니다.amd64: Node 0: DRAM ECC enabled.
Joe

0

비 서버 마더 보드 및 칩셋의 경우 특정 AMD 마더 보드 (예 : ASRock) 및 모든 AMD 칩셋 만 ECC를 제공합니다.

인텔의 경우 서버 Xeon 칩셋에서만 ECC를 사용할 수 있습니다. 인텔은 데스크탑 칩셋에서 ECC를 비활성화합니다.


사실 일 수도 있지만 여기서 질문 한 실제 질문에 대한 답은 아닙니다.
comfreak

비 제온 인텔 칩을 사용하고 있기 때문에 반대 질문에 적용됩니다. 대답은 그가 확인할 수 없다는 것입니다.
D 헤

예를 들어 C232 칩셋은 "데스크탑 칩셋"이고 ECC를 지원하기 때문에 답의 마지막 문장 만 잘못되었습니다. 그 외에도, 질문이 지원되는지 여부를 모르는 것처럼 확인하는 방법과 같이 질문이 더 일반적입니다.
comfreak
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.