Czym jest RAM ECC i dlaczego jest lepszy?


31

Widziałem dyskusję na temat wykorzystania RAM ECC na serwerach. Dlaczego to jest lepsze?


2
Odpowiedź na inne pytanie: serverfault.com/questions/5817/…
sh-beta

Czy istnieją dowody na to, że użycie pamięci ECC jest konieczne lub korzystne w użyciu? Korzyści i mechanizm działania są łatwe do zrozumienia, ale nigdy nie słyszałem dowodów uzasadniających ich użycie.
Drew Stephens,

A jakie są różne możliwe konsekwencje wystąpienia takich błędów pamięci (bitów)? Na przykład właśnie wyłączyłem serwer, który był online przez 5 lat non-stop (z ramką ECC) i ogólnie wszystko poszło dobrze, nigdy nie miałem żadnych skarg od klientów, którzy byli tam hostowani lub nigdy nie doświadczyłem poważnej błąd z tym ... To samo z moim komputerem stacjonarnym - BSOD tu i tam dość rzadko, ale czy to wszystko? :)
Denis Volovik,

@Denis, myślę, że jeśli chcesz, aby ludzie odpowiedzieli na twoje pytanie, być może będziesz musiał zadać je jako osobne pytanie, a nie komentarz.
Toby Allen,

Odpowiedzi:


28

Pamięć ECC RAM może odzyskać po niewielkich błędach w bitach, wykorzystując bity parzystości. Ponieważ serwery są zasobem wspólnym, w którym ważna jest dostępność i niezawodność, pamięć RAM ECC jest zwykle używana z niewielką różnicą w cenie. Pamięć ECC RAM jest również wykorzystywana na stacjach roboczych CAD / CAM, ponieważ małe błędy bitowe mogą powodować błędy obliczeniowe, które stają się poważniejszymi problemami, gdy projekt przechodzi do produkcji.


5
Troszeczkę błędu w dowolnej liczbie, w tym czyjś pakiet finansowania dla małych firm może być bardzo mały lub bardzo duży. Wszystko zależy od tego, co nieco.
Zan Lynx,

Dodaj do tego fakt, że zły błąd w niewłaściwym miejscu może obniżyć znacznie więcej niż jedną maszynę podczas wirtualizacji w celu konsolidacji.
MikeyB,

1
Czekam tylko na pozbawioną skrupułów firmę, która twierdzi, że ich oszustwo księgowe było tylko odrobiną błędu.
Eloff,

29

Doskonałe badanie w świecie rzeczywistym:

Błędy pamięci DRAM na wolności: badanie terenowe na dużą skalę (pdf)

Artykuł ten stanowi pierwsze na dużą skalę badanie błędów pamięci DRAM w terenie. Opiera się na danych zebranych z floty serwerów Google przez okres ponad dwóch lat, co stanowi wiele milionów dni DIMM. DRAM w naszym badaniu obejmuje wielu dostawców, gęstości DRAM i technologie (DDR1, DDR2 i FBDIMM).

Artykuł dotyczy następujących pytań: Jak często występują błędy pamięci? Jakie są ich właściwości statystyczne? Jak wpływają na nie czynniki zewnętrzne, takie jak temperatura i wykorzystanie systemu? Jak różnią się one w zależności od czynników specyficznych dla układu, takich jak gęstość układu, technologia pamięci i wiek DIMM?

Stwierdzamy, że w wielu aspektach błędy DRAM w terenie zachowują się zupełnie inaczej niż się powszechnie uważa. Na przykład obserwujemy wskaźniki błędów pamięci DRAM, które są o rząd wielkości wyższe niż poprzednio zgłaszane, przy współczynnikach FIT (awarie czasu na miliard godzin pracy urządzenia) od 25 000 do 70 000 na Mbit i ponad 8% DIMM rocznie. Dostarczamy mocnych dowodów na to, że błędy pamięci są zdominowane przez błędy twarde, a nie błędy miękkie, na których skupia się większość poprzednich prac. Stwierdzamy, że spośród wszystkich czynników, które wpływają na zachowanie błędów DIMM w terenie, temperatura ma zaskakująco mały wpływ. Wreszcie, w przeciwieństwie do powszechnych obaw, nie obserwujemy żadnych oznak, że wskaźniki błędów per-DIMM rosną wraz z nowszymi generacjami modułów DIMM.

Ciekawe, że większość błędów pamięci była trudna - twardych błędów pamięci nie można odzyskać, co oznacza, że ​​pamięć musi zostać fizycznie wymieniona jako uszkodzona , podczas gdy błędy miękkiej pamięci można naprawić, zastępując pamięć prawidłową wartością. Wskazuje mi to, że wartość ECC jest dość ograniczona.

Istnieją dwa rodzaje błędów, które zwykle mogą wystąpić w systemie pamięci. Pierwszy nazywa się powtarzalnym lub twardym błędem. W tej sytuacji element sprzętowy jest zepsuty i konsekwentnie zwraca nieprawidłowe wyniki. Trochę może utknąć, aby na przykład zawsze zwracało „0”, bez względu na to, co jest zapisane. Ciężkie błędy zwykle wskazują na luźne moduły pamięci, uszkodzone układy scalone, wady płyty głównej lub inne problemy fizyczne. Są stosunkowo łatwe do zdiagnozowania i poprawienia, ponieważ są spójne i powtarzalne.

Wygląda na to, że wszystkie serwery w badaniu wykorzystywały ECC, więc nie możemy poznać ECC w porównaniu do poziomów błędów innych niż ECC.

W tym artykule zbadano występowanie i charakterystykę błędów DRAM w dużej flocie serwerów towarowych. Nasze badanie opiera się na danych gromadzonych przez ponad 2 lata i obejmuje moduły DIMM wielu dostawców, generacji, technologii i mocy. Wszystkie moduły DIMM zostały wyposażone w logikę korekcji błędów (ECC) w celu korekty błędów co najmniej jednego bitu.


5
+1 fajny raport. Chociaż nie znam wskaźników błędów spoza ECC, szacuję, że poziomy błędów spoza ECC są w przybliżeniu takie same jak wskaźniki błędów ECC na GB. Te same używane układy pamięci RAM są używane zarówno w modułach ECC, jak i modułach innych niż ECC (moduły ECC DIMM po prostu używają 9/8 tylu układów - 72 nieprzetworzone bity pamięci do przechowywania 64-bitowego słowa danych, a 8/9 wskaźnik błędów wynosi mniej więcej taki sam poziom błędu) i nie widzę powodu, dla którego układ pamięci RAM miałby znacznie inny poziom błędu, gdy byłby umieszczony na ECC DIMM w porównaniu do gdy byłby umieszczony na innym niż ECC DIMM.
David Cary,

9

ECC ma kilka zalet w stosunku do parzystości. Po pierwsze, może wykrywać i naprawiać błędy jednobitowe i robić to bez konieczności zatrzymywania całego systemu. Błędy wielobitowe nadal zwrócą błąd parzystości, ale szanse na to są astronomicznie niskie w czasie życia komputera, chyba że sama pamięć jest wadliwa. ECC jest jak ubezpieczenie samochodu: obejmuje większość rzeczy, które mogą się nie udać, ale nie może zapobiec stosowi samochodów.

więcej szczegółów tutaj: Pamięć ECC: Konieczność dla serwerów, a nie dla komputerów stacjonarnych


1
Nie zgadzam się z tym artykułem. Myślę, że każdy powinien korzystać z ECC. Nie zamierzałem się poddawać, ale chciałem nowego Core I7 na tyle, że w końcu to zrobiłem. Jestem jednak pewien, że moje 6 GB pamięci RAM wykrywa błędy wszędzie.
Zan Lynx,

4
@zan i tych błędów, których jesteś „pewien”, jakie to ma konsekwencje?
Jeff Atwood,

Nie zgaduj; błędy, które można naprawić, powinny być powiązane z MCE, które można rejestrować w systemie operacyjnym (dziennik systemowy w systemie Windows, / var / log / mcelog w systemie Linux)
MikeyB,

@JeffAtwood: Zwykle nic, ale od czasu do czasu miałem niebieski ekran bez wyraźnego powodu. W systemach, które mam zrobić mieć ECC będzie widzę parę błędów pojedynczego bitu każdego miesiąca.
Zan Lynx,

@JeffAtwood: I, jak wszyscy, jestem pewien, czasami musiałem ponownie zainstalować aplikację (Office. Visual Studio.), Ponieważ najwyraźniej oszalała. Błąd aplikacji lub błąd ECC powodujący uszkodzenie pliku dysku? Kto wie, jeśli nie masz ECC?
Zan Lynx,

5

Upraszczając, cytowanie z Wikipedii :

Zakłócenia elektryczne lub magnetyczne w systemie komputerowym mogą powodować, że pojedynczy bit DRAM samorzutnie przechodzi w stan przeciwny. Początkowo sądzono, że było to spowodowane głównie cząsteczkami alfa emitowanymi przez zanieczyszczenia w materiale do pakowania chipów, ale badania [5] wykazały, że większość błędów jednorazowych („miękkich”) w chipach DRAM powstaje w wyniku promieniowania tła
...
Ten problem można złagodzić za pomocą modułów DRAM, które zawierają dodatkowe bity pamięci i kontrolery pamięci, które wykorzystują te bity. Te dodatkowe bity są używane do rejestrowania parzystości lub do użycia kodu korygującego błędy

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.