poniedziałek, 5 grudnia 2016

Ramdysk jako narzędzie do ochrony dysku SSD i przyspieszenia komputera

Ramdysk nie jest nową technologią. Według Wikipedii pomysł wyodrębnienia części pamięci operacyjnej jako dysku twardego był wykorzystywany już w latach 80. ubiegłego wieku.

Nie wiem. Skoro tak piszą, to pewnie tak było :)

Przenosząc się jednak szybko do czasów bieżących pragnę przestawić mój sposób na korzystanie z tego typu technologii. Sposób dzięki któremu Wasz komputer (zwłaszcza programy intensywnie korzystające z plików tymczasowych) przyspieszy, a jednocześnie Wasz dysk SSD odpocznie.
Same zalety? Prawie ;)

Ale najpierw wyjaśnię, czym jest ten ramdysk (poniższa definicja jest moja, więc macie prawo się z nią nie zgodzić:)
Ramdysk
Wydzielona część pamięci RAM która, dzięki odpowiedniemu oprogramowaniu, widoczna jest w systemie operacyjnym jako dysk twardy.
A przedstawiając to obrazkowo mamy poniższy schemat logiczny.

Schemat logiczny technologii ramdysku
Schemat logiczny technologii ramdysku


Podsumowując zaś powyższe.
Jeżeli macie dość sporo pamięci RAM (możecie to sprawdzić poprzez Menedżera zadań wywoływanego np. skrótem Ctrl + Shift + Esc), to warto część z niej przeznaczyć na utworzenie dysku twardego.

Po co? Czytajcie dalej.

Menedżer zadań systemu Windows 10, zakładka Wydajność
Menedżer zadań systemu Windows 10, zakładka Wydajność

Wydajność ramdysku

Zwiększenie wydajności jest jedną z dwóch rzeczy, którą możecie osiągnąć dzięki wykorzystaniu tej techniki. Oczywiście wszystko zależy do czego jej użyjecie.
Przedstawię Wam teraz jaka jest jego wydajność na tle szybkiego dysku SSD HyperX Savage 240GB i całkiem szybkiego dysku talerzowego Seagate ST2000DM001.

Wydajność talerzowego dysku Seagate ST2000DM001
Wydajność talerzowego dysku Seagate ST2000DM001
Wydajność dysku SSD HyperX Savage 240GB
Wydajność dysku SSD HyperX Savage 240GB
Wydajność Ramdysku opartego o 2 kości Crucial Ballistix Tactical 8GB
Wydajność Ramdysku opartego o 2 kości Crucial Ballistix Tactical 8GB
A żeby było bardziej czytelnie, to powyższe wyniki zobrazowałem na wykresie, gdzie dokładniej widać relacje wydajności pomiędzy wymienionymi dyskami.

Powyższymi informacjami nie chciałem ukazywać, że akurat "ten" dysk, jest lepszy od "tamtego" dysku, ale pokazać skalę różnicy pomiędzy ramdyskiem, a dyskami (czy to HDD, czy SSD).
Ramdysk, z racji oparcia swojej pracy o pamięć RAM jest nie do przebicia w wydajności przez klasyczne dyski. Jego wydajność może zostać podniesiona poprzez maksymalne wykorzystanie kości pamięci, tj. ustawienie ich natywnych częstotliwości taktowania (lub lekkie przetaktowanie) oraz ustawienie do pracy w trybie więcej niż jednokanałowym. Więcej o tym możecie przeczytać w poście pt. "Dwukanałowa obsługa pamięci RAM (dual channel) - parę zdań"

No dobrze, ale jaką korzyść z powyższych informacji może mieć zwykły "Kowalski"?

Ja chcę Ramdysk! ... - ale po co?

No i tutaj doszliśmy do sedna. Fajnie, że jest coś takiego jak ramdysk, fajnie, że jest taki szybki. No i w ogóle fajnie ;) 
Ale jaką korzyść można z niego mieć? 
Cóż. Zapewne zastosowań dla niego jest wiele. W dalszych zdaniach pozwolę sobie opisać jeden ze sposobów do którego ja go wykorzystuję.

Ramdysk jako miejsce na pliki tymczasowe

Systemy operacyjne, jak też wszelkiej maści programy, wykorzystują do swojej pracy foldery tymczasowe nazywane zazwyczaj TEMP i TMP. W Windowsach ich lokalizacja definiowana jest zmiennymi systemowymi wyglądającymi jak poniżej (ta informacja może przydać się Wam w dalszej części tekstu). 
    Zmienne użytkownika
  • Zmienna TEMP:%USERPROFILE%\AppData\Local\Temp
  • Zmienna TMP:%USERPROFILE%\AppData\Local\Temp

    Zmienne systemowe
  • Zmienna TEMP:%SystemRoot%\TEMP
  • Zmienna TMP:%SystemRoot%\TEMP

Jak widać powyżej zmienne odwołują się do profilu użytkownika (%USERPROFILE%) i folderu Windows (%SystemRoot%), a więc lokalizacji mających zwyczajowo swoje miejsce na dysku C:\

Tutaj dochodzimy do sedna.

Z racji tego, że odwołanie takie ma miejsce do dysku systemowego to wynikają z tego dwa skutki. 
  1. Jeżeli Wasz dysk C:\ jest talerzowym dyskiem twardym to jego wydajność w najlepszym przypadku będzie podobna do posiadanego przeze mnie (screen podpisany "Wydajność talerzowego dysku Seagate ST2000DM001"). Daleko mu więc do wydajności dysków SSD, nie wspominając o tytułowym ramdysku. 
  2. Z kolei, jeżeli Wasz dysk systemowy oparty został o SSD to wiecie zapewne, że częste operacje zapisu / odczytu zmniejszają jego żywotność. 
Jak więc poradzić sobie z przypadłością dysku talerzowego oraz ograniczyć "oranie" Waszego SSD plikami tymczasowymi?

No oczywiście użyć ramdysku! :) Uzyskamy wysoką wydajność oraz odciążymy dysk. 
Ramdysk pozwala na obejście niskiej wydajności dysku talerzowego i ogranicza ilość niepotrzebnych operacji zapisu / odczytu na dyskach SSD
Oczywiście możecie zadać pytanie, czy plików tymczasowych jest aż tak dużo, żeby się opłacało bawić z ramdyskami?

Niestety na to pytanie Wam nie odpowiem. Ja mam 16 GB pamięci RAM z czego 3 GB przeznaczyłem na ramdysk. Taka konfiguracja funkcjonuje u mnie od dłuższego czasu. I fakt faktem, że w kwestii wydajności różnicy nie widzę (bo mój systemowy SSD jest dość szybki; ma deklarowane parametry 560 MB przy odczycie i 530 MB przy zapisie), ale za to mam spokojne sumienie, że nie oram po nim plikami  tymczasowymi.

Natomiast ilość plików tymczasowych, przy pisaniu niniejszego tekstu, słuchaniu muzyki i chyba niczym więcej, wynosi około 200 w ciągu 10 minut pomiaru (co widać na poniższym screenie, który można powiększyć). Oczywiście ilość zapisywanych plików, nie tylko co do ilości, ale także, co do rozmiaru, zależy od charakteru Waszej pracy przy komputerze. Korzystanie z programów do edycji wideo, czy grafiki 3D może spowodować generowanie znacznych ilości danych.

Monitorowanie ilości zapisywanych danych do folderu TEMP na ramdysku
Monitorowanie ilości zapisywanych danych do folderu TEMP na ramdysku
Jeżeli jesteście ciekawi jak wykorzystanie plików tymczasowych wygląda u Was, to polecam skorzystać z przedstawionego powyżej programu FolderChangesView, który będzie monitorował wskazane przez Was foldery tymczasowe (ścieżki do nich umieściłem kilka akapitów wcześniej).

Ja chcę Ramdysk! ... - i teraz już wiem po co!

Jeżeli macie wystarczającą ilość wolnego RAMu i doszliście do wniosku, że warto dać szansę ramdyskowi to pewnie oczekujecie, że polecę Wam jakiś program do tego ;)

No cóż. Znacie mnie jak własną kieszeń :)

ImDisk Virtual Disk Driver - darmowy program o dość sporych możliwościach, ale niestety obsługiwanym tylko z poziomu konsoli. Jeżeli Was to odstrasza, lub po prostu nie macie ochoty bawić się w ten sposób to polecam wersję "okienkową" noszącą nazwę ImDisk Toolkit.
Wstawiając linka do ImDisk Toolkita, Chrome ostrzegło mnie, że na stronie sourceforge może być szkodliwe oprogramowanie. Nie wiem czy to ostrzeżenie dotyczy ogólnie sourceforge'a, czy tego programu. Pobrałem go i przeskanowałem aktualnym Esetem, który nic nie wykazał.
Ja korzystam z ImDiska około 2 lat i na szczęście, do tej pory, nic złego nie zauważyłem.
No cóż. Póki co, ja korzystał z niego będę, natomiast mając na uwadze powyższe, może polecicie w komentarzach inny darmowy program o podobnej funkcjonalności?

No cóż. Chrome takim komunikatem zbiło mnie z pantałyku...

Co do ImDiska - Opisywać program, czy nie opisywać...?
Po zastanowieniu się nad tym doszedłem do wniosku, że jest on na tyle intuicyjny, że jeżeli zdecydujecie się z niego skorzystać, to powinniście dać sobie z nim radę.
Poniżej dwa screeny z konfiguracją mojego ramdysku, które w razie potrzeby mogą się Wam przydać :)

Okno konfiguracji ramdysku w ImDisk Toolkit
Okno konfiguracji ramdysku w ImDisk Toolkit

Okno konfiguracji lokalizacji folderów tymczasowych (tutaj przestawione na dysk R:\ który jest ramdyskiem)
Okno konfiguracji lokalizacji folderów tymczasowych (tutaj przestawione na dysk R:\ który jest ramdyskiem)
Tutaj muszę zaznaczyć, że mój ramdysk ustawiony jest tak, aby po każdym restarcie komputera tworzył się na nowo. Więc nie mam problemu z zapchaniem go wskutek upływu czasu.

Kilka słów podsumowania na koniec

Dzięki ramdyskowi możecie, w pewnych sytuacjach, przyspieszyć swój komputer oraz odciążyć dysk od rzeźbienia go małymi plikami tymczasowymi. To są niewątpliwe zalety. 
Minusem, jak się oczywiście już domyślacie, jest zabranie części dostępnej pamięci RAM.
Jeżeli jednak dysponujecie odpowiednią ilością wolnego RAMu to polecam spróbować.

Być może odnajdziecie jeszcze inne zastosowania tego typu technologii. Jeżeli tak, to podzielcie się tym w komentarzach :)



19 komentarzy:

  1. O ;) właśnie tego szukałem ! Dzięki!
    Co do innych scenariuszy użycia i innych programów to na steamie jest programik (niestety platny) który służy do umieszczania gier w ramdysku (sam wybiera co tam dac) co podobno bardzo się przydaje we wszystkich strzelankach itd. Nie testowałem bo nie gram zwykle ale może komuś się przyda.

    OdpowiedzUsuń
    Odpowiedzi
    1. Cześć Merlin1984 :)

      Kurcze, ale mnie zaskoczyłeś. Dopiero opublikowałem posta, a już taki przychylny komentarz. To ja dziękuję ;)
      Nooo, co do umieszczenia gry w ramdysku, to takie połączenie musi nieźle wymiatać.

      Dzięki za info i pozdrawiam :)
      Daniel.

      Usuń
  2. ja pierdu, nawet tutaj wielki brat... wstydzisz sie nieprzychylnych komentarzy ?? :P

    OdpowiedzUsuń
  3. RAMdisk - jest to taki "stwór", który zmniejsza rozmiar pamięci operacyjnej dla systemu, dlatego przed decyzją o użyciu takiego softu musimy się dobrze zastanowić, wszak System najlepiej wykorzysta pamięć RAM, a jeżeli mu jej zabraknie zacznie korzystać z pliku wymiany znajdującego się na dużo wolniejszym dysku twardym. Gdy jednak dysponujemy dużą ilością RAMu, a system nie wykorzystuje jej w 100%, to możemy pokusić się o zarezerwowanie określonego przez nas obszaru na dodatkowy dysk. W jeszcze „lepszej” sytuacji są posiadacze systemów 32-bitowych, które to w praktyce potrafia zagospodarować tylko 3,5 Gb pamięci RAM, więc jeżeli macie coś ponadto, będzie to leżeć odłogiem, i właśnie wtedy RAMdysk jest najlepszym rozwiązaniem na zagospodarowanie wolnych zasobów pamięci.


    a i jeszcze jedno przy użyciu RAMDISK'u to lepiej w ogóle wyłączyć plik wymiany, gdyż idea pliku wymiany jest prosta: Brakuje RAM'u, to część tego co ma być w RAM'ie zapisuje na dysk, ale w tym przypadku zabieramy RAM! -> Wrzucamy w niego ten sam RAM który wcześniej zabraliśmy, ale dodatkowo musimy to obsługiwać, co zabiera czas procesora i pamięć. reasumując powyższy idiotyzm to należałoby dać porade:

    Stwórz RAMDISK, w nim stwórz kolejny, w nim kolejny, kolejny, kolejny a na końcu wrzuć tam plik wymiany :)

    ot taka mała dygresja...

    i jeszcze na koniec mała ciekawostka gdyż samo ustawienie TEMP'ów systemowych na "X:\Temp" tak naprawde nic nie daje gdyż przeglądarki nadal korzystają ze ścieżek domyslnych dla siebie..

    i tak np. dla Opery ścieżkę "Element docelowy" zmieniamy na "C:\Program Files (x86)\Opera\launcher.exe" --disk-cache-dir=X:\Temp

    po czym wszystko jest tak jak chcieliśmy :)



    podsumowanie:

    Mój drogi Danielu z przykrością muszę Ci to powiedzieć iż przez dwa lata jednak "orałeś" swojego ssd'ka całkiem nieświadomie :)

    OdpowiedzUsuń
    Odpowiedzi
    1. Witaj Janie ;)

      Dzięki za komentarz :)
      Nie mam obecnie dostępu do systemu 32 bitowego, ale wydaje mi się, że skoro system operacyjny nie jest w stanie zaalokować pamięci powyżej 4GB, to program, który w nim pracuje (mowa o programie do tworzenia ramdysku) też nie zobaczy wartości powyżej 4GB i nie będzie można wykorzystać nadwyżki pamięci do utworzenia ramdysku.

      Co do pliku wymiany. Sprawa nie jest taka prosta. Kiedyś temat rozgryzałem i wyczytałem wiele opinii, że niezależnie od ilości dostępnej w systemie operacyjnym pamięci RAM, plik wymiany powinien być. Oczywiście możesz się z tym nie zgodzić i temat będzie można dalej zgłębiać.

      Co do zmiany folderów plików tymczasowych przeglądarek, to nic o nich nie pisałem, a jednocześnie zaznaczyłem, że czytelnicy być może znajdą wiele innych przypadków wykorzystania ramdysku ;)
      Faktycznie przeniesienie folderu plików tymczasowych przeglądarki ma sens i może przynieść wymierne korzyści. Ja się na to nie zdecydowałem ponieważ mój ramdysk przy każdym uruchamianiu systemu jest tworzony od nowa, więc cały cache przeglądarki leciałby w kosmos. A tego nie chcę.
      Ale dzięki za sugestie :)

      Pozdrawiam serdecznie
      Daniel

      Usuń
    2. Ciekawa sprawa z tym plikiem wymiany. Ja, odkąd pamiętam, zawsze wyłączałem swapa i nie pamiętam programu, który jego istnienia by się domagał :) Co do orania po dysku - czy ilość zapisów do tempa jest aż tak duża żeby w ogóle się tym przejmować? Pomijam oczywiste wyjątki jak obróbka dużych ilości danych. Ilość danych, które można zapisać na dysk (nawet w przypadku tanich dysków SSD) jest przerażająca duża. A zanim dysk padnie zapewne zostanie wymieniony na nowszy :) Kiedyś owszem używałem ram dysku ale to była epoka dyskietek i twardzieli o pojemności 2 giga :)

      Usuń
  4. bez sensu usunac sie dalo ale slad zostaje.. :/

    OdpowiedzUsuń
  5. Ten komentarz został usunięty przez autora.

    OdpowiedzUsuń
    Odpowiedzi
    1. Cześć Unknown :)

      Pomysł bardzo ciekawy. Jeżeli pendrajw byłby o wydajności podobnej do dysku twardego, to można się zastanawiać. Ale jest jeszcze druga strona medalu. Z tego co kojarzę, to pendrajwy mają ilość cykli zapisu / odczytu dużo niższą niż HDD lub chociażby SSD. Przy tego typu wykorzystaniu (czyli mielenie po nim plikami tymczasowymi) mogłoby się okazać, że już w niedługim okresie czasu zaczęłyby się pojawiać na nim błędy. Warto o tym pamiętać.
      Jeżeli więc miałbyś wydawać jakąś kwotę pieniędzy na szybkiego pena, to lepiej chyba dokupić ramu i ustawić ramdysk.

      Pozdrawiam serdecznie :)
      Daniel

      Usuń
  6. Witam
    Tworząc folder Temp w Ramdysku,zmieniam ściezkę np:R:\Temp w RamDisk Configuration zakładka Basic(Create a Temp Folder).Czy coś zmienić trzeba w zmiennych usera w WINDOWS(Pana tabelka zmienne użytkownika)

    OdpowiedzUsuń
  7. Witam
    Imdisk-basic-create a temp folder, wpisałem wg Pana wskazowek:x:\Temp.
    Moje pytanie jest takie, czy mam tez zmienić w Windows zmienne systemowe i usera(TMP,TEMP)?
    Do czego sluży zakładka Data?Jak zapisać save gry i gdzie,zeby zapis został,

    OdpowiedzUsuń
  8. Witaj Mariuszu,
    Jeżeli chodzi o pierwsze pytanie, to aby Windows poprawnie korzystał z folderu plików tymczasowych na ramdysku, to należy mu ustawić zmienne użytkownika. Można to zrobić ręcznie, albo poprzez przycisk "set TEMP variables" na zakładce Basic.
    Co do drugiego pytania. Kiedyś trzeba było kombinować z zapisywaniem stanu ramdysku, ale teraz widzę, że na zakładce Data możesz wskazać folder do którego stan ramdysku ma zostać zapisany przy wyłączaniu komputera. Tak więc, jeżeli zamierzasz w ramdysku przechowywać save gry to powinno to być rozwiązanie dla Ciebie. Chociaż zanim zdecydowałbym się na trzymanie tam saveów to przetestowałbym to rozwiązanie baaardzo dokładnie.

    Pozdrawiam
    Daniel

    OdpowiedzUsuń
  9. Dziekuję za szybka odpowiedz.Artykuł bardzo przystępnie napisany dla laików,tylko mi brak wyjaśnienia reszty zakładek z Adwanced i Data
    Usunąłem p\program czyszczacy vitaprofesional 1 folder Imdiska recznie.teraz gdy właczam windowsa niema ramdysku tzreba go za kazdym razem tworzyć. Co zrobic,usunać Imdiska i wgrać od nowa?

    OdpowiedzUsuń
    Odpowiedzi
    1. Hej :)

      Mariuszu, nie do końca rozumiem co się u Ciebie stało. Co to jest "vitaprofesional 1"? Napisz mi coś więcej poprzez formularz kontaktowy z prawej strony bloga, a odpowiem Ci mailem. Będziemy mogli wtedy coś więcej zbadać.

      pozdrawiam
      Daniel

      Usuń
  10. wysłany trochę pózno,problemy techniczne.
    Dziekuję za zainteresowanie, bo jestem kompletn laik.

    OdpowiedzUsuń
  11. Pytanie do Daniela w czasie instalacji ImDisk i zaznaczeniu opcji temp nigdzie nie ma mowy, żeby jeszcze coś ustawiać w windowsie taka zakładka powinna to automatycznie ustawić tym bardziej, że nie każdy jest lotny w zakresie IT i to samo powinno się dziać przy zamykaniu systemu. Tak to rozumiem , że tylko raz na ssd automat zapisuje cokolwiek przy wyłączaniu systemu.

    OdpowiedzUsuń
  12. Pytanie do Daniela w czasie instalacji ImDisk i zaznaczeniu opcji temp nigdzie nie ma mowy, żeby jeszcze coś ustawiać w windowsie taka zakładka powinna to automatycznie ustawić tym bardziej, że nie każdy jest lotny w zakresie IT i to samo powinno się dziać przy zamykaniu systemu. Tak to rozumiem , że tylko raz na ssd automat zapisuje cokolwiek przy wyłączaniu systemu.

    OdpowiedzUsuń
  13. Kiedyś był opis jak umieścić na Ramdysku całego Windowsa 98. Spróbuj z 10 :)

    OdpowiedzUsuń
  14. Temat wraca przy SSD M2 gdy widzę dzienny zapis ssd na poziomie 30GB...
    Przy 32G Ramu ustawiłem Ram dysk z plikiem wymiany, ale startuje on za późno, w efekcie mam tymczasowy plik wymiany na dysku C. jest jakaś możliwość ustawienia sekwencji startu, aby ram dysk startował jako pierwszy?
    A dla tych co uważają, że plik wymiany jest zbędny(sam tak uważałem jeszcze miesiąc temu), proponuję zagrać w choćby Life is strange ......

    OdpowiedzUsuń

Bardzo proszę o zachowanie netykiety.