Včera jsem instaloval Windows XP na svůj nový systémový disk. Jelikož mám ve stroji celkem 4GB RAM a k dispozici 32bitový systém, část RAM byla nevyužita. Pro odkládací swap soubor a také pro cache prohlížeče (Firefox) používám rychlý ramdisk z části své operační paměti a díky GAVOTTE ramdisku (freeware) dokáže systém pomocí PAE využít celou RAM, tedy 4GB – pro rychlý ramdisk jsem ukrojil 1GB paměti, takže mám v podstatě 3GB paměti pro systém. To musí stačit všem. :-)
Kdo chce také experimentovat s RAMDISKem, nechť mrkne na http://www.jensscheffler.de/using-gavotte-ramdisk-in-windows-7
[12] Zapněte PAE a vyhoďte ramdisk a efekt bude ještě lepší. Stále nechápete, že pokud OS má zapnuté PAE, pak umí PAE využít na plno a pokud máte PAE vypnuté, pak vám nepomůže ani svěcená voda? Dotyčný člověk je buď podvodník, nebo tomu nerozumí.
Nesmíte naletět každému blbcovi, co vám dá na net freeware. Existuje toho hafo, od různých mem optimalizátorů až po tweak utilit, jejiž výsledkem je zpomalení a degradace fungovaní operačního systému.
Dát swap do ramdisku je většinou blbost, ale je plno souborů které si potřebuješ třeba někam stáhnotu a JEN prohlédnout. Když je dáš na disk tak se ti začnou pomalu hromadit a jen zasírají disk - já je třeba často zapomenu smazat a pak po měsíci přemýšlím co to je a jestli to můžu smazat. Když to dáš do ramdisku tak po dalším zapnutí už máš zase čisto :D
Mám XP x64, 8 GB RAM, z toho 4 GB RAM disk a swap úplně vypnutý. Na RAM disku mám adresář TEMP a v něm Temporary Internet Files (aby se to zbytečně neválelo v rootu RAM disku, stejně to používám jen pro MS Update, jinak jedu přes Chrome). RAM disk dále používám pro práci s menšími soubory (tak do 2 GB) a ukládám tam také všechny stažené soubory, což mě nutí dělat si na disku pořádek. Sice používám S3 sleep mode (Suspend-To-RAM), takže mi RAM disk zpravidla drží týdny, ale i tak vím, že v případě výpadku (typicky PC se korektně neprobere z S3, nebo restarty jednou za čas při aktualizacích PC) to, co je na RAM disku, jde do pryč. Takže se mi od té doby nezvyšuje na disku bordel (z RAM disku si důležité věci ukládám (třídím) rovnou do patřičných složek). Stávající bordel jsem ještě nenašel odvahu roztřídit ;).
Počítač je takto provozován už skoro 3 roky bez problémů, hlášku o nedostatku paměti (nebo virtuální paměti) jsem ještě neviděl, když už něco spadne, je to nějaká hodně paměťově náročná aplikace, o které vím, že ji mám nakonfigurovanou "paměťově blbě" a vyskytuje se to tak zřídka (a není to tak důležité), že to neřeším. Hlavně je počítač citelně svižný (i když je to mrzké AMD dvoujadérko) a to je základ.
[7] Ony to právě dokáží pomocí PAE - http://cs.wikipedia.org/wiki/Physical_Address_Extension
Já tedy nevím, ale co se týče PAE tak ty Windows umí adresovat bez problémů. Ono si spoustu lidí plete fyzickou paměť a virtuální paměť. Virtuální paměť na 32-bitovém systému může být maximálně 4GB, z nichž 1-2GB zabírá systém (nikoliv fyzicky, ale virtuálně) a zbytek je pro aplikaci. To jestli aplikace má k dispozici 2GB nebo 3GB záleží na přepínači /3G a také na příznaku u apliklace, že v tomto režimu umí pracovat.
Fyzická paměť to je něco jiného. Pokud mám víc paměti, než 4GB, mohu do ní nahrát víc aplikací, které všechny mohou využít svůj přidělený rozsah. Pokud mám paměť 8GB, mohu spustit 4 aplikace které využijí svých 2GB a mám zaručeno, že paměť bude celá využita.
Ani to není vše, co se s pamětí dá dělat. Windowsy velice neradi nechávají nějakou paměť ladem. Nevyužité bloky do maximálního rozsahu adresovatelné pomocí PAE jsou použité jako disk cache. Jakékoliv čtení i zápisy jsou zálohovány v této cache, aby to bylo hned k dispozici. Při delším provozu systému Windows tedy nenajdete v paměti jediný volný blok. Ať je sebevětší. Buď je tam paměť aplikací, nebo disková cache. Proč taky nechávat paměť ladem, když mě stála nějaké peníze a nemalou částku stojí i její provoz ve formě odběru elektrické energie?
I kolem TEMP souborů koluje dost mýtů. Ano, vadí mi, že si aplikace nemůže pomocí služeb operačního systému vytvořit virtuální filesystem a do něho ukládát dočasné soubory (jako tmpfs). Ale na druhou stranu, možná to není potřeba, protože Windowsy tohle dělají tak nějak samy, právě díky diskové cache. Dočasné soubory mývají většinou atribu FILE_ATTRIBUTE_TEMPORARY, který Windowsům říká, že by se měli pokusit tenhle soubor držet v paměti jak dlouho je to možné, a pokud možno jej nedávat na disk. Ve filesystému ho samozřejmě najdete, ale to neznamená, že musí být fyzicky zapsán na disku. Každá trochu rozumější aplikace by měla tímhle atributem označovat všechny dočasné soubory.
V neposlední řádě bych se zmínil o mýtech kolem swapu. Je naprostá hloupost dávat swap na ramdisk. Jaký to má smysl? Paměť přesouvaná z jedné části paměti na druhou? Mělo by to smysl, kdyby se bloky nějakým způsobem komprimovali, kdysi takovou službu nabízel QEMM pro Windows. Počítalo se s tím, že komprese je mnohem rychlejší než zápis a dekomprese je mnohem rychlejší než čtení. Pak se mohlo swapování pomocí takového komprimovaného ramdisku určitým způsobem zrychlit. V současné době jsem nenašel nic podobného.
Mnohem lidí vadí, že Windows "swapují" v době, kdy mají dost paměti. Musím vás upozornit, že nejde o klasické swapování, které by zdržovalo. Máte nabušený stroj, plný zajímavého HW a spoustu komponent běží na prázdno. Proč jim nedat nějakou práci dopředu, když by později mohla zdržovat? A tak windowsy nějakým způsobem zálohují změněné stránky na disk do swapu. CPU jim v tom dává docela pěkný nástroj v podobě dirty flagu u každé stránky, který je nastaven při každé změně stránky. Pokud máte nějaké stránky, u kterých hrozí brzké vyřazení, tak jsou na pozadí v době, kdy je disk idle odkládány do foroty. Jakmile je zvýšená potřeba paměti, už se nemusí odkládat, prostě se přepíší jiným obsahem.
Pokud máte dost paměti, swap by vám neměl vadit. Případně jej lze vypnout. Tím si ale dobrovolně omezítě množství spustitelných aplikací v systému a při větším požadavku na paměť dokonale vykostíte disk cache. Někdy je totiž lepší odswapovat nepoužívané stránky aplikaci v idle (i třeba nepoužívaných služeb, který je ve windows hafo) ve prospěch diskové cache. Při vypnutém swapu to udělat nejde.
Pořád se ale nevyhnete diskové aktivitě při zápisu stránek ze změněné diskové cache (to dělá i ten linux). Dávat swap na ramdisk je nesmysl. Argumentace PAE jen ukazuje, že autor nepochopil, co PAE vlastně je.
Při větším množství paměti, kdy většinou vystačíte, ale občas potřebujete víc, se vyplatí dávat swap na SSD disk (pozor, nedávat tam data!) Pomalý zápis do swapu na SSD neucítíte, probíhá na pozadí. Zato velmi znatelně ucítíte rychlejší přiswapování, tedy spíš, vůbec si toho nevšimnete. Pouze v případě obrovských nároků na paměť se může stát, že ucítíte i pomalý zápis a to jen v případě, že Windowsy nestihnout odswapovat všechny dirty stránky před požadavkem na další volnou paměť. To se Vám ale tak často nestane.
[10] Vskutku došlo k nepochopení problematiky? http://www.jensscheffler.de/using-gavotte-ramdisk-in-windows-7 ;-)
[12] Konečně feedback je více než výmluvný:
Using the version of Gavotte RAMDisk you mention, I was able to load a RAMDISK using what I believe is RAM between 3GB and 4GB on my system, but without using the ForceEnable option on PAE with bcdedit. Given that PAE is supposed to be for addressing memory above 4GB on 32-bit systems, this does make sense, and since I only have 4GB of RAM, it doesn't make sense to have PAE enabled when it may result in a performance loss. It seems that the only thing required for Gavotte RAMDisk to use the 3GB+ memory is having the UsePAE option enabled in the registry. I tried changing this value to zero (disabled) and after reboot saw a 512MB (as was the setting in RAMDisk) - and noticed about the same amount being deducted from my system's available memory (as would be expected if it wasn't using the RAM above 3GB).
Dotyčný zjistil, že musí mít zapnutý PAE, takže efekt ramdisku (provozovat ramdisk, bez nutnosti mít zapnutý PAE ve Windows, který jinak degraduje performance) padá. Pokud ale mám zapnutý PAE, pak zase padá výhoda ramdisku, protože ta paměť pro ramdisk je ukradena z celkového množství paměti, který je k dispozici Windows pro aplikace.
[12] 32-bitové windows umí nativně od Windows XP použít 4GB fyzické paměti:
http://msdn.microsoft.com/en-us/library/aa366778(VS.85).aspx
[17] No po pravdě řečeno vycházím hlavně z pokusu u sebe, kde se to chová tak jak popisuje člověk v komentáři toho článku o Gavotte ramdisku, tj. když má Gavotte nastaveno UsePAE=1, tak mi ramdisk neubere z "physical memory available" (task manager, W7) nic.
Role windows v tom mi popravdě jasná není, napsal jsem jako svůj zkratkovitej závěr, omlouvám se. Nevzpomínám si, že bych měl neco v BIOSu co by se remapovani paměti nad 4GB týkalo. Našel jsem něco o remapovaní zařízení do tohodle prostoru, ale v mým notebooku jich moc není a ani pamět grafiky není moc velká - nasel jsem 64MB od Radeonu X2300 mapovaný někam okolo 3.3 GB, jinak samý drobnosti. Takže proč W7 říkají že jenom 3GB jsou usable nevím. Možná proč jsem obvinil Windowsy že to nechávájí ladem bylo to, že jsem četl o patchi na jádro Vist, který tenhle limit měl údajně odstranit...
[19] No on je tam jeden problém a to je namapovaná PCI sběrnice. Nikdy bych nevěřil, že může zabrat přes půl giga adress. Některé biosy tedy volí cestu remapování poslední gigové banky od adresy 4GB do adresy 5GB. Bohužel, tenhle adresový prostor není pro Windows 32-bit viditelný. Umí to jen ty server editions. Možná výše zmíněný ramdisk umí zkrze ovladač hacknout PAE tabulky tak, aby měl přístup do této poslední banky. Pak to určitý smysl má. (určitě to jde proti licenčním podmínkam Windows ;-)
Upřímě řečeno, se 4GB paměti bych uvažoval o instalace 64-bitového operačního systému, který výše zmíněné problémy řeší lépe.
Tam kde BIOS neprovádí remap poslední banky nad adresy 4GB, tam bude k dispozici něco od 200MB do 500MB paměti namísto celého 1GB. I přesto bych doporučil využít tuhle paměť navíc smysluplněji, než dávat na to ramdisk a na něj swap
Swap má tu nevýhodu, že kolikrát duplikuje obsah paměti, čili tím, že si přidám swap na ramdisk nezvýším automaticky dostupnou paměť o zadanou velikost. Swap je přizpůsoben pro práci na disku, kde je k dispozici víc místa, takže je možná redundance, kdy ve swapu leží totéž co je v paměti, aby bylo možné data z paměti rychle odstranit. Virtuální zvýšení velikosti tedy bude efektivně menší, dejme tomu o 50% (čili se dostáváme k těm 500MB, co jsem psal výše).
Tempy dávat na ramdisk je diskutabilní. Pokud ramdisk přežije reboot, pak to smysl má. Ale různé instalátory si tam s oblibou dávají rozpracované instalace, pokud musí rebootovat. Pak se stane, že po rebootu instalace nepokračuje, protože byla smazaná. Problém může být i limitovaná velikost tempu. Software, který se instaluje tak, že se nejprve zkopíruje z DVDčka do TEMPu a z něho se nainstaluje bohužel na ramdisku nenainstalujeme.
[21] Alternativně můžete zapnout na SSD funkci ReadyBoost. Pokud jsem pochopil, používá to flashku jako další swap s tím, že využívá hlavně rychlé čtení, tedy zapisuje tam věci které se často nemění a navíc to všechno zálohuje na HDD, takže by to mělo být relativně bezpečné a stabilní.
Na 32bit windows vista a 7 lze zprovoznit až 64gb RAM, byť jeden program využije jen 4GB.
Řešení je spusit OS s kernelem ntrk128g.exe. Pak se notmálně v správci úloh zobrazí dostupná paměť 4094 MB.
Stáhnete balík. spustíte program a kliknete na Apply. Zároveň se vytvoří druhý bootovací možnost s praávě novým kernelem a zapnutým Pae.
Pak můžete dělat ramdisky jaké chcete.
Doufám že jste se dozvěděli něco nového..
info o souboru:
ReadyFor4GB, Memory Limit Patch For Windows. TCP-Z partner.
CompanyName : deepxw
FileDescription : Ready For 4GB Patch; TCP-Z partner.
FileVersion : 1.3.0.9
InternalName : ReadyFor4GB.exe
LegalCopyright : Copyright (C) 2008-2009 deepxw. All rights reserved.
OriginalFilename : ReadyFor4GB.exe
ProductName : Ready For 4GB Patch
ProductVersion : 1.3.0.9
Přečteno 35 517×
Přečteno 30 658×
Přečteno 26 759×
Přečteno 25 950×
Přečteno 25 510×