Zaktualizowałem ten post, odkąd wymieniłem procesor, ale rdzeń mojego pytania (i niestety również wyniki) są takie same.
Zbudowałem swój pierwszy moduł FreeNAS i chciałem użyć ECC RAM, ponieważ chcę przechowywać krytyczne dane. Ponieważ mam ograniczony budżet, chciałem wybrać najtańsze rozwiązanie, które nadal obsługiwałoby pamięć RAM ECC.
Po przeprowadzeniu badań odkryłem, że potrzebuję płyty głównej, pamięci i procesora obsługującego ECC. Moja płyta główna to „Gigabyte X150M-Pro ECC” z chipsetem C232, DDR4 i gniazdem LGA1151.
Kupiłem także zestaw dwóch modułów DIMM firmy Kingston o numerze modelu „KVR21E15S8K2 / 8” ( arkusz specyfikacji ). Gigabyte opublikowało listę przetestowanych modułów pamięci, a moje moduły wydają się być obsługiwane przez działające ECC ( lista obsługiwanych modułów ).
Ponieważ mam ograniczony budżet, potrzebowałem niedrogiego procesora Skylake, który obsługuje ECC. Według Intela Celeron G3900 obsługuje ECC, więc poszedłem z tym.
Po zbudowaniu komputera chciałem sprawdzić, czy mój system rzeczywiście działa z pamięcią ECC i wszedł w BIOS płyty głównej. Z różnych stron internetowych dowiedziałem się, że niektóre płyty główne mają specjalną sekcję, która powinna informować, czy ECC działa, ale wydaje się, że moja płyta główna tego nie ma. Sprawdziłem wszystkie menu i nie mogłem znaleźć podobnej sekcji.
Po przeprowadzeniu dalszych badań i znalezieniu posta na wymianie stosów Uniksa i Linuksa, który nie rozwiązał mojego problemu. Próbowałem najnowszych, memtest86+
które z tego, co mogłem powiedzieć, nawet nie pokazują wartości „ECC”. Próbowałem starszej wersji 4.20 używanej przez systemy Puget, która pokazywała „ECC: wyłączony”. Jednak po przeczytaniu wcześniej wspomnianego postu wątpię, czy mówi prawdę (może dlatego funkcja została usunięta?). Obie wersje również nie odczytały poprawnej prędkości i opóźnienia DIMM, co zwiększa moje wątpliwości memtest86+
.
Innym popularnym sposobem sprawdzenia, czy ECC działa, było wydanie dmidecode -t memory
polecenia i odczytanie Total Width
i Data Width
. Moje wyniki były 128 Bits
i 64 Bits
odpowiednio. Jedna część danych wyjściowych pokazała szczegóły dotyczące tablicy pamięci, która miała parę klucz-wartość Error Correction Type: Single-bit ECC
.
Spodziewałem się 72 bits
tego Total Width
, więc pomyślałem, że może to być związane z podwójnym kanałem i przeniosłem moduły pamięci do dwóch sąsiednich gniazd, co powinno zapobiec dwukanałowemu, ale wynik był taki sam. Oto pełna moc od dmidecode -t memory
.
Wypróbowałem nawet ciekawy program C opublikowany przez systemy Puget, ale wynik był taki 0
, że nie ma wsparcia dla ECC.
Teraz zaczynam wątpić, czy dane na własnej stronie Intela są prawidłowe, a mój procesor nie obsługuje ECC. Zarówno pamięć, jak i płyta główna są specjalnie oznaczone „ECC”, więc mogę je wykluczyć.
Czy to możliwe, że wersja systemu BIOS wymaga aktualizacji (obecnie nie ma żadnej), aby włączyć ECC, czy ECC faktycznie już działa, a ja po prostu nie mogłem tego zweryfikować? Czy mój wybór procesora jest zły, jeśli chcę uruchomić pamięć ECC, a strona internetowa Intela jest błędna / wprowadza w błąd?
Jeśli mój procesor okaże się złym wyborem, jaki byłby następny najlepszy wybór dla „budżetowego procesora ECC”?
AKTUALIZACJA: Widziałem pewne nowe sygnały, że mój system może faktycznie działać z włączoną funkcją ECC, a dmidecode
narzędzie po prostu zgłasza dziwne dane. Na forum FreeNAS użytkownik Dusan używa sprzętu klasy serwerowej (SuperMicro MB, Xeon CPU, Kingston DIMM) i ma podobne wyniki 128 Bits
. Ale napisał, że sam nie jest pewien, czy to rzeczywiście działa.
AKTUALIZACJA 2: Jak wspomniał yagmoth555 w swojej odpowiedzi na to pytanie, wydaje się, że moja płyta główna obsługuje ECC tylko z procesorami Xeon, chociaż myślałem, że ta notatka jest reliktem z poprzednich instrukcji, które zostały skopiowane. To chyba oznacza, że muszę zajrzeć do procesora Xeon ..: - /
AKTUALIZACJA 3: Kupiłem teraz Xeon E3-1220v5, który oczywiście obsługuje ECC i powinien spełniać wymagania zawarte w instrukcji. Ponownie uruchomiłem wszystkie testy, aby sprawdzić funkcjonalność ECC, a wyniki są w zasadzie identyczne:
Z komentarzy w Puget Systems wynika również, że ecc_check.c
program nie działa na procesorach Xeon i Core i7 ..: - /
memtest86+
Tym razem sprawdziłem trochę więcej i jestem całkiem pewien, że w ogóle nie obsługuje DDR4 ani chipsetu C232, ponieważ zgłasza nie tylko niewłaściwą prędkość i taktowanie, ale także DDR3 zamiast zainstalowanej pamięci DDR4. Wykrył jednak procesor w porządku, ale nadal mam ten sam efekt końcowy w przypadku obu wersji memtest86+
:
Wersja 4.20 nawet nie wykrywa prawidłowo mojego procesora.
Wszelkie pomysły na to, jak jeszcze mogę przetestować ECC, są bardzo mile widziane.