Ramdisky pro Windows

Ve svém počítači už řadu let s úspěchem používám nejrůznější ramdisky – programy, které dovolí k části operační paměti přistupovat, jako kdyby to byl klasický pevný disk, tzn. vytvářet v ní soubory, kopírovat je, spouštět v ní programy a podobně. Základní výhodou přitom je rychlost práce s ramdiskem – přístupové doby se pohybují řádově v desítkách nanosekund (asi tak 100 000krát rychlejší než u klasických disků), přenosové rychlosti přinejmenším v jednotkách GB za sekundu (řádově desetkrát více než u nejrychlejších rozumně dostupných dnešních médií včetně SSD). V dalším textu uvedu několik způsobů, jak výhody ramdisku co nejlépe využít, a doporučím několik programů, které mám důkladně vyzkoušené.

Nevýhody ramdisku

Než se vrhnu do důvodů, proč vůbec ramdisk používat, je třeba zmínit několik důvodů, proč se mu radši vyhnout:

  • Ramdisk je statický – jednou provždy má danou velikost a obsah a tyto udržuje bez ohledu na aktuální situaci. Fakticky to znamená, že ramdisk je buď zbytečně malý (když zrovna není spuštěná žádná paměťově náročná aplikace, mohla by se volná paměť použít k předběžnému načtení dalších dat) nebo příliš velký (zabírá paměť, kterou by ta žravá aplikace mohla použít pro sebe). Standardní cachovací mechanismy operačních systémů dokáží plnit skoro stejnou funkci jako ramdisk, ale dělají to dynamicky – vyplní svou cache celou volnou paměť, ale kdykoliv ji rychle uvolní, pokud o ni nějaká aplikace požádá.

  • Ramdisk je dočasný – svůj obsah si drží jen dokud počítač běží, po resetu ho ale ztrácí. Neočekávaný výpadek proudu vás připraví o všechno, co je na ramdisku uloženo.

  • Ramdisk je drahý – všechny dobré ramdisky jsou placené, a ne zrovna málo.

  • Ramdisk přináší potenciální nestabilitu – aby mohl pořádně fungovat, musí být umístěn dost hluboko v operačním systému a nejen že každá jeho chyba může mít velké dopady na stabilitu celku, ale může docházet i k neočekávaným interakcím s dalšími nízkoúrovňovými komponentami.

Smysl ramdisku

Proč se tedy ramdisky používají, a konkrétně proč je používám já, když mají takovéhle nevýhody? Protože ty nevýhody lze vhodným použitím omezit nebo dokonce proměnit ve výhody, a protože alternativní řešení nemusí v praxi dosahovat potřebných parametrů. To se týká například výše naznačeného použití cache místo ramdisku (ať už v podobě klasické diskové cache nebo pokročilejších technik typu SuperFetch ve Vistách a Sedmičkách): Teoreticky s cache dosáhnete všech výhod ramdisku, a to dynamicky, prakticky je ale problém v tom, že operační systém neví, co má v paměti udržovat, a musí to odhadovat; ty odhady jsou vesměs docela dobré, zejména pokud hodnotíme poměr výkon/cena v průměrném případě, ale špatně se vypořádávají se špičkami (najednou se rozhodnu spustit Open Office, který jsem předtím celý den nepoužil) a nedosahují tak vysokého celkového výkonu (bez ohledu na „cenu“). Pro představu: spuštění Calibre z ramdisku je na mém počítači cca 5x rychlejší než spuštění z cache (Windows XP), resp. asi 2-3x rychlejší než spuštění ze SuperFetch (Windows 7); na každém spuštění tak ušetřím pár sekund, což se zejména u hromadných konverzí (viz H2LRF) nebo generování playlistů (viz ColBuild) zatraceně projeví. Dalšími kandidáty pro využití ramdisku jsou Open Office, Firefox a všechno, co je napsané v Javě.

Výhodně lze využít dočasnost ramdisku: Je celá řada případů, kdy potřebuji zapsat nějaká data, ale nepotřebuji je trvale. Typicky jde o různé dočasné soubory – řada programů se bez nich neobejde, ale není důvod, proč bych je měl zapisovat na trvalé médium, když je program za pár sekund po sobě zase smaže (nebo hůř, zapomene je smazat a nechá je tam). Zvlášť v situacích, kdy je zápis mnohem „dražší“ než čtení (typicky všechny SSD založené na flash pamětech, ale také šifrované disky), má smysl tyto dočasné zápisy provádět do paměti, kde je to velmi rychlé a nejpozději při nejbližším restartu se to ztratí. Dokonce i u dat, která chci mít uložena trvale, může být výhodné napřed všechny zápisy směřovat do paměti a na trvalé úložiště je propsat až hromadně, všechny najednou.

Šifrované disky přinášejí mimochodem přinášejí další místo, kde je použití ramdisku výhodné: Dovolí mi udržovat některá data nešifrovaná (kvůli rychlosti přístupu k nim), ale přitom relativně bezpečná před útočníkem (protože po resetu zmizí); doporučoval bych ale používat to jenom na programy, u kterých nevadí, když je útočník dokáže po resetu z paměti vytáhnout – pro data je to trochu příliš rizikové.

Každý slušný ramdisk také nabízí možnost uložit obsah ramdisku do image souboru, buď v zadaných časech (intervalech), po kliknutí na tlačítko, nebo při vypínání Windows. Tento obraz je pak načten při spuštění ramdisku a tím je do jisté míry potlačena ta dočasnost dat.

 

Následuje popis několika ramdisků, se kterými mám osobní dlouhodobou zkušenost a mohu je pro jejich vlastnosti doporučit. Ostatní ramdisky jsem buď vůbec nezkoušel, nebo jsem je zkoušel, ale z nějakého důvodu mi nevyhovaly do té míry, že jsem je zavrhl (týká se zejména všech ramdisků, které jsou k dispozici zdarma). Všechny umí načítat a ukládat image ramdisku, všechny se spouštějí velmi brzy při startu systému (a dovolují tak z ramdisku spouštět systémové služby nebo i ovladače) a všechny dovolují vytvářet ramdisky, které se tváří jako skutečné pevné disky včetně toho, že se zobrazují ve Správci logických disků (což mimo jiné dovoluje připojit je do NTFS složky, ne jen pod písmeno diskové jednotky).

qSoft Ramdisk

S ramdiskem od qSoftu se dost možná řada z vás už setkala, i když o tom třeba ani nevěděli – tento ramdisk se používá v PE Builderu (nástroji pro vytváření „živých“ CD s Windows) a následně ve všech těch Ultimate Boot CD for Windows a podobných servisních nástrojích. Teoreticky ho naleznete na adrese www.ramdisk.tk nebo members.fortunecity.com/ramdisk/, prakticky ovšem narazíte na to, že minimálně rok se tahle adresa hlásí jako „currently unavailable“. Když se ale proderete trochu hlouběji do dotyčného webu, tak fungující adresu naleznete: members.fortunecity.com/ramdisk/RAMDisk/ramdiskent.htm.

qSoft Ramdisk je jeden ze starších ramdisků, což na jednu stranu přináší větší odladěnost (méně chyb), na straně druhé ale nemá řadu pokročilých vlastností. Vyznačuje se zejména hodně detailním nastavením, se kterým si, pokud to umíte (já to neumím), můžete dost vyhrát. Má také jednu skutečně unikátní*) vlastnost, a to tzv. „synchronní zápis“ – při každém požadavku na zápis do ramdisku si program zaznamená změněný sektor a tento sektor zapíše do image souboru, jakmile bude mít procesor volno; prakticky tak lze zcela obejít omezení dočasnosti ramdisku.

Velké nevýhody jsou dvě: Za prvé, ramdisk občas „zapomene“ nastavení záloh ramdisku a vy po resetu s hrůzou zjistíte, že ačkoliv máte nastavený synchronní zápis, tak žádné zápisy neprobíhají a vy máte načtený bůhvíjak starý image. Děje se to zcela náhodně a je to o to horší, že vlastně nemáte možnost tuto skutečnost zjistit jinak než tím, že ji vyzkoušíte.

Za druhé, qSoft Ramdisk nedovoluje vytvořit víc než jeden ramdisk. Problém je to proto, že pro různé typy dat je vhodné mít různě nastavené ramdisky – pro dočasné soubory chci ramdisk co nejrychlejší (nejlépe se souborovým systémem FAT), který se nikdy nebude ukládat, pro programy a utility potřebuji ramdisk, který bude umět hlídat práva k souborům (tzn. bude mít souborový systém NTFS) a bude se ukládat na vyžádání, a pro profily a nastavení potřebuji ramdisk, který se bude ukládat každých pár minut, byť i za cenu zpomalení. S ramdiskem od qSoftu toto rozdělení nelze dosáhnout, lze však zkombinovat qSoft ramdisk pro profily s ramdiskem jiného výrobce pro dočasné soubory.

Určitou výhodou je cena, která je u qSoft Ramdisku výrazně nižší než u konkurenčních produktů, a zejména licenční podmínky – program nijak neobtěžuje žádnými sériovými čísly nebo online aktivací, tohle všechno nechává na poctivosti uživatele. Navíc získáváte nárok na všechny budoucí updaty programu.

*) Některé konkurenční produkty tvrdí, že tuto funkci mají také, ale v žádném z nich se mi ji nepodařilo rozchodit tak, aby opravdu fungovala.

SuperSpeed Ramdisk

Ramdisk firmy SuperSpeed ve verzi Pro docela dobře doplňuje qSoft – přináší podporu pro až 99 současně spuštěných ramdisků. Docela zajímavou vlastností je podpora umístění pagefile na ramdisk, což je sice teoreticky blbost (to už je lepší tu paměť nechat prázdnou, ať ji operační systém použije pro programy), ale z praktických důvodů může mít smysl (traduje se, že existují programy, které potřebují nějaký pagefile, byť maličký; já žádný takový program neznám a ani mi nikdo nebyl schopen kromě Adobe Photoshopu konkrétně jmenovat, ale dejme tomu…). Bohužel není a nebude podporován synchronní zápis (SuperSpeed pro to má další produkt, který prodává samostatně).

SuperSpeed Ramdisk byl první a dlouho jediný produkt, který se mohl chlubit skutečně velice užitečnou vlastností: ve 32bitových verzí desktopových Windows (Windows XP, Vista, Seven) dokáže využít paměť, kterou samy Windows využít nedokážou; to znamená, že jestli máte v počítači 4 GB RAM a Windows vám tvrdohlavě říkají, že k dispozici je 3,2 GB fyzické paměti, tak se SuperSpeedem dokážete v těch „ztracených“ 800 MB vytvořit ramdisk (nebo několik ramdisků) a tím tuto paměť využít. Dokonce jsem využil levných DDR2 pamětí a koupil 8 GB RAM, takže mohu mít v systému něco přes 4,5 GB ramdisků, aniž by to ovlivnilo paměť dostupnou aplikacím. V 64bitových OS (a také v 32bitových serverových Windows) to pochopitelně ztrácí smysl, protože tam systém dokáže využít veškerou dostupnou paměť.

Kromě nepřítomnosti synchronního zápisu je hlavním nedostatkem SuperSpeedu komunikace výrobce: zapomeňte na to, že byste se dozvěděli, co je v nové verzi za novinky, zapomeňte na jakýkoliv support; firma mlčí dokonce do té míry, že mi neodpověděla ani na dotaz, že chci přejít na 64bitové Windows 7 a jestli mi jsou schopni nabídnout nějaký upgrade; dotazy týkající se technických věcí zůstaly pochopitelně nezodpovězeny také. Nepříjemná je i značně vysoká cena, po jejímž zaplacení ani nemáte nárok na jiné než „minor“ aktualizace. Zaujala mě ochrana proti kopírování, která spočívá v tom, že registrační klíč je vázán na název počítače – to je docela vtipné řešení, které brání použití ramdisku na víc počítačích, než bylo zaplaceno, ale přitom uživatele prakticky neomezuje.

VSuite Ramdisk

VSuite Ramdisk je docela novým produktem Romex Software a v podstatě by se dalo říct, že kombinuje to nejlepší ze všech existujících ramdisků do jednoho celku: Umí víc ramdisků, umí synchronizovaný zápis (na papíře, v praxi mi nefunguje), umí využít paměť, kterou Windows nevidí (a přitom narozdíl od SuperSpeedu jasně zobrazuje její využití, takže víte, kolik ještě můžete alokovat). Umí si alokovat paměť dynamicky (ostatní ramdisky hned při spuštění zaberou tolik paměti, aby se do ní vešel celý ramdisk; VSuitu stačí jen tolik paměti, aby se do ní vešla obsazená část ramdisku s tím, že zbytek si doalokuje, až to bude potřeba), umí zrychlené načítání i zapisování image (při zapisování se například mohou uložit jen změněné bloky) atd. atd.

Drobným nedostatkem je docela záludné uživatelské rozhraní, kde si uživatel myslí, že vidí nastavení vybraného ramdisku, ale ve skutečnosti vidí nastavení nového ramdisku, který by vznikl, kdyby uživatel klikl na tlačítko „Přidat“, a poměrně vysoká cena (Romex Software nabízí řadu variant ramdisku v různých cenových relacích, ale reálně použitelná je jen drahá „professional edition“ a hodně drahá „server edition“). Hlavním nedostatkem jsou ale licenční podmínky – registrační číslo je vázané na hardware počítače (konkrétně prý na základní desku); výrobce sice nabízí několik možností „upgradu“, ale přesto mi to přišlo natolik svazující a otravné, že jsem se velmi dlouho rozmýšlel, jestli vůbec VSuite Ramdisk kupovat. Nakonec jsem to udělal, protože ostatní ramdisky nesplňují moje požadavky, ale – stejně jako to bylo u DriveCrypt Plus Packu – jakmile se objeví méně svazující konkurent, tak mu dám přednost.

Podobné příspěvky:

9 komentářů “Ramdisky pro Windows”

  1. avatar pepak napsal:

    Jarda: Nejlepší volba je v současné době ImDisk.

  2. avatar Jarda napsal:

    Jenom postreh: Gavotte je stary jak Metuzalem, ma problem s hibernaci, nepodporuje ReadyBoost. Nize zmineny Dataram ve verzi z 2.5.12 oboji zvlada, podle manualu podporuje i 64-bit. Za mne zatim nejlepsi volba.

  3. avatar pepak napsal:

    Pavel: Je možné, že má nějaké skryté stránky, pro které stojí za to ho mít, ale z popisu je nevidím. Tedy ne že by tam toho popisu bylo moc, ale „max RamDisk size depends on Windows edition“ signalizuje, že ramdisk neumí využívat paměť, kterou neřídí operační systém, což je u novějších ramdisků už standardem, a „new PnP RamDisk device drivers are built using the newest Microsoft KMDF WDK framework“ spolu se skladbou souborů (ramdisk si s sebou nese 2 DLL o celkové velikosti přes 3 MB) je skoro jistým znakem velmi primitivního naprogramování ve stylu „Tady jsem na MSDN našel ukázku nejjednoduššího ramdisku, tak k tomu napíšu instalátor a vydělám na tom hromadu peněz“, což podporuje i obrázek z nastavení. Za 35 USD (cena plné verze, o trial nestojí vzhledem k omezení na 32 MB ani uvažovat) to skoro jistě nestojí. Aspoň mě ne.

    Nicméně jsem ramdisk nainstaloval do virtuálního stroje a zjišťuji:

    1) Ovladač nemá digitální podpis. To je jen nepříjemnost v 32bitové verzi (byť to jen podporuje dojem, že někdo program splácal na koleně za tři minuty), ale zásadní nedostatek v 64bitové verzi, kde kvůli tomu ramdisk vůbec nejde spustit. Napsat do dokumentace (ovšem ne do webové, aby to potenciálního uživatele nevyplašilo), že je třeba vypnout driver signing, je u komerčního produktu netolerovatelné. (Nemluvě o tom, že to mají napsané blbě, protože nechávají vypnout ověřování podpisů jen při prvním restartu, zatímco se to musí udělat po každém).

    2) Ramdisk nejde vytvořit dynamicky, musí se restartovat. Opět zásadní nedostatek. Dokonce i při změně nastavení (písmeno disku nebo velikost) se musí restartovat.

    3) Ramdisk nemá absolutně žádnou inteligenci. Jde třeba v konfiguraci nastavit, že ramdisk má mít písmeno C:, konfigurace to klidně vezme a je jí úplně jedno, že ten disk je obsazený a bude obsazený i po restartu.

    4) Vytvořený Ramdisk je za začátku nezformátovaný, musí se zformátovat ručně. Pokud existuje možnost do ramdisku nahrát nějaký image nebo ho naopak uložit, tak jsem ji nenašel.

    5) Ramdisk není kompatibilní se Správcem logických disků.

    Celkově vzato katastrofa. Kdyby to byla semestrální práce z programování ovladačů, tak bych za to asi zápočet dal, ale jako komerční produkt si zaslouží pouze opovržení.

  4. avatar Pavel napsal:

    Ahoj,
    uz jsem se te ptal na doporuceni ramdisku vic nez pred rokem (abych zbytecne nezatezoval ssd stalymi zapisy pri prekladech). Nakonec jsem do ramdisku nesel, jedno ssd se mi stejne odporoucelo ale asi z jinych duvodu a skoro nove. To jen uvodem. Obcas k tobe mrknu, co noveho v ramdiscich – a na slovensku jsem narazil na jeden, co jsi vubec jeste nezminoval (http://www.winsoft.sk/ramdisk.htm). Nemohl by ses na nej ze sve profesionalni stranky podivat a pripadne ho porovnat s ostatnimi?
    Diky, P

  5. avatar pepak napsal:

    Nejsem si jistý, jestli ho ještě dnes seženeš a jestli free verze podporuje 64bitové Windows. Ale pokud ti stačí základní funkcionalita, tak by ti měl běžet Dataram Ramdisk.

  6. avatar Pavel napsal:

    Ahoj,
    narazil jsem na tebe pri hledani RAM disku.
    Potrebuji ten nejhloupejsi (a’la DOS – vypnes/ztratis) ale pro W7-64 bit, pouze na docasne soubory (.dcu) pri prekladech/buildech.
    Da se na to pouzit ten qSoft Ramdisk?
    Diky, P

  7. avatar pepak napsal:

    Microsoft to dokáže taky, ale tuto schopnost úmyslně omezuje jen na serverové operační systémy, ne i na desktopové. Těžko říct, jestli je v tom jen snaha vydělat nebo jestli to je obavami ze supportu – pravděpodobně mají určitý podíl oba motivy.

  8. avatar Natal napsal:

    Je zarážející, že MS není schopen využít více než 3.25Gb paměti zatím co výrobci softwaru jako SuperSpeed ano… Každý den čekám, kdy nastane díky Windows kompletní informační blackout.

  9. avatar abc napsal:

    Omlouvam se za OT: Zamackl jsem slzu pri vzpomince na me Atari 1040 STFM, kde bez ramdisku ani ranu. Monochrom monitor SM124 (kvalitnejsi monitor uz jsem snad nikdy pozdeji nevidel) svitil temer nonstop. S instrukcni sadou k Motorole 68000 jsem usinal i vstaval. Boze to uz je let. Ikonka emulatoru ma uz X let nezastupitelne misto na me plose.

Leave a Reply

Themocracy iconWordPress Themes

css.php