Czy użyłbyś ECC RAM na stacji roboczej?

21

Czy pamięć ECC RAM jest zalecana do użytku na stacjach roboczych, czy może jest używana tylko na serwerach? Jeśli pamięć RAM inna niż ECC działa na komputerach PC, dlaczego w ogóle potrzebujemy pamięci RAM ECC?

Jon Tackabury
źródło

Odpowiedzi:

25

Ponieważ rzeczy są przechowywane w pamięci RAM, usuwane z niej i ostatecznie usuwane z pamięci RAM, naturalnie dochodzi do niektórych uszkodzeń (teorie się różnią, ale te o największej wadze w tej chwili to EMI z samego komputera). ECC to funkcja pamięci RAM i płyt głównych, która umożliwia wykrywanie i korygowanie tego uszkodzenia.

Korupcja jest zwykle dość niewielka (ECC może zwykle wykryć i naprawić 1-2 bity na 64-bitowe „słowo” - i to może przekraczać typowe poziomy błędów), ale zwiększa częstotliwość wraz z gęstością pamięci RAM. Twoja średnia stacja robocza / komputer nigdy tego nie zauważy. Na serwerze, na którym uruchomiona jest pamięć RAM o wysokiej gęstości 24/7 w wymagającym środowisku obsługującym usługi krytyczne, podejmujesz wszelkie możliwe kroki, aby zapobiec awarii.

Należy również pamiętać, że pamięć RAM ECC musi być obsługiwana przez płytę główną, a przeciętna stacja robocza / komputer go nie obsługuje.

Pamięć RAM ECC jest droższa niż pamięć non-ECC, jest znacznie bardziej wrażliwa na częstotliwości zegara i może ponieść niewielki (1-2%) spadek wydajności. Jeśli to pomaga, działającą analogią jest pamięć RAM dla kontrolerów RAID. Na twoim komputerze oprogramowanie RAID wbudowane w mikroukład wspomagane sprzętowo stanowi doskonałą ochronę przed awariami pojedynczego dysku. Na serwerze to nigdy nie wystarczy. Potrzebujesz wysokiej klasy, w pełni sprzętowej macierzy RAID z podtrzymaniem bateryjnym i wbudowaną pamięcią RAM, aby mieć pewność, że nie stracisz danych z powodu awarii zasilania, awarii dysku itp.

Więc nie, tak naprawdę nie potrzebujesz ECC RAM na stacji roboczej. Korzyść po prostu nie uzasadnia ceny.

sh-beta
źródło
2
Jak również wskazano w odpowiedzi Basil Bourque , ceny prawie się ostatnio zbliżyły (kiedy ostatnio patrzyłem, różnica w cenie wynosiła ~ 10%, czego można oczekiwać od dodatkowego obszaru chipów, dla tej samej użytecznej ilości pamięci RAM) . W związku z tym warto ponownie przejrzeć zwłaszcza ostatnie zdanie.
CVn
10

Jeśli w tym artykule jest coś do zrobienia, powinieneś użyć ECC RAM.

Nie chodzi tylko o to, że „nie prowadzę serwera, więc go nie potrzebuję”. To zależy, jak bardzo cenisz swoje dane. Nie chodzi tylko o sporadyczne awarie - problem polega na tym, że możesz dostać korupcję i nie możesz wiedzieć, że tak się dzieje.

geofftnz
źródło
3
Z artykułu: „[...] 4 GB pamięci RAM ma 96% procent szansy na mały błąd w ciągu trzech dni bez pamięci RAM ECC”. Wygląda na to, że komputery powinny ciągle ulegać awariom, a dane powinny być cały czas uszkodzone. Jednak wydaje się, że wszyscy radzą sobie całkiem dobrze bez ECC ... dlaczego?
Calimo,
1
To dlatego, że ten artykuł jest fałszywy, jeśli chodzi o poziom błędu. Rzeczywisty poziom błędu jest niższy o wiele rzędów wielkości. Zobacz odpowiedni wątek reddit reddit.com/r/programming/comments/ayleb/…
mimrock
Niezależnie od tego, jaki jest poziom błędu, zależy również od tego, na co ma wpływ. Możliwe, że nie jest to przyczyną awarii systemu.
sudo
8

Pamięć ECC RAM staje się bardziej interesująca wraz ze wzrostem wielkości pamięci. Prawdopodobieństwo wystąpienia błędu jednego bitu w maszynie z 8 GB pamięci RAM jest znacznie wyższe niż w czasach 640K PC / XT, po prostu z powodu większej liczby bitów. Na serwerze bazy danych, na którym pamięć RAM może znajdować się w buforze dysku, niewielki błąd może również uszkodzić pamięć dyskową. Zasadniczo można oczekiwać użycia pamięci ECC na serwerze.

Niektóre stacje robocze (szczególnie te z procesorami Xeon lub Opteron) zajmują zarejestrowaną pamięć, która i tak jest dostępna tylko w wersjach ECC. Na komputerze stacjonarnym możesz uznać to za przesadę.

ConcernedOfTunbridgeWells
źródło
4

Pamięć ECC RAM została zaprojektowana, aby pomóc w zapobieganiu i naprawianiu błędów opartych na pamięci, zwykle przy użyciu pewnego rodzaju kodu hamującego lub modułowej redundancji. Jest to bardzo przydatne na serwerach, które zawierają ważne dane lub wymagają wysokiej dostępności, ale wiąże się to z pewnymi kosztami.

Chociaż prawdopodobnie warto zapłacić dodatkowo za ważne serwery, czy naprawdę chcesz to zrobić na komputerze stacjonarnym, czy ma to znaczenie, jeśli czasami występuje błąd pamięci? Pewnie ma to znaczenie, jeśli baza danych SQL upuści niektóre dane podczas transakcji, ale czy obchodzi cię, czy na twój dokument tekstowy ma wpływ niewielki błąd pamięci?

Sam Cogan
źródło
4

Jeśli chcesz mieć niezawodną stację roboczą, potrzebujesz do niej pamięci ECC RAM. Będzie się rzadziej zawieszał i prace nad nim wykonane, a dokumenty buforowane w pamięci RAM nie zostaną losowo uszkodzone.

Zan Lynx
źródło
4
Wydaje się, że jest to niezmiernie mała szansa na poprawę stabilności. Jedyne awarie związane z pamięcią RAM, o których wiem na stacjach roboczych, są spowodowane złą pamięcią RAM lub złymi aplikacjami, nigdy czymś, czego ECC by nie zapobiegło. Ma to sens (czytaj: wciąż tylko odrobinę) na serwerach, na których ciągle kruszysz terabajty danych, ale na stacjach roboczych być może jedyne, co się zbliża, to renderowanie grafiki lub przetwarzanie wideo. Krótko mówiąc, myślę, że można uzyskać całkowicie niezawodną stację roboczą bez pamięci RAM ECC.
Chris Thorpe
Uruchomiłem memtest86 kilka razy w ciągu nocy bez żadnego błędu. Tak często występuje przerzucanie pamięci ... Jeśli od tego zależy życie, usprawiedliwiałoby to korzystanie z ECC, w przeciwnym razie nie sądzę, że jest to prawdziwy problem 99,9% przypadków. Jest bardzo mało prawdopodobne, aby 1 losowy bit w miesiącu uderzył w coś krytycznego w terabajtach danych.
inf3rno
Ofc. ZFS jest wyjątkiem.
inf3rno
1
@ inf3rno Ten argument? Nocleg jest niczym. Wysokość ma znaczenie. Mieszkam w Kolorado, aw systemie ECC co miesiąc widzę kilka błędów, które można naprawić. Wróć z dziennikami z systemu ECC lub nie masz żadnych informacji. Przeczytaj także raport Google o błędach ECC.
Zan Lynx,
4

Dodatkową zaletą ECC w stosunku do tego, co wspomniano powyżej, jest to, że można wykryć złą pamięć RAM. Podczas uruchamiania długiej sesji memtest86 zwykle występują problemy, mogą występować bardzo specyficzne problemy z pamięcią RAM, które pojawiają się rzadko i w niektórych przypadkach użycia. Może się to zdarzać znacznie częściej niż uszkodzenie, przed którym doskonale chroni RAM ECC - może raz na miesiąc. Jeśli więc zainstalujesz oprogramowanie monitorujące, możesz być pewien, że pamięć RAM jest dobra lub wymienić złe układy. Nadal niewielka korzyść, ale ponieważ pamięć ECC nie jest dużo droższa niż zwykła pamięć RAM, może być tego warta.

Marius Bjørnstad
źródło
1

Pamięć ECC kosztuje teraz mniej więcej tyle samo, co pamięć non-ECC, ponieważ ceny spadły. Sprawdź ceny; jeśli ceny są gdzieś blisko, kup ECC, jeśli Twoja stacja robocza to obsługuje.

Basil Bourque
źródło
1

Myślę, że mogą istnieć pewne nieporozumienia oparte na tytule pytania.

Jeśli masz na myśli przeciętny komputer stacjonarny, to zwykle opiera się on na platformie, która nawet nie obsługuje ECC.

Jeśli masz na myśli komputer klasy stacji roboczej , prawdopodobnie jest on wyposażony w pamięć ECC, niezależnie od tego, czy Cię to obchodzi, czy nie.
Ogólnie rzecz biorąc, klasa stacji roboczej jest zazwyczaj oparta na sprzęcie serwerowym, ale z odpowiednią grafiką i spakowana w innym formacie.

Oczekiwany nakład pracy jest również bardziej obciążający niż w przypadku komputerów stacjonarnych, więc jeśli przyznasz, że ECC ma sens dla serwerów, myślę, że nie ma większego problemu, że ECC ma również sens dla stacji roboczych.

W przypadku komputerów stacjonarnych trwa debata, czy ECC ma sens, czy nie. Można absolutnie argumentować, że wszystko powinno mieć ECC, ale w tej chwili nie jest to praktyczne, ponieważ branża postanowiła uczynić ECC funkcją różnicującą sprzęt wyższej klasy.

Håkan Lindqvist
źródło
0

Zgodnie z artykułem Zan Lynx podanym w komentarzach: Błędy pamięci DRAM w środowisku naturalnym: badanie terenowe na dużą skalę , błędy nie do naprawienia są częste, natomiast błędy losowe, które można naprawić, występują rzadko w systemie. Częstość występowania jest prawdopodobnie kilka w ciągu roku, ale zależy to od użytkowania.

Tak więc w środowisku serwerowym możliwe do naprawienia błędy mogą nie być tak ważne, ale rzadko uruchamiasz maszyny serwerowe, więc niemożliwe do naprawienia błędy spowodowane uszkodzoną pamięcią RAM mogą pozostać niewykryte przez pewien czas, powodując uszkodzenie danych. Myślę, że to główny powód, dla którego serwery potrzebują ECC. Stacje robocze uruchamiają się i dlatego często sprawdzają pamięć RAM, aby awarie sprzętu były wykrywane przy każdym ponownym uruchomieniu. Jeśli ta częstotliwość jest wystarczająca dla Twojej firmy, myślę, że nie będziesz potrzebować pamięci ECC RAM na stacji roboczej.

Jeśli mówimy o błędach pamięci, lepiej zaktualizować ważne dokumenty na serwerze. Jeśli więc stacja robocza coś czyta i modyfikuje, oryginalna treść nie powinna zostać nadpisana na serwerze. Regularne kopie zapasowe mogą zrobić to samo dla Ciebie.

Kolejnym aspektem tego pytania jest bezpieczeństwo. Jeśli stacja robocza jest podłączona do dowolnej niezabezpieczonej sieci, może być podatna na atak młotkiem wierszy , który wykorzystuje zjawisko związane z pamięcią DRAM. Dlatego z punktu widzenia bezpieczeństwa lepiej jest używać ECC RAM.

inf3rno
źródło