ECC zarejestrowany vs ECC niebuforowany

15

Chciałbym zbudować serwer pamięci (oparty na GNU / Linux lub FreeBSD), który będzie cały czas włączony. Aby zapobiec uszkodzeniu danych (co jest mało prawdopodobne, ponieważ nigdy nie miałem takiego problemu, ale lepiej być bezpiecznym niż przykro), chciałbym użyć ECC RAM.

Chociaż nie jest tak dobry jak EDD (?) (Który jest znacznie droższy) i zapewnia dodatkową ochronę. ECC wydaje się korygować tylko błędy pojedynczych bitów.

Pamięć RAM zarejestrowana przez ECC może być używana tylko z płytami stacji roboczych / serwerów, takimi jak Intel Xeon lub AMD interlagos / magny-cours / valencia g34 lub c32.

Niebuforowane ECC można stosować na Intel Xeon lga1155 lub AMD AM3 + na płytach Asus.

Druga opcja będzie o wiele tańsza po stronie procesora i płyty głównej i wątpię, że będę potrzebować więcej niż 16 GB pamięci RAM (4x4 GB ECC niebuforowane to największe przystępne karty).

Wątpliwości, które mam (głównie dotyczące płyty asus am3 +): czy pamięć RAM niebuforowana ECC jest tak dobra, jak pamięć RAM zarejestrowana przez ECC (z punktu widzenia bezpieczeństwa i niezawodności)? Czy jest to gorszy wybór. Nie dbam o szybkość.

Więcej informacji: serwer użyje skrzynki serwera z dyskami do 24 x 3,5 '' i powinien zużywać jak najmniej. LGA1155 wydaje się w tym sensie lepszym wyborem (TDP ~ 20-95 W) w porównaniu do innych (> 80 W) za dwukrotność ceny. Wszelkie sugestie są mile widziane. Powiedzmy, że mniej niż 120 W na biegu jałowym (~ z 10 dyskami twardymi na 24).

użytkownik51166
źródło
1
Zapytanie w SuperUser dostanie odpowiedź SuperUser. Zapytaj na ServerFault dostanie odpowiedź ServerFault. Rozumiesz?
Chad Harrison
FAQ podaje, że pytania sprzętowe można zadawać na superużytkowniku ...
user51166
@hydroparadise Sprawdź FAQ - zezwalamy na wszystkie pytania dotyczące sprzętu.
Simon Sheehan
Sry, myślałem, że to założono. Wspomniałem tylko, że ze strony systemu operacyjnego mogą istnieć różne rozważania dotyczące sposobu, w jaki ECC jest adresowane, ponieważ całkowicie stanie się aplikacją serwerową.
Chad Harrison
1
Ledwo. Przez większość czasu chipset będzie obsługiwał korekcję ECC (jeśli istnieje). W ogóle nie musisz korzystać z systemu operacyjnego. (Możesz jednak użyć DMI, aby uzyskać informacje o błędach ECC lub QPI.)
Hennes,

Odpowiedzi:

-2

Cóż, jeśli użyjesz tylko 16 GB pamięci RAM - która nie jest zakresem pamięci RAM serwera - będziesz w porządku z całkiem standardową dowolną pamięcią RAM / s na pulpicie.

Jeśli jest to tylko serwer pamięci, nie potrzebujesz nawet tak dużej wydajności procesora.

Jak powiedziałeś, idź z Sandy Bridge, da ci fajny, wydajny i niezawodny system.

Mówiąc o zakresach 16 GB RAM, nie musisz się martwić o ECC.

inf
źródło
Dziękuję za szybką odpowiedź. Myślałem, że powyżej 4 GB pamięci RAM potrzebujesz ECC. To na pewno dla 256 GB pamięci RAM lub połowy TB RAM ECC jest koniecznością. Ale myślałem, że 16 GB to trochę limit ... W każdym razie to dziwne ... Xy 4C / 8T Sandybridge kosztuje 100 $ mniej (u mnie) niż równoważny procesor stacjonarny. Całkowity koszt jest taki sam. Brak wad ECC tutaj. Czy jesteś pewien, że ECC nie jest potrzebne?
user51166
@ user51166 100% pewności. 16 GB jest obecnie standardem w zestawach średniej i wysokiej klasy.
inf
2
Fakt, że jest to standard defacto, niekoniecznie oznacza, że ​​jest wystarczająco niezawodny. Przeczytałem już o przypadkach w Internecie, w których wszystkie dane na dysku uległy uszkodzeniu na dysku twardym nie z powodu kontrolera SATA, ale z powodu złej (nieekonomicznej) pamięci RAM.
user51166
1
@ user51166 Powiedz facetowi, który to powiedział, że non-ECC zdecydowanie nie był jego problemem.
inf
1
„Zarejestrowane ECC> Niebuforowane ECC” Nie / czasami. Niebuforowane / niezarejestrowane ECC będą faktycznie szybsze. Buforowane / zarejestrowane ECC będzie co najmniej wolniejsze o rejestrację, ale możesz dodać więcej modułów DIMM do kanału pamięci. (I więcej pamięci MOŻE przyspieszyć system, nawet jeśli opóźnienia się zwiększą). Tak więc zamiast trudnego „Tak / nie” właściwą odpowiedzią jest „to zależy”.
Hennes,
45

ECC wydaje się korygować tylko błędy pojedynczych bitów.

Poprawny. Poprawienie większej liczby błędów wymagałoby więcej bitów. W tej chwili używasz już 10 bitów do przechowywania 8 bitów informacji, „marnując” 20% układów pamięci, aby umożliwić korektę jednego bitu i maksymalnie dwa bity wykrywania błędów.

Działa w następujący sposób. Wyobraź sobie a 0lub an 1. Jeśli czytam, muszę mieć nadzieję, że przeczytam właściwą rzecz. Jeśli 0 zostanie odwrócone do 1 przez promieniowanie kosmiczne lub przez zły układ, nigdy się nie dowiem.

W przeszłości próbowaliśmy rozwiązać to z parytetem. Parzystość dodawała dziewiąty bit na 8 przechowywanych bitów. Sprawdziliśmy, ile zer i ile 1 było w bajcie. Dziewiąta została ustalona, ​​aby liczba parzysta. (dla parzystości) Jeśli kiedykolwiek przeczytałeś bajt, a liczba była niepoprawna, to wiedziałeś, że coś jest nie tak. Nie wiesz jednak, który bit był zły.

ECC rozszerzyło tę kwestię. Wykorzystuje 10 bitów i złożony algorytm do wykrycia, kiedy jeden bit się odwrócił. Wie także, jaka była pierwotna wartość. Bardzo prosty sposób wyjaśnienia, w jaki sposób to działa:

Zamień wszystkie 0s na 000. Zamień wszystkie 1s na 111.

Teraz możesz odczytać sześć kombinacji:
000
001
010
100
101
111

Nigdy nie jesteśmy w 100% pewni, co zostało pierwotnie zapisane. Gdybyśmy czytali, 000to mogło być właśnie to, 000czego się spodziewaliśmy, lub wszystkie trzy bity mogły się przewrócić. To ostatnie jest bardzo mało prawdopodobne. Bity nie są losowo odwracane, chociaż tak się dzieje. Powiedzmy, że zdarza się to raz na dziesięć razy w przypadku niektórych prostych obliczeń (rzeczywistość jest znacznie mniejsza). Działa to z następującymi szansami odczytania poprawnej wartości:

000-> Albo 000(na pewno 99,9%), albo potrójne odwrócenie (szansa 1/1000)

001-> Wiemy, że coś poszło nie tak. Ale albo był 000i trochę przewrócony (szansa 1:10), albo był 111i dwa bity się przewróciły (szansa 1: 100). Traktujmy to tak, jakbyśmy czytali, 000ale rejestrowali błąd.

010 -> Taki sam jak powyżej.

100 -> Taki sam jak powyżej.

011 -> Taki sam jak wyżej, ale przy założeniu, że to 111

101 -> Taki sam jak wyżej, ale przy założeniu, że to 111

110 -> Taki sam jak wyżej, ale przy założeniu, że to 111

111-> Albo 111(na pewno 99,9%), albo potrójne odwrócenie (szansa 1/1000)

111-> Albo 000(na pewno 99,9%), albo potrójne odwrócenie (szansa 1/1000)

ECC robi podobne sztuczki, ale robi to bardziej efektywnie. W przypadku 8 bitów (jeden bajt) używają tylko 10 bitów do wykrywania i korygowania.


Pamięć RAM zarejestrowana w ECC może być używana tylko z płytami stacji roboczych / serwerów. Niebuforowana pamięć ECC może być używana na Intel Xeon lga1155 lub AMD AM3 + na płytach Asus.

Wspomniałem już, czym była część ECC, teraz część zarejestrowana vs. niebuforowana.

We współczesnych procesorach kontroler pamięci jest na kości procesora, zaczynając od dawna dla układów AMD Opteron i od serii Core i dla procesorów Intel. Większość procesorów do komputerów stacjonarnych następnie komunikuje się bezpośrednio z gniazdami DIMM utrzymującymi pamięć RAM. Działa i nie jest wymagana dodatkowa logika. Jest to tania w budowie, a prędkość jest wysoka, ponieważ nie ma opóźnienia z kontrolera pamięci do pamięci RAM.

Ale kontroler pamięci może napędzać ograniczony prąd przy dużych prędkościach. Oznacza to, że istnieje ograniczenie liczby gniazd pamięci, które można dodać do płyty głównej. (I aby uczynić to bardziej złożonym, do tego, ile DIMM może zużyć, co prowadzi do rang pamięci. Pominę to, ponieważ jest to już długie).

Na płytach serwerowych często chcesz zużywać więcej pamięci niż system stacjonarny. Dlatego do pamięci dodawany jest bufor „rejestru”. Odczyty z układów na DIMM są najpierw kopiowane do tego bufora. Cykl zegara później bufor ten łączy się z kontrolerem pamięci w celu przesłania danych.

Ten bufor / rejestr opóźnia rzeczy, spowalniając pamięć. Jest to niepożądane i dlatego jest używane / potrzebne tylko na płytkach, które mają wiele banków pamięci. Większość płyt konsumenckich tego nie potrzebuje, a większość procesorów konsumenckich tego nie obsługuje.

Bezpośrednio podłączona, niebuforowana pamięć RAM vs. buforowana / zarejestrowana pamięć RAM nie jest przypadkiem, w którym jedna jest lepsza lub gorsza od drugiej. Mają po prostu różne kompromisy, jeśli chodzi o liczbę gniazd pamięci. Zarejestrowana pamięć RAM pozwala na więcej pamięci RAM kosztem pewnej prędkości (i ewentualnie kosztów). W większości przypadków, gdy potrzebujesz jak najwięcej pamięci, ta dodatkowa pamięć z nadwyżką rekompensuje działanie pamięci RAM z nieco wolniejszą prędkością.

Wątpliwości, które mam (głównie dotyczące płyty asus am3 +): czy pamięć RAM niebuforowana ECC jest tak dobra, jak pamięć RAM zarejestrowana przez ECC (z punktu widzenia bezpieczeństwa i niezawodności)? Czy jest to gorszy wybór. Nie zależy mi na szybkości. **

Z punktu widzenia bezpieczeństwa i stabilności, bufory ECC niebuforowane i zarejestrowane ECC są takie same.


Więcej informacji: serwer użyje skrzynki serwera z dyskami do 24 x 3 '' 'i powinien zużywać jak najmniej.

24 dyski będą zużywać dużo energii. Ile zależy od dysków. Mój dysk SAS o pojemności 140 GB i prędkości 15 000 obr./min pobiera zaledwie 10 W na biegu jałowym, podobnie jak dysk SATA 7k2 o pojemności 1 TB. Przy użyciu oba rysują więcej.

Pomnóż to przez 24. 24x10 W na biegu jałowym oznacza 240 watów, po prostu utrzymując talerze wirujące, pokonując opór powietrza. Podwójnie używany.


LGA1155 wydaje się w tym sensie lepszym wyborem (TDP ~ 20-95 W) w porównaniu do innych (> 80 W) za dwukrotność ceny.

Intel jest lepszy w procesorach o niskiej mocy, w momencie pisania i w procesorach, o których wspomniałeś.

Wszelkie sugestie są mile widziane. Powiedzmy, że mniej niż 120 W na biegu jałowym (~ z 10 dyskami twardymi na 24).

Jeśli wybierasz FreeBSD, przyjrzyj się ZFS. To może być świetne. Wiele jego bardziej zaawansowanych funkcji (np. Deduplikacja i / lub kompresja) wymaga dużej mocy procesora i wymaga dużej ilości pamięci. ZFS do podstawowego użytku z ZRAID poradzi sobie dobrze zarówno na wspomnianych zestawach procesorów, jak i na 16 GB, ale jeśli włączysz takie funkcje, jak deduplikacja, powinieneś dokładnie przyjrzeć się zalecanej pamięci potrzebnej dla twojej pojemności dysku; Niektóre przewodniki zalecają do 5 GB na TB przestrzeni dyskowej .

Jeszcze dwie rzeczy:

  1. Nie widziałem nic na temat podłączania napędów. Niektóre płyty mogą mieć do 10 portów SATA. Ale do tego wszystkiego potrzebne będą dodatkowe karty. Jeśli rozważasz sprzętową macierz RAID, najlepiej zaplanować to od samego początku.
  2. Awaria dysku: Jeśli używasz mnożników portów SATA, przyjrzyj się dokładnie, jak działają w przypadku awarii dysku SATA. Często nie jest ładna. Nie jest to duży problem z instalacją domową, ale bardzo nie jest to klasa korporacyjna. Może być konieczne rozważenie, w jaki sposób poszczególne dyski również obsługują błędy. Niektóre dyski są oznaczone jako „NAS” lub „RAID”, ponieważ obsługują błędy inaczej niż zwykłe dyski. Bez RAID chcesz, aby dysk próbował ponownie tyle razy, ile to możliwe. Dzięki macierzy RAID chcesz, aby dysk szybko ulegał awarii , abyś mógł czytać z innej kopii.
Hennes
źródło
5
Zwiększenie popularności, ponieważ tak naprawdę odpowiada na pytanie, podczas gdy druga jest bardziej praktyczną / niepotwierdzoną radą. Zignorujemy to, że meandruje trochę, zanim przejdziemy do rejestru kontra część niebuforowana;)
ernie,
1
Tak, to meandruje. Starałem się być dokładny, ale tak naprawdę nie powinienem zostać pisarzem. (fikcja lub podręczniki).
Hennes,
Heh, zignorujemy również to, że pierwotnie przestałem czytać, kiedy zacząłeś zajmować się władzą i innymi problemami. . . ;)
ernie,
1
To doskonała odpowiedź, nie może być krótsza i nadal tak dobrze odpowiada na wszystkie pytania. Właśnie wykonałem umiarkowaną edycję, która wyczyściła twój tekst, który pomoże, gdy zostanie zastosowany. Nawet usunąłem przeprosiny za przycięcie dwóch linii - przyjęta tutaj odpowiedź nie była zbyt pomocna. Krótko rozwinąłem obawy dotyczące deduplikacji ZFS i obsługi błędów podczas jazdy. Postanowiłem nie wpaść w wibracje, nawet jeśli będzie to problem również w przypadku 24 dysków.
Greg Smith
Dziękujemy za wyjaśnienie zarejestrowanych i niebuforowanych oraz powody, dla których warto korzystać z RDIMM.
Mahmoud Al-Qudsi
1

Dwie osobne kwestie.

ECC kontra spoza ECC

  • używaj ECC wszędzie tam, gdzie ważna jest dostępność
  • kosztuje więcej - potrzeba (wielokrotności) 9 żetonów zamiast 8
  • płyta główna musi go obsługiwać, aby go używać

Zarejestrowane kontra niebuforowane:

  • Może mieć (znacznie) więcej całkowitej pamięci RAM zainstalowanej z zarejestrowanymi modułami DIMM
    • Mniejsze obciążenie elektryczne interfejsu kontrolera pamięci
  • Ale wszystkie zainstalowane moduły DIMM muszą być zarejestrowane lub nie
    • należy usunąć niebuforowane moduły DIMMS w przypadku aktualizacji do wersji Zarejestrowanej
  • Jest także droższy i dostęp do niego jest wolniejszy
    • Niebuforowane to nieco niższe opóźnienie, jeśli to ma znaczenie
    • wszystkie losowe dostępy i tak zajmują wiele cykli
    • Zwróć uwagę, że bezwzględne opóźnienie dostępu (czas w nanosekundach) niewiele się poprawiło w porównaniu do historii użycia pamięci DRAM na komputerach PC
      • zamiast tego znacznie poprawiono koszt, pojemność i przepustowość
      • i tak pamięć podręczna ukrywa opóźnienie dla większości dostępów do pamięci
    • Dłuższe opóźnienia najbardziej negatywnie wpływają na wydajność pojedynczego wątku w czasie rzeczywistym
      • zwykle nie ma większego wpływu na przypadki użycia serwera
    • Brak / minimalna różnica w przepustowości i ogólnej wydajności
      • nie ma wpływu na przepustowość sekwencyjnego dostępu
      • Pamięci podręczne L2 / L3 oznaczają, że rzeczywiste wzorce dostępu najczęściej zastępują wiersze w pamięci podręcznej na raz, więc zwykle są to i tak dostępy „seryjne”
RGD2
źródło