Zrychlujeme Windows XP

MyEgo.cz

home foto blogy mywindows.cz kontakt

Zrychlujeme Windows XP

Windows XP 13.12.05

O optimalizaci Windows XP pomocí zakázání služeb a případně přímo s vytvořením „čisté“ instalace pomocí nLite jsem už psal, také jsem psal o tom, jak učinit Windows XP krásnější. Nicméně existuje ještě jedna sada „triků“ jak Windows XP učinit rychlejšími a stabilnějšími, a to jsou zásahy do registrů.

Pokud máte alespoň 1GB RAM (což je dnešní minimum, hardcore uživatelé používají dnes minimálně 2GB RAM), tak se můžete pustit do optimalizace toho, jak Windows nakládá s cache, swapováním na disk a zda drží kernel v paměti. Veškeré tyto věci mohou naprosto zásadně zrychlit celá Windows XP.

Optimalizace Memory Manageru

Zde si nastavíme několik hodnot v sekci HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Memory Management, a to tak, že spusťte program REGEDIT a v něm změňte či vytvořte následující položky:

Položka Typ Hodnota
DisablePagingExecutive DWORD 1
LargeSystemCache DWORD 1
PagingFiles MULTI_SZ C:\pagefile.sys 2046 2046

Uvedené položky nastavují fixní velikost swap file, zakazují paging kernelu na disk, a nastavují velikost systémové a diskové cache na doporučené hodnoty pro 1GB a více RAM. Důvodem je, že Microsoft dodává Windows XP nastavené pro systémy s 256MB a méně RAM, což pro silné stroje rozhodně není optimální.

Optimalizace přístupu na disk

Pro přístup na disk je vhodné zakázat vytváření 8.3 MS-DOS názvů souborů (pokud nepoužíváte zastaralé DOSové aplikace) a zakázat značku posledního přístupu k souboru. Toto provedete v sekci HKLM \ SYSTEM \ CurrentControlSet \ Control \ FileSystem :

Položka Typ Hodnota
NtfsDisable8dot3NameCreation DWORD 1
NtfsDisableLastAccessUpdate DWORD 1
Win31FileSystem DWORD 0
Win95TruncatedExtensions DWORD 0

Také je dobré občas promazat adresář C:\Windows\Prefetch, kde se ukládá pozice často načítaných souborů na disku, při jejich změně dochází ale naopak ke zpoždění, a tuto cache je dobré tedy občas promazat, aby se vytvořila znovu.

Optimalizace priorit IRQ

Windows XP umí nastavit prioritu pro jedno (či více) IRQ, což vede k posílení výkonu dané komponenty. V praxi bývá nejlepší nastavit prioritu IRQ pro „Systémové hodiny reálného času a obvodu CMOS“, což má vliv na výkon systému jako celku. Nedoporučoval bych nastavovat prioritu pro více než jedno zařízení (přestože to jde), dopad bývá poté spíše na zvýšení nestability než na další zlepšení výkonu.

Podívejte se do Správce zařízení, a zde si poznamenejte IRQ této komponenty, v mém případě číslo 8:

Priorita IRQ

Následně v sekci HKLM \ SYSTEM \ CurrentControlSet \ Control \ PriorityControl vytvořte novou hodnotu IRQ8Priority (číslo změňte podle Vašeho IRQ) typu DWORD s hodnotou 1 a počítač restartujte.

Položka Typ Hodnota
IRQ8Priority DWORD 1
Win32PrioritySeparation DWORD 0x00000026

Komentáře

  1. 1 kalwi 13.12.05, 10:12:48
    FB

    Co se týče toho swapování, tak to bych doporučoval úplně vypnout, za předpokladu, že v počítači je dostatek RAM. Dostatek se samozřejmě nedá přesně určit, závisí na využití počítače :-)
    Rychlost spouštění/ukončování systému a aplikací (včetně jejich přepínání - týká se hlavně her) se _rapidně_ zvýší. V článku uvedené optimalizace se v porovnání s vypnutím swapu dají nazvat jako jemné doladění. Takže investice do RAM se určitě vyplatí.

  2. 2 Radek Hulán 13.12.05, 10:12:50
    FB

    [1] vypnutí swapu silně nedoporučuji, některé aplikace jsou psány tak, že swap vyžadují a bez něj nefungují, popřípadě protestují a jsou nestabilní (Adobe Photoshop). S tímto mým nastavením se swap v zásadě nepoužívá, navíc pokud by neexistoval, může v kritické situaci dojít k BSOD..

  3. 3 kalwi 13.12.05, 11:12:53
    FB

    Já jsem se osobně s žádným problémem ohledně vypnutí swapu nesetkal a to ani s Photoshopem (třeba se mohlo jednat o bug v nějaké verzi). Ale netvrdím, že se to stát nemůže. No pokud některé aplikace protestují, tak to jen ukazuje na to, jak jsou špatně napsané (resp. jak je špatně napsaný operační systém, i když správa paměti v NT-based Windowsech je o dost líp vyřešena než v nešťastné trojici 95/98/Me) - úlohou swapu bylo "oslím můstkem" vyřešit nedostatek tehdy drahé paměti a aplikace by neměly poznat, kam systém ukládá data. Problém Windows je takový, že swapují, i když mají dostatek fyzické paměti a všemožné tweaky jako nastavení konstatní velikosti swapu, page lock limit apod. tento nedostatek jen zmírňují, ale nikoliv úplně odstraňují. Já osobně považuji swap jako přežitek z minulých dob.
    No je asi na přispěvatelích do této diskuze, aby se pochlubili s případnými zkušenostmi s vypnutím swapu :-)

  4. 4 Radek Hulán 13.12.05, 11:12:58
    FB

    [3] swap je používám ve všech operačních systémech, tedy Windows XP, Mac OS X, Linux, Solaris. Vypnutí swapu není dobrá věc. Dobrá věc je moje nastavení, kdy se swap defacto nepoužije, pokud to není nezbytně nutné. Pokud totiž dojde operační paměť a je zakázán swap, následuje BSOD..

  5. 5 kecinzer 14.12.05, 12:12:30
    FB

    Hodnoty nastaveny dle návodu, jsem zvědav, jesti to přinese nějaké drobné zrychlení.
    Pro začátek bude stačit, když systém naběhne bez problémů :).

  6. 6 rvr 14.12.05, 12:12:47
    FB

    Mňa by zaujímalo ako vplýva na zvýšenie výkonu nastavenie položky ClearPageFileAtShutdown na "1"? Doteraz som mal pocit, že to maximálne zvýši bezpečnosť (údaje uchované v swapke sa pri vypínaní windows znehodnotia).
    A ešte taká otázka prečo obmedzovať aj maximálnu veľkosť swap file? Čisto teoreticky... zaplní sa fyzická pamäť, zaplní sa, v Radkovom prípade, takmer 2 GB swap a zase následuje BSOD :)

  7. 7 Radek Hulán 14.12.05, 12:12:58
    FB

    [6] i když je swap nastaven na fixní max velikost, Windows jej zvětší v případě potřeby..

  8. 8 eraser 14.12.05, 01:12:17
    FB

    Keď si spomenul Prefetch, čakal som, že povieš niečo viacej. V tomto prípade odkazujem záujemcov na tento článok.

  9. 9 kalwi 14.12.05, 02:12:25
    FB

    S tím BSOD nemůžu tak úplně souhlasit. Když jsem poprvé vypl swap, samozřejmě mě nemohlo nenapadnout, co se stane při zaplnění paměti. Napsat program, který zaplňuje operační paměť je otázkou pěti minut. Jakmile dojde k zaplnění paměti, systém vyhodí varovnou hlášku a neděje se celkem nic zvláštního. Dobře napsaná aplikace by měla mít přidělování paměti ošetřeno, špatně napsaná aplikace spadne. Spustit nové aplikace se samozřejmě nedají, nedá se celkem nic, některé aplikace spadnou. Nehrál jsem si s tím nijak dlouho, možná by se mi po chvíli BSOD docílit podařilo, ale dá se předpokládat, že uživatel, který si vypne swap, je natolik sofistikovaný, že když mu dojde paměť, povypíná si všechny přebytečné aplikace. Nicméně mě "stabilita" windows (v uvozovkách, protože se samozřejmě nedá pracovat) při nedostatku příjemně překvapila, očekával jsem okamžitou BSOD :-)
    Mimochodem s 1 GB RAM se mi při běžné práci (programování, enkódování videa, editace zvuku, web, starší hry - HL2, GTASA atd.) paměť zaplnit nikdy nepodařilo, takže 2 GB RAM bych považoval pro vypnutí swapu jako dostatečně bezpečné pro uvedenou běžnou práci.
    V linuxu mám swap samozřejmě zapnutý, protože mám jistotu, že do něj systém jen tak nepoleze (a ani jsem nepostřehl, že by byl jednou použit).
    Nicméně ze 2 rozdílných zkušeností se dá těžko usuzovat, takže snad počkat na ty poznatky jiných lidí... :-)

  10. 10 salko 14.12.05, 06:12:48
    FB

    Ohľadom PREFETCH, ja odporúčam zmeniť ten hlavný parameter z default hodnoty 3 na hodnotu 2.
    HKLM SYSTEM CurrentControlSet Control Session Manager Memory Management PrefetchParameters EnablePrefetcher = 2
    Keď je tam hodnota 3, tak sa do Prefetch adresára hromadia najčastejšie používané aplikácie, čo má za následok dlhší štart a treba prefetch folder premazávať.
    Zato hodnota 2 spôsobí, že sa do prefetch foldra uloží iba jeden súbor (+ ini súbor), v ktorom sú obsiahnuté iba veci nevyhnutné k štartu systému.
    Používam to už asi 3/4 roku a mám stále ten istý čas pri štarte systému (ktorý je mimochodom výrazne nižší ako s defaultnou hodnotou 3)
    A ešte niečo k tým parametrom, čas od času je vhodné si pomocou regeditu (prípadne ja mám na to jeden .reg súbor) skontrolovať, či ostali všetky parametre zmenené tak, ako ste to nastavili, lebo rôzne aktualizácie dokážu tieto parametre vrátiť do defaultných hodnôt. Už som to videl na asi 4 počítačoch, že po niektorých aktualizáciach sa LargeSystemCache vrátila na hodnotu 0 a EnablePrefetcher na hodnotu 3.

  11. 11 BAGR 14.12.05, 08:12:03
    FB

    Mam XP pro, 1GB RAMky, vypnuty swap (uz min. rok), jede vse vcetne Photoshopu a pri zaplneni pameti mi pripadne spousteny program vyzvraci chybovou hlasku, ze nema dostatek pameti a spadne. Navic nedostatek pameti je u me zpusoben jedinou veci - Folding@Home - ktery mam nastaven do extremniho modu, takze si nekdy vezme i 400MB pameti. Resim to jeho vypnutim, odhlasenim a prihlasenim a je zase cisto.

  12. 12 fandango 14.12.05, 08:12:04
    FB

    Swap mám také vypnutý..respektive nastavený na 1,5G...
    Windows si opravdu v případě potřeby vezme sám další prostor, například dalších 3,5G pro photoshop, který je při použití více složek opravdu "nenažraný" a práce už je pomalá...
    F

  13. 13 Petr 14.12.05, 08:12:21
    FB

    Je možné, že nemůžu v systému najít "Prefetch" ani v jednom z těchto umístění?
    %systemroot%prefetch
    X:windowsprefetch
    (zobrazovat skryté a systémové soubory mám samozřejmě povoleno).

  14. 14 Petr 14.12.05, 08:12:36
    FB

    Další postřehy po provedení změn dle Radkova článku:
    - před provedením změn jsem byl na stupni fragmentace systémového svazku cca na 3%
    - po provedení změn jsem se dostal na cca 23% fragmentace
    - při spuštění defragmentace (přes dfrg.msc nebo O&O Defrag) proběhne defragmentace během cca 1 minuty, ale stupeň fragmentace se nesníží...
    Předpokládám, že je to ovlivněno změnou nastavení u pagefile.sys
    Máte k tomu někdo nějaký komentář, jestli je to v pořádku nebo ne?

  15. 15 Paulie 14.12.05, 09:12:10
    FB

    Nasledovné informácie sú čiastočne z WWW, čiastočne z vlastnej skúsenosti, teda skutočnosť môže byť odlišná pre inú konfiguráciu systému, ako je moja.

    Podľa tejto diskusie sa nastavenie IoPageLockLimit už od niektorej verzie Windows 2000 nepoužíva, čiže pravdepodobne je zbytočné to nastavovať.

    Nastavenie PagingFiles je možné urobiť aj priamo vo Windows, bez zásahu do registry. Podľa mojich skúseností Windows použijú swap VŽDY, bez ohľadu na stav voľnej pamäte (v prípade že sa pamäť minie, je optimálne využívať swap od štartu, s tým Windows počítajú, aj dnes vo veku, keď je 1 GB bežná veľkosť RAM), takže ak nepoužívate nejakú aplikáciu, ktorá ho striktne vyžaduje - čo treba otestovať - môžete ho skúsiť vypnúť (a keď sa vyskytne problém, opäť zapnúť). To prinesie väčšie zvýšenie výkonu ako nastavenie veľkosti. Treba to však odskúšať na konkrétnom prípade. (A len keď máte dosť pamäte na všetky vami súčasne používané aplikácie).
    Nastavenie pevnej veľkosti SWAP sa oplatí pri systéme, kde hrozí fragmentácia súborov. Ak máte pagefile na samostatnej partícii bez ďalších súborov, tak je to pravdepodobne jedno.

    ClearPageFileAtShutdown asi skôr systém spomaľuje (pri vypínaní), okrem bezpečnosti nemá pravdepodobne žiadny význam.

    LargeSystemCache sa dá takisto nastaviť priamo z Windows. Osobne to odporúčam len pri > 1GB RAM, nakoľko pri kopírovaní súborov budete za chvíľu bez pamäte - všetka dostupná sa rýchlo priradí pre cache a pre aplikácie sa nejak nedostáva. Podla linky uvedenej vyššie v mojom príspevku dokonca robí problémy s niektorou verziou ATI driverov (čo je asi chyba tých driverov, nie Windows)

    DisablePagingExecutive Teoreticky, keď máte vypnutý swap, paging kernelu by nemal nastať. Osobne u mňa nemá žiadny pozorovateľný výsledok, napriek tomu, že swap mam zapnutý.

  16. 16 Stone 14.12.05, 09:12:13
    FB

    Díky za návod, poté, co jsem vše udělal, jak píšeš, nevidim nic než bílé prázdné okénko v "Device Manageru" tudíž nemám jak změnit IRQ ani nic jiného. Co se s tím dá dělat?

  17. 17 Radek Hulán 14.12.05, 10:12:39
    FB

    [15] samozřejmě, ClearPageFileAtShutdown má vliv na bezpečnost, nikoliv na rychlost, ale nechtěl jsem jedno nastavení registrů dávat jako samostatný článek

  18. 18 Fik 14.12.05, 10:12:41
    FB

    [13] asi máš fragmentovaný pagefile.sys, zkus http://www.sysinternals.com/Utilities/PageDefrag.html...

  19. 19 Fik 14.12.05, 10:12:43
    FB

    [17] má vliv i na rychlost, ale negativní. Při vypínání se čeká, než se pagefile pročistí, tak sem to zrušil.

  20. 20 Radek Hulán 14.12.05, 10:12:48
    FB

    [19] to je pravda, ale pokud zmáčknu tlačítko Vypnout, tak poté nečekám na fyzické vypnutí ;-) Proč bych to proboha dělal? Takže toto pár-sekundové zpoždění mě opravdu nevadí..

  21. 21 Honza 14.12.05, 11:12:37
    FB

    Pagefile ve všech verzích windows, běžících na kernelu NT, tedy Windows NT, 2000, XP a 2003 NELZE VYPNOUT. To, že můžete pro všechny disky nastavit "No paging file" neznamená, že jste swapování vypli a že windows ho nebudou používat. Jediné, čeho docílíte, je to, že nebudete mít nakonfigurovaný permanentní swap file, což povede k tomu, že windows si automaticky vytvoří dočasný swap file podle svých potřeb, protože provozu v jiném režimu, než je virtuální adresace paměti prostě nejsou schopny. Doporučuji si přečíst text na tomto linku: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/win32_pagefileusage.asp... především pak vaší pozornosti vypichuji text: TempPageFile: boolean, Windows Server 2003 and Windows XP: If true, a temporary page file has been created, usually because there is no permanent page file on the current computer system.

    Poznamenám jenom, že ačkoliv tato proměnná je k dispozici pouze na systémech 2003 a XP, tak úplně stejně se chovají i Windows NT a 2000.

  22. 22 Ríša 14.12.05, 12:12:05
    FB

    PagingFiles MULTI_SZ C:pagefile.sys 2046 2046

    Proč zrovna 2046 a ne rovnou 2048, tedy presně 2 GB?

  23. 23 Paulie 14.12.05, 01:12:46
    FB

    [21] No neviem, či sa za dočasný nepovažuje aj swap ktorý si spravujú samotné Windows (System Managed), alebo aj Custom ktoré ma nastavené hodnoty min,max na 0,1500.
    Totiž keby si Windows vytvárali dočasné pagefile kedykoľvek to potrebujú, nikdy by sa neminula voľná pamať a neboli by spomínané pády aplikácií.
    Na druhej strane, aj pri vypnutom pagefile mi Process Explorer (od Sysinternals) ukazuje v Commit Charge väčšie hodnoty ako je veľkosť fyzickej pamate.

    Ja by som si tipol, že niektoré aplikácie si žiadajú od systému pamať a dostanú virtuálnu - v takom prípade si to systém v prípade potreby odswapuje aj pri "vypnutom" pagefile do nejakého TempPageFile. Ak si zažiadajú príliš veľký blok fyzickej pamate, tak ho nemusia dostať a spadnú s chybou.
    Ako to v skutošnosti funguje vedia asi len programátori Windows.

  24. 24 Paulie 14.12.05, 01:12:56
    FB

    Co sa týka IRQ Priority ale aj ostatných registry nastavení, su celkom dobre popísané tu.

    Niektoré z uvedených registry klúčov sa v skutočnosti vôbec nepoužívaju a prežívajú iba ako tweakovacími programami šírený mýtus, ďalšie fungujú pre určité špecifické situácie.
    Čiže veľmi pravedpodobne väčšina z nich vám nárast výkonu neprinesie... tu pomôže len rýchlejší hardware.

  25. 25 Fik 14.12.05, 02:12:26
    FB

    [20]
    nojo, ale co Restart? A na notebooku s pomalým diskem je to řádově desítky sekund a ne jen pár sekund...

  26. 26 Hello Marian 14.12.05, 06:12:14
    FB

    Ešte sa oplatí vypnúť "scheduled tasks" zmazaním klúča {D6277990-4C6A-11CF-8D87-00AA0060F5BF} v HKLM/Software/Microsoft/Windows/Current Version/Explorer/RemoteComputer/NameSpace. Ak ste sa hrali s IPsec-om a chcete vrátiť default hodnoty pomôže: secedit /configure /cfg %windir% epairsecsetup.inf /db secsetup.sdb /verbose. Aj keď Microsoft tvrdí, že Bootvis už implementovaný je (a aj ďalšie zaujímavé veci), štart OS pomôže urýchliť. Na uvedenom linku je ešte jedna zaujímavá rada - vypnúť nepoužívané IDE zariadenia.

  27. 27 fuj 24.12.05, 07:12:03
    FB

    [14] musíš (I.) vypnout a smazat pagefile, restart, defragmentovat, restart, znovu defragmentovat a následně vytvořit pagefile o vhodné velikosti, aby byl v jednom celku!

    II. viz vynikající PageDefrag od sysinternals.com - pokud je dost místa na disku udělá to za tebe jinak viz postup výše

    pokud je pagefile rozkouskován po disku a není místo, umaž něco a postupuj dle II. pokud nejde tak podle I.

    [13] chybí ti tam lomítko, hledej na %systemroot%prefetch, u XP, W2K3 je...

    [12] jaktože si windows vezme více paměti na pagefile, pokud je nastavena max. velikost, tak podle mě si nevezme víc než max!

    [15] DisablePagingExecutive - to muzes sledovat v TaskManageru, jestli je kernel swapnuty nebo neni.
    ClearPageFileAtShutdown - je to presne tak, tohle vsechno uz je docela stare nastaveni, platne urcite uz od dob W2K, mozna uz od NT4.

  28. 28 katka.buresova 02.01.06, 08:01:17
    FB

    možná to sem nepatri ale našel sem tuto stranku mam taky problem že pri startu windows mi beha pasik pod logem windows až 31x kamaradovi len5x co stym mozu urobit diky.

  29. 29 Adam Hošek 21.01.06, 12:01:10
    FB

    Při aktualizace nLite ISO WinXP SP2 s poslední verzí nLite (1.0RC5) jsem zjistil, že všechna zmiňovaná nastavení se dají konfigurovat již při "kuchtění" nLite ISO. Včetně vypnutí Prefetch a snad jen s výjimkou priority IRQ.

  30. 30 Vladimír 05.08.06, 03:08:04
    FB

    [2] souhlas - skoušel jsem to a mimo photoshopu mi blbnuj ještě desktop sidebar - některé funkce nefungovali. Ale někdy se to může vyplatit. Nicméně s BSOD jsem se z důvodu nedostačující paměti nesetkal ale setkal jsem se s tím že photoshopu paměť v extrémních případech (komprese extrémě velkého obrázku) nestačila. Mám 2GB ram

  31. 31 lowe 26.11.06, 11:11:07
    FB

    Tak jsem si přečetl článek XP Myths a je zvláštní, že všechny tyhle "optimalizace" co tady píšete tam jsou popsány jako neužitečné a zbytečné se spoustami nevýhod. Je to tam srozumitelně vysvětlené takže po jeho přečtení jsem vše zase vrátil do původního stavu...