Sprzęt i cały system operacyjny w 128 GB RAM

Zamierzam do dwóch komputerów dać 64/128 GB pamięci RAM (Ryzen 3900X na czipsecie X-570 oraz Intel 9-gen na czipsecie Z390) bo chciałbym aby przy uruchomieniu komputera system się załadował do tej pamięci (coś w stylu RAMdisk) - wtedy będzie szybciej pracował (komp może chodzić sobie kilka dni, a przy wyłączeniu zamykanie systemu, robie backup, UPS, wiem co mi grozi jak prądu zabraknie itd.), robię dużo operacji na plikach. Czy to się da zrobić dla 1) Windows 8.1 2) Windows 10 3) Linux Mint 19.2? Czy ma ktoś sprawdzony tutorial? Jakieś porady? Na co mam uważać?
Czy sprzęt dobrać konkretnej firmy/modelu?

Druga kwestia - znacie może jakieś sprzętowe ramdyski typu PCIEXpress REVOdrive? (na plytce kosci ram + bateria)

Po pierwsze. Ramdisk dla systemu nie ma sensu. Załadowanie systemu w 0.5s zamiast 2s chyba nie jest dla Ciebie kluczowe, bo nie będziesz w kółko uruchamiał i zamykał systemu by popatrzeć jak szybko to robi.
Ramdisk ma fajne przeznaczenie dla aplikacji operujących na dużych plikach lub aplikacjach wykonujących ciężkie obliczenia.

Wydaje mi się, że w dobie dysków NVMe mających po 4/5 GBps zapisu i odczytu, jest to wszystko zupełnie niepotrzebne.
RAM nie jest od zastępowania dysku, tylko od trzymania danych operacyjnych. System sam najlepiej zdecyduje co warto w nim trzymać. Na pewno nie pliki, które odczytujesz raz na sesję, albo wcale.

Ten REVOdrive jest kompletnie bez sensu, bo jest wielokrotnie wolniejszy od współczesnych dysków NVMe.

Jeśli już to tylko to pierwsze i to też bardzo wątpliwe :slight_smile:
Jeśli ten plik zawiera jakiekolwiek dane, które przetwarzamy (a nie po prostu kopiujemy z miejsca na miejsce) to przepustowość tego przetwarzania zapcha się dużo szybciej niż współczesny dysk.

Akurat ładowanie będzie duuużo dłuższe, bo najpierw musisz wszystko do tego RAMu przekopiować. W tym 99% rzeczy niepotrzebnych.

1 polubienie

Ja zaś powiem krótko: choć może i jest to wykonalne - to jedynie w celach “naukowych”, bo do celów użytkowych, podstawowym problemem będzie to, że … i tak najpierw musisz załadować PROGRAM który stworzy ci RAM DISK i załaduje do niego (jak sądzę) obraz działającego systemu. (ten problem jest rozwiązywany sprzętowo w niektórych rozwiązaniach serwerowych). Można się pokusić o zakup i użycie NVDIMM - ale po pierwsze - to rozwiązanie ma prawo nie zadziałać na płytach “cywilnych”, a po drugie - jak ostatnio sprawdzałem NVDIMM DDR4 32GB - to koszt w okolicach 4 tys. zł za moduł.

1 polubienie

To samo chciałem napisać. Różnice w działaniu systemu będą niezauważalne, a pliki i tak gdzieś będą musiały być zapisane. Natomiast problemy pojawiają się w razie ewentualnego zaniku zasilania. Dla mnie sztuka dla sztuki.

1 polubienie

@panicagaming @kowgli @Veers @anon17641694

Dzięki za odpowiedzi i już Wam to nakreślę:

Odpalam kompa raz, laduje się wiadomo długo będzie to trwało. Potem przez tydzień nie będzie wyłączony komputer z sieci (dla uproszczenia załóżcie że UPS jest i podtrzymuje na tyle żeby bez problemu zrzut zrobić w razie czego). Po tygodniu intensywnego żyłowania plików, szczególnie dużych odczytywanych transferem liniowym zapisuję (owy zrzut) i mam.
Czy warto? No myślę że tak bo przecież RAM jest szybszy od najszybszego dysku NVMe w liniowym, czyli 5000 MB/s, a co dopiero te mniejsze pliczki…

Jak to najlepiej wykonać, na co uważać?

Co jak ci się komputer zawiesi? Dane w RAM trafi szlag.

Napisz przede wszystkim do czego chcesz ten komputer używać. Obecnie naprawdę ciężko znaleźć zastosowanie w którym prędkość IO będzie ograniczeniem.
Tzn. wiadomo są np. bazy danych, albo masowe serwery plików, ale to już one same dbają o to, aby wrzucać do RAMu to co jest najczęściej używane. Pchanie wszystkiego do RAMu (choćby 40GB plików Windowsa z czego większość będzie odczytana raz lub wcale), jest zupełnie bez sensu.

Stawiałbym raczej na to, że przy dużych plikach może być jakaś różnica. Kontrolery we współczesnych dyskach SSD są dosyć sprytne. Sporo rzeczy wewnętrznie buforują do pamięci typu RAM bezpośrednio w kontrolerze. Czytając np. w kółko te same małe pliki będą one w buforze.

To co miało sens przy dyskach talerzowych, ewentualnie SSD na SATA, obecnie przy dyskach NVMe już moim zdaniem nie ma. Z jakiegoś powodu nikt tego nie robi.

Zrobisz oczywiście jak uważasz.

1 polubienie

dokładnie użytkownik @kowgli dobrze mówi taki ramdisk nie ma sensu. ładowanie systemu całego nie ma żadnego sensu ponieważ to własnie system jest od tego by decydować co aktualnie w ram ma siedziec.
Zamiast ładować tyle kasy w ram zakup po prostu wydajny SSD.

A ewentualnie jak zależy ci by jakiś program siedział w ram cały to wtedy sobie go tam wrzucisz :slight_smile:
tylko trzeba sobie zadać pytanie czy to ma sens jak różnica będzie nie wielka :slight_smile:

Kiedyś się bawiłem w ramdisc jak SSD jeszcze nie było. Jak pojawiły się dyski SSD 60 GB kosztowały nawet te 350 zł kupiłem i nie żalowałem nawet że tyle zapłaciłem :slight_smile: Bo z praktycznego pkt widzenia to dużo lepsze rozwiązanie niż ramdisc.

@kowgli

Tak Kolego. To będą duże pliki obrabiane w tej pamięci wielokrotnie, wielokrotnie przeżuwane. Zanik prądu/zawieszenie - pisałem abyście proszę nie brali tego pod uwagę bo zabezpieczam się przed tym (już nie ważne jak).
jakby nie było - doceniam odpowiedź
pomóż proszę co wybrać (firma/model), czego strzec się, jakie stop mnie może spotkać (patrz 1 post)

@MrBeckham666

Dbasz o mnie, dzięki, ale ja na prawde wiem w co ładuję kasę i nawet jeśli to będzie błoto to ja po D. dostane.
Skupmy się na meritum - tu mi możecie bardzo pomóc - który tutorialek i jak to wszystko spiąć do kupy dajmy na to na przykładzie L. Mint.

PS. Zauważyłem buźki-wyśmiewajki innych użytkowników:

Zastanówcie się - czy forum nie było by lepsze gdyby każdy czytał ze zrozumieniem i odpowiadał na pytanie?
Skoro w kilku miejscach sygnalizuję, że jest mi potrzebny tak skonstruowany system i wiem, że mi się przyda choćby sekunda i wydaję moje pieniądze a nie wasze no to… w czym problem? Po co to ukryty hejt, korzystajmy z tego dobra jakie daje nam forum.

Ciekawy temat. Może to nie jest odkrywcze rozwiązanie i najlepsze, ale ja bym to spróbował ugryźć w następujący sposób:
Na dysku NVMe zainstalowałbym system + oskryptował go by montował RAM dysk, do niego wrzucił obraz z NVMe (wcześniej utworzony) kontenera LXC. Wystartował kontener.

W kontenerze LXC skonfigurowałbym i oskryptował aplikację która ma działać na ramdysku.

Generalnie nie widzę potrzeby trzymania systemu na ramdysku z tego względu, że system i tak ładuje się do RAM i rzadko w sumie na serwerach dociąga coś z dysku.

Jedyne problemy jakie widzę to potencjalne błędy na poziomie I/O RAM, może Ci to wywalić program w momencie jak odczyta niepoprawne dane lub obliczenia mogą być niepoprawne - swego czasu był problem z kartami graficznymi TitanXP które były wykorzystywane do akceleracji obliczeń chyba wa CAD, przez problemy z pamięcią kart dochodziło do sytuacji gdzie wyniki były przekłamane o jakieś setne czy tysięczne części. Problem w tym, że takie przekłamanie może mieć ogromne znaczenie (np. podczas projektowania budynków) oraz przy niektórych obliczeniach błąd obliczeń może powiększać się logarytmicznie wraz z kolejnymi obliczeniami.

Dlatego też, zastanowiłbym się na ile to co chcesz obliczać jest odporne na takie błędy i jak chcesz je wyłapywać. Również szedłbym tylko i wyłącznie w stronę pamięci ECC, ale to wymaga też zmiany płyty i procesora bo konsumenckie z tego co mi wiadomo nie wspierają ECC.

Jeśli szukasz czegoś typu, wpada policja rekwiruje sprzęt i nie chcesz by dane zostały przez nich przejęte i chcesz aby skasowały się one po odcięciu prądu to najlepiej stawiać wirtualne maszyny lub kontenery LXC z file systemem w RAM dysku. Jest lub była firma oferująca VPNy które miały oferować bezpieczeństwo i anonimowość nawet w przypadku przejęcie serwerów przez policję właśnie w ten sposób, że VPNy były uruchamiane na wirtualnych maszynach stojących na RAM dyskach.
Jedyną opcją przejęcia danych z takiego serwera jest albo zalogowanie się do niego bez jego odłączania albo podobno da się zamrozić RAM ciekłym azotem, przewieźć sprzęt i przeanalizować w LABie. W teorii niska temperatura ma utrzymać niezmienione ładunki elektryczne w komórkach RAM.

@Fizyda

Wzorowa odpowiedź, na temat i no hate - wielkie dzięki.

Niestety wymiękam jeśli chodzi o zrozumienie większości tego co napisałeś.

Ciekawy przykład z tą Policją ale nie o to ochodzi.

Będę testował hardcorowo maszyny virtualne z dystrybucjami linuxa, windowsa o ile da radę więc chyba nie potrzeba ECC?
W ramdisku będzie .iso .vdi i snapshoty VirtualBoxa, dwa ostatnie będą katowane zmianami, stąd cały ten pomysł żeby wszystko dać do RAMu.

PS mamy na linux mint coś równie fajnie jako VirtualBox (inny program)?

Tak LXC znacznie lepsze. VBox to wirtualizacja całego systemu, LXC to lekki kontener gdzie jajko jest współdzielone, ale reszta systemu wirtualna. Generalnie LXC robi tak mały narzut w porównaniu do VBoxa, że można go pominąć i założyć, że aplikacja w kontenerze LXC będzie działała tak samo wydajnie jak na hoście.

Dalej nie widzę sensu trzymania iso na ram dysku, tak samo jak snapshotów. Wszystko zależy od tego co tak naprawdę robisz i czego I/O chcesz zoptymalizować. Tego nie mówisz więc z automatu nie da się podać Ci optymalnego rozwiązania, a sam mam wrażenie, że też nie możesz ustalić jaka będzie optymalna konfiguracja na Twoje potrzeby.

@Fizyda dobre pytania zadajesz na które nie mam odpowiedzi bo aby je zadać o dziwo muszę zapytać wpierw o pewne ogólniki bo jeśli się okaże iż np moja koncepcja nie ma szans bo dajmy na to nie da się w żaden sposób OSa dać całego do ramu a potem go zrzucić z powrotem, albo jakieś limity MS/s itd. Pytam wszystkich o to jakie problemy występują przy takich rozwiązaniach dlatego odnosisz takie wrażenie, że jestem jak dziecko we mgle - po części prawda bo rzuciłem ten pomysł na patelnie i wydaje mi się ok. PS, trochę uprość to co piszesz bo nie jestem taki sprawny w linuksie (twoje ostatnie wpisy)

Oczywiście że nie jest bez sensu, ale nie w takich zastosowaniach. Przecież to jest standard, że bazy danych czy większą część OSu trzyma się w RAM.

@bachus a jakby cały tam wrzucić linux, pracować po paru dniach zrobić zapis i wyłączyć komputer?

??
A co ja napisałem na temat baz danych. Tak trzyma się dane w RAMie, ale to serwer baz danych decyduje co. Jeśli cała baza się mieści to świetnie, ale i tak musi zapisywać strony na trwałym nośniku przy zamykaniu transakcji.

To co piszesz z OS’em to bzdura. Ładuje do pamięci bardzo niewielką część plików. No… pytanie co masz na myśli pisząc o systemie. Mi chodziło o zawartość katalogu C:\Windows.

@kowgli potwierdzam, w Windowsie jak i w Linuksie niewiele idzie do RAM. Widać to chciażby po zużyciu zasobów podczas sesji

Jedyny najprostszy powód w którym ma Sens to: Kompresory PAQ {Mój ulubiony wątek - a “Nie wykorzystywany RAM to Zmarnowany RAM” to tzw. Niemerytoryczna śpiewka zgrana od lat i nie mająca nic wspólnego z danym celem} i Spora magistrala RAMdisk’u (Ostatni dobry System bez lagowania po Zapełnieniu to FatDog64-721, późniejsze Wersje po Zapełnieniu to zamuły które nie powinne być pod żadnym pozorem odpalane na Starszych Generacjach niż ze 2016r. w którym Mesa coś wykrywa do Grania gier itd.)

@Illutorium czyli innymi słowy mówiac… ?

Paproć.