Co mogę zrobić z 1 TB pamięci RAM?

Najlepsza odpowiedź

Pierwszą rzeczą, którą należy wiedzieć, jest to, że komputery z tak dużą ilością pamięci RAM działają wolniej niż myślisz. Zarządzanie wieloma bankami pamięci RAM wymaga technologii spowalniającej dostęp do pamięci RAM (NUMA, ECC, adresowanie drugiej strony pamięci wymaga zatrzymania akcji…). Pomyśl o nich jak o dużej ciężarówce, podczas gdy twój laptop to samochód (może F1). Jeśli chcesz coś kupić, wybierz samochód.

Po drugie, te komputery są bardzo drogie. Nie tylko ze względu na pendrivey, ale wszystko musi być skalowane. Płyta główna serwera, wiele procesorów XEON, ogromne pamięci RAM… cały ten tak zwany „profesjonalny” sprzęt wiązał się z „podatkiem od serwerów” dwukrotnie wyższym od ceny za każde 10\% wzrost wydajności. Możesz uzyskać znacznie większą moc komputera, kupując kilka rozsądnych rozmiarów sprzętu.

Ponadto w większości przypadków komputer musi być zrównoważony. Jeśli masz tak dużo pamięci RAM, potrzebujesz wielu rdzeni do pracy z nią i naprawdę szybkiej macierzy SSD do ładowania i zapisywania danych. Niektóre zastosowania nie są zbalansowane i wymagają więcej jednego zasobu.

Dla zwykłego użytkownika domowego nie ma pożytku z tak dużej ilości pamięci RAM.

Jaki pożytek z takich bestii? Są przydatne, gdy musisz pracować na wielu danych naraz. Nawet jeśli ich pamięć RAM jest wolniejsza niż pamięć RAM zwykłego komputera, wciąż jest szybsza niż najszybszy dysk SSD.

Typowe zastosowania obejmują:

  • duża relacyjna baza danych w pamięci
  • duży magazyn klucz-wartość (bez sql)
  • duża baza danych wykresów
  • niektóre prace naukowe: badanie DNA, symulacja
  • ogromna konfiguracja PLM serwery w branży motoryzacyjnej i lotniczej
  • z uruchomioną maszyną wirtualną (jest to głupie, ale jedno z najczęściej spotykanych zastosowań)

Nawet w świecie zawodowym dobre zespoły IT mają tendencję do przenoszenia zadań na więcej komputerów przy użyciu algorytmów, takich jak redukcja map, renderowanie farm do renderowania 3D… Jeśli to możliwe, jest to o wiele bardziej wydajne, bardziej elastyczne i łatwiejsze do radzenia sobie z awariami. Możesz wyłączyć komputery lub dodać więcej, aby skalować z obciążeniem.

Ponadto większość z tych komputerów jest kupowana przez system administracyjny z jednego z tych głupich powodów:

  • Nie chcą brać na siebie żadnej odpowiedzialności, więc kupują największy dostępny komputer, a jeśli oprogramowanie zawiedzie, mogą powiedzieć, że to nie ich wina, ponieważ zrobili wszystko, co w ich mocy.
  • Są maniakami i chcą większego zabawki niż ich przyjaciele. Jeśli twoja praca płaci ci za dowolny samochód, czy dostaniesz Priusa lub Bugatti?
  • Proces zakupu jest bardzo powolny w ich firmie i wymaga wielu działań, które kosztują nawet więcej zasobów ludzkich niż sprzęt samo. Zanim dostali serwer, stał się sprzętem współwystępującym (trochę przesadzone).
  • Jeśli twój szef wie, że IT działa na 500 dolarów z komputerów znajdujących się na półce, patrzy na ciebie jak na hydraulika, trudniej jest usprawiedliwić swoje wynagrodzenie, niż gdybyś zarządzał milionową infrastrukturą i wyglądał jak kierownik elektrowni atomowej.

Tak, wszystko to jest głupie, ale bardzo powszechne. Moim codziennym zadaniem jest przebudowa infrastruktury i optymalizacja kosztów.

Krótka historia do zakończenia: po 3 latach pracy pojawił się problem w usłudze przesyłania wiadomości (Kafka). Niektóre wiadomości były przechowywane kilka razy i powodowało, że następne oprogramowanie w łańcuchu zawodziło (powinno to obsłużyć). Po zbadaniu sprawy odkryłem w dokumentacji, że było to normalne zachowanie systemu przesyłania wiadomości pod obciążeniem. Gwarantuje, że wiadomości dotrą przynajmniej raz, ale mogą występować podwójne wiadomości. Powiedziałem „system jest przeciążony”, a zespół IT śmiał się ze mnie „nie osiągnęliśmy nawet 10\% na naszych 3 węzłach x 48 rdzeniach, 1 TB klastra RAM, jesteś głupi”… Stałem na swoim miejscu i poprosiłem o dostęp w serwisie, aby znaleźć problem. Znając moje poprzednie działania i obawiając się, że ujawnię błąd, sprawdzili wszystko ponownie. Okazało się, że w 10-liniowym pliku konfiguracyjnym Kafki zapisano „number\_of\_thread = 4”. Tak, uruchomili usługę na klastrze za 150 000 USD i używali tylko 4 rdzeni w każdym węźle, dlatego nigdy nie przekraczają 10\% obciążenia procesora. Żadna z 20 zaangażowanych osób tego nie widziała. Działał tak przez 3 lata, nawet laptop o wartości 1000 USD wykonałby zadanie. Robią te same rzeczy we wszystkich aplikacjach, które widziałem w tej firmie. Mimo to zatrudniają ponad 150 000 pracowników i prowadzą 3 ogromne centra danych. Wiele firm robi to samo, mogę opowiedzieć Ci mnóstwo takich historii…

Odpowiedź

Gdyby Twój komputer miał 1 TB pamięci RAM, co byś z nim zrobił?

Dzięki za A2A. Szczerze… sprzedaj go.

Poważnie, pieniądze, które dostałbym z 1 TB pamięci RAM, są więcej niż warte utraty z powodu tak bardzo niestabilnej pamięci.

Oto rzecz. Jeśli coś pójdzie nie tak z komputerem, nie ma możliwości , abyś mógł zrzucić 1 TB pamięci RAM do pamięci stałej w czasie potrzebnym do załamania systemu.

Pamięć RAM to coś w rodzaju technologii „Złotowłosej”.Wszystko, co jest tak duże, co wymaga tak dużej ilości pamięci RAM, nigdy nie dałoby się zaoszczędzić na czas. Nawet niesamowicie szybkie technologie pamięci trwałej (PM), takie jak Z-NAND lub 3DXPoint, po prostu nie nadążają za wymaganą ogromną ilością danych.

[Edytuj – prawie rok później]

OK, więc ta odpowiedź otrzymała kilka komentarzy i wydaje się, że wymaga dodatkowych wyjaśnień. Zamierzam zebrać niektóre z moich odpowiedzi na komentarze, aby uczynić je bardziej płynnymi.

Komputery są zaprojektowane tak, aby zapisywać danych, nie zgub ich. Pamięć RAM jest niestabilna i dlatego naraża te dane na duże ryzyko.

Niektóre dane są danymi „pomocniczymi”. Załóżmy na przykład procesy działające w systemie, które mają bardzo krótkie okresy przechowywania (takie jak procesy aktualizujące metadane w systemie plików). Żyją w pamięci RAM, ponieważ ich użyteczność jest niezwykle krótkotrwała. Nie wymagają również dużej ilości pamięci RAM.

Innym przykładem danych „pomocniczych” są dane używane do renderowania wysokiej jakości audio i wideo, fotografuj, ładuj mapy i tekstury w grach wideo itp. Te dane używają dużo pamięci RAM (nie tak dużo jak 1 TB, ale nadal jest to więcej niż przeciętny dokument Microsoft Word), ale utrata tych danych nie jest tak ryzykowna.

(Kiedykolwiek grasz w grę wideo i widzisz powiadomienie, aby nie wyłączać komputera, gdy widzisz symbol „zapisywania gry”? Tak, to jest moment, w którym Twój komputer zapisuje dane z pamięci RAM na dysk. Zapisywanie danych z pamięci RAM na dysk jest również jednym z najbardziej ryzykownych elementów przenoszenia danych. W ten sposób najczęściej zapisywane pliki ulegają uszkodzeniu .)

Posiadanie 1 TB pamięci RAM – za taki koszt, jak napisałem tę odpowiedź – jest przydatne tylko w przypadku kilku wybranych obciążeń. Ogólnie rzecz biorąc, te obciążenia są poważnymi zadaniami obliczeniowymi, które w innym przypadku wymagałyby ogromnych ilości operacji we / wy.

Obciążenia obliczeniowe w pamięci wykonaj wymagają ogromnej ilości pamięci RAM. Właściwie 1 TB to za mało. Przechowują całe bazy danych w pamięci RAM, aby wykonywać niezwykle szybkie obliczenia. Jednak tego rodzaju dane nie są danymi pomocniczymi ani danymi, które można łatwo zrekonstruować lub ponownie załadować (tak jak w przypadku prostego renderowania projektu wideo).

Większość ludzi – łącznie ze mną – nie uruchamia baz danych w pamięci ani nie musi przechowywać całych zestawów danych w pamięci do przetwarzania.

Więc jeśli masz aplikację który często zapisuje dane (transfer I / O na dysk), wtedy nie potrzebujesz dużej pamięci RAM. Powiedzmy, że program Microsoft Word w tym przykładzie będzie regularnie zapisywać dane z powrotem na dysku, tak aby margines błędu był niewielki (jeśli pamięć RAM ulegnie awarii między zapisami, ilość danych / pracy wykonanej od ostatniego transferu we / wy jest stracony, a to jest ograniczone do minimum). To się nie zmieni wraz z większą ilością pamięci RAM.

Większość aplikacji i obciążeń nie mówi do systemu operacyjnego: „Daj mi całą posiadaną pamięć RAM”. A więc masz dużą liczbę aplikacji tworzących obciążenia z 1 TB pamięci RAM. Jasne, jest szybkie i fajnie byłoby móc to zrobić, ale czy jest to warte tych kosztów? Dla mnie? Nie.

Większość danych, nad którymi pracuje przeciętny konsument, nie wymaga tak dużej ilości miejsca w pamięci ulotnej.

Teraz, mając 1 TB pamięci RAM, niektórzy mają sugerowane dyski RAM. Niestety, jest to dokładnie przypadek użycia, do którego się odnoszę, że 1 TB pamięci RAM to najmniej odpowiedni w praktyce.

Jeśli nie wiesz, czym jest dysk RAM, jest to specjalny przypadek użycia, w którym system operacyjny traktuje określoną ilość pamięci jako bardzo, bardzo dysk. Problem w tym, że wszystko , co jest zapisane na tym dysku RAM, jest – jak się domyślacie – ulotne. Używanie dysku RAM jako głównego obszaru roboczego dla komputera jest często zbyt kuszące dla wielu osób i są zszokowani, gdy odkrywają, że dużo danych, które ich zdaniem są bezpieczne i bezpieczeństwo nigdy nie było.

Każdy, kto używa dysków RAM do przechowywania danych o znaczeniu krytycznym, prosi o kłopoty. Za każdym razem, gdy wykonujesz jakąkolwiek pracę na dysku RAM i „zapiszesz” plik, nie zostanie on trwale zapisany . Nadal musisz zapisać wszystkie te dane z powrotem na głównym trwałym urządzeniu magazynującym. Zakładając 1 TB danych, to dużo dłużej niż ludzie zdają sobie sprawę.

(Uwaga: dyski RAM można zautomatyzować, aby zapisywać je na stałym urządzeniu magazynującym, podobnie jak w przypadku dokumentów Microsoft Word, ale 1 TB nadal zajmuje bardzo dużo , bardzo dużo czasu na przeniesienie się na dysk w sytuacji awaryjnej.)

Maszyny wirtualne są przydatne na specjalne wspomnienie, i jestem wdzięczny Thomasowi Zoltanowi za poruszenie tego tematu. Maszyny wirtualne radzą sobie bardzo dobrze z dużą ilością pamięci RAM, a system operacyjny hosta musi być w stanie ją dostarczyć – zwłaszcza jeśli planujesz hostować wiele maszyn wirtualnych na tej samej maszynie.

(Uwaga: początkowo źle zrozumiałem punkt widzenia Thomasa, że ​​maszyny wirtualne będą używać pamięci RAM, a nie będą przechowywane na dysku RAM . Omawiał oba przypadki użycia i połączyłem je ze sobą. Myślę, że teraz rozumiem, co chciał powiedzieć.)

Oczywiście, używam takich maszyn wirtualnych w moim laboratorium testowym. czas. Moje maszyny testowe mają 128 GB pamięci RAM, aby poradzić sobie z szybkim rozpędzaniem się i wyłączaniem maszyn wirtualnych, a TBH zdecydowanie przydałyby się trochę więcej oddechu, zwłaszcza, że ​​oprogramowanie VMware nie jest tak oszczędne i wredne jak kiedyś be.

Większość ludzi (łącznie ze mną) nie używa środowisk VSAN ani vSphere w swoich domach. Mam go w domu laboratorium , ale na tych maszynach nie ma nic, co mogłoby być nawet zdalnie uznane za krytyczne.

I ostatecznie, ja myślę, że w niektórych komentarzach do tej odpowiedzi leży błędne przekonanie. Niektórzy ludzie zaczęli myśleć, że mówię, że nie ma przypadku użycia tak dużej ilości pamięci . Uważam to za zastanawiające, ponieważ powiedziałem:

[T] Pieniądze, które dostałbym z 1 TB pamięci RAM, są więcej niż warte utraty mając tyle ulotnej pamięci.

I to prawda. Mając prawdziwą, dostępną pamięć RAM o pojemności 1 TB ( żaden z moich komputerów nie może nawet używać takiej ilości pamięci RAM! Tak jak w przypadku, nie mają one możliwości użyj ) to bardzo droga propozycja, a pieniądze, które bym za nią dostały , są warte więcej niż posiadanie ich teraz .

Za 4 czy 5 lat? Cóż, kto wie. Prawdopodobnie spojrzymy wstecz na tę odpowiedź (tak jak robimy to w przypadku wszystkich odpowiedzi związanych z komputerami, które dotyczą prędkości i posuwów) i pomyślimy: „Jakie to ciekawe! Pamiętasz, kiedy 1 TB był niedostępny ? ” 🙂

Nawiasem mówiąc…

Powodem, dla którego ta koncepcja pojawiła się w dyskusji, jest to, że miałem klienta, który wykonał dużą ilość przetwarzania w pamięci (w rzeczywistości 1 TB) , który musiał mieć możliwość upuszczenia wszystkich zapisanych obliczeń na dysk w 8 sekund. Problem polegał (i nadal jest), że podczas gdy obciążenie obliczało wyniki w fenomenalnym tempie, nie było możliwości zapisania danych w pamięci trwałej w czasie, w którym system zostałby wyłączony z powodu sytuacji awaryjnej (alarm pożarowy, przełączenie awaryjne, ostrzeżenia o progach systemu itp.).

Zatem pytanie brzmi: ile pamięci RAM jest „tego warte?” Jaka jest wartość „trochę” szybszego na $ / £ / E? Cóż, decyzja należy do każdej osoby. Dla mnie ta linia wartości nie została jeszcze przekroczona.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *