Optymalizacja wydajności Windows XP/2000/2003
Wstęp
Przedstawione tu zostaną różne typy optymalizacji, wynikające z doświadczeń własnych i innych użytkowników: począwszy od optymalizacji szybkości uruchamiania, poprzez optymalizację pracy, na zamykaniu Windows kończąc. Część ustawień dotyczy zarówno Windows XP jak i 2000, a niektóre tylko nowszych okienek.
Mała uwaga: większość zmian w ustawieniach wejdzie do użytku po zrestartowaniu systemu.
Optymalizacja startu Windows (BootTime)
1a. Windows XP/2000/2003: Pierwsze co należy zrobić to zdefragmentować dysk, na którym obecnie mamy zainstalowany system operacyjny.
1b. Windows XP : W programie TweakXP (opis poniżej) należy zaznaczyć opcję 'Enable Boot Defrag' w sekcji 'Cache Optimization' -> 'Harddisc Optimization'. Następnie należy uruchomić defragmentację dysku.
2. Windows XP : Dla optymalizacji czasu bootowania możemy posłużyć się programem BootVis przygotowanym specjalnie do tego celu przez Microsoft. Kilkamy na 'Trace'->'Next Boot + Driver...'. System zrestartuje się, a po jego ponownym uruchomieniu musimy poczekać na załadowanie BootVis'a. Pokaże nam się wykres czasów jakie są potrzebne na ładownie poszczególnych części systemu i sterowników. Jeśli któryś ze sterowników jest szczególnie wolny, warto poszukać jego nowszej wersji, przystosowanej do szybkiej inicjacji urządzenia.
Aby zoptymalizować start Windows kilkamy 'Trace'->'Optimize System' i czekamy na ponowne uruchomienie. Potem program zoptymalizuje ułożenie plików na dysku (trwa to kilka minut).
Można zyskać nawet kilkanaście sekund przy uruchamianiu Windows XP.
Download : [ BootVis ]
Optymalizacja wydajności dysku twardego HDD (ew.CD/DVD-ROM)
1. Najważnejszą rzeczą jest włączenie trybu UDMA/DMA (jeśli to możliwe):
Uruchamiamy 'Device Manager -> 'IDE ATA/ATAPI controllers' -> 'Primary(Secondary) IDE Channel' -> klikamy prawym przyciskiem myszy-> 'Properties' -> 'Advanced Setting' (Menadżer urządzeń -> Kontrolery IDE/ATAPI -> Podstawowy kanał IDE -> Właściwości -> Ustawienia zaawansowane). Ustawiamy 'DMA If Available' (DMA jeśli dostępne) dla Device (Urządzenie) 0 i 1. Postępujemy tak zarówno dla kanału Primary jak i Secondary (Podstawowy / pomocniczy) i restartujemy Windows:
Jeśli DMA/UDMA mimo to jest niedostępne, a my jesteśmy pewni, że nasze urządzenie jak i kontroler je obsługują, możemy spróbować postąpić następująco:
Kasujemy w menadżerze urządzeń dany kanał, na którym znajduje się owo urządzenie. W przypadku napędu DVD/CD-ROM jest o zazwyczaj 'Secondary IDE channel' (Pomocniczy kanał IDE). Restartujemy komputer. System powinien wykryć usunięty kanał i ustawić odpowiedni tryb PIO/DMA/UDMA.
W 'Device Type' (Typ urządzenia) najlepiej zostawić 'Auto Detection' (Auto detekcja). Jeśli jednak nie ma dysku/napędu CD/DVD na danym kanale Primary/Secondary Master(0)/Slave(1) to można ustawić na 'None' (Brak), co może przyspieszyć start systemu o kilka sekund.
2. Druga rzecz to oczywiście regularna defragmentacja (można używać zwykłego, choć nieco wolnego defragmentatora dostarczonego z Windows).
Godna uwagi jest też darmowa aplikacja System File Defragmenter, która pozwala na defragmentację plików systemowych, w tym m.in. pliku wymiany.
Optymalizacja zarządzania pamięcią
W celu zmian w opcjach wydajności kilkamy prawym przyciskiem myszy na
'My Computer' -> 'Properties' -> 'Advanced' -> 'Performance Settings' (Mój komputer -> Właściwości-> Zaawansowane -> Ustawienia wydajności). Pojawić się powinno poniższe okno:
Processor scheduling
Jeśli ustawimy na 'Programs' (Aplikacje) więcej czasu procesora będzie przeznaczone na aktywne aplikacje. Z kolei ustawienie 'Background services' (Usługi działające w tle) przydzieli więcej czasu procesora na usługi/programy działające w tle. Zalecam ustawienie 'Programs', chyba, że komputer jest używany jako serwer.
Memory usage (Użycie pamięci)
Ustawiając opcję 'System cache' Windows XP/2003 przyporządkuje więcej pamięci na cachownie bibliotek i sterowników systemowych. Ustawienie to jest zalecane dla komputerów z 256MB RAM (i więcej). 'Programs' z kolei jest najlepszym ustawieniem dla komputerów z mniejszą ilością pamięci RAM.
Osobiście zalecam ustawienie 'System cache' dopiero przy 384MB RAM i więcej.
Virtual Memory (Pamięć wirtualna)
Optymalne ustawienie pamięci wirtaulnej zawsze sprawiało sporo problemów.
Najlepszym ustawieniem wg mnie jest ustawienie stałego co do wielkości pliku wymiany tzn.:
Initial size = Maximum size (Rozmiar początkowy = Rozmiar maksymalny)
Dla ilości pamięci 128 MB RAM i mniej zalecam ustawienie (1,5 do 2,5)*Ilość pamięci fizycznej.
Przy 256 MB RAMu zalecana przeze mnie wielkość pamięci wirtualnej to 200 - 256MB. Wpisujemy żadaną wartość i kilkamy 'Set', zaznaczając uprzednio wybraną partycję/dysk.
Plik wymiamy najlepiej umieścić na szybkim dysku (partycji), którą uprzednio zdefragmentowaliśmy. Jeśli posiadamy tylko 1 dysk to zaleca się umieścić plik wymiany na partycji z zainstalowanym systemem Windows. Szybkość dysku najłatwiej jest zmierzyć programem SiSoft Sandra 2003 lub HDTach 2.61.
Optymalizacja zarządznia pamiecią poprzez ustawienia rejestru (XP/2000/2003)
Uruchamiamy Regedit i przechodzimy do gałęzi:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Control\SessionManager\Memory Management]
Tam możemy dodać bądź zmodyfikować następujące wartości typu DWORD:
ClearPageFileAtShutdown - jeśli ustawimy na 1 system będzie czyścił plik wymiany przy zamykaniu w celu płynniejszej pracy podczas następnej sesji. 0 - wyłączone. Zalecam ustawić na 1 (płynniejsza praca), chyba, że zależy Ci na szybkim zamykaniu systemu.
DisablePagingExecutive - jeśli ustawimy na 1 sterowniki i pliki wykonywalne nie będą cachowane na dysku tylko przechowywane na stałe w pamięci RAM. Przyspiesza to oczywiście korzystanie z tych zasobów, ale zapycha pamięć. Można spróbować włączyć tę opcję przy min. 256MB RAM, jednak ja zalecem dopiero przy 384, a najlepiej przy 512MB RAM i więcej.
LargeSystemCache - ustawienie analogiczne do 'Memory usage' (opisane powyżej).
1 = System Cache.
0 = Programs.
IoPageLockLimit - wartość ta określa max. ilość kilobajtów, które mogą zostać zarezerwowane na operacje we/wy. Kilkamy 'Modify' -> Decimal. Standardowe ustawienie to: 512 , zaś na większości konfiguracji (z 256 MB RAM i wiecej) zwiększenie tej wartości przynosi lepszą wydajność gł. systemu plików. Ja zalecam ustawienie 16384 dla 256 MB RAM. (Szczególnie ważne, gdy komputer uzywany jest jako serwer.)
SecondLevelDataCache - wartość ta określa wielkość pamięci podręcznej drugiego poziomu L2 Cache dostępnej dla systemu Windows.
Kilkamy 'Modify' -> Decimal. Np. dla procesorów Athlon K7 (Slot A) ilość L2 Cache = 512KB. Należy wtedy wpisać 512. Jeśli HAL sam nie potrafi wykryć wielkości L2, ustawa tę wartość na 256(KB).
Wyłączanie podsystemu POSIX
Usuwając z gałęzi:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\SubSystems]
wpisy 'Optional' i 'Posix' możemy przyspieszyć ogólne działanie systemu poprzez wyłączenie podsystemu POSIX (Portable Operating System Interface). Pozwoli to zaoszczędzić nieco pamięci. Jednak zanim dokonamy tej zmiany musimy się upewnić, że żadna z naszych aplikacji nie korzysta z podsystemu POSIX (Programy napisane zgodnie z POSIX można przenosić pomiędzy różnymi systemami operacyjnymi; podsystem ten został zaczerpięnty z usług UNIXowych). W razie niepewności najlepiej zrobić backup (NTBackup) lub wyeksportować całą gałąź i dopiero usunąć te dwa wpisy. W razie problemów zawsze będziemy mogli powrócić do standardowego ustawienia.
AlwaysUnloadDLL - Explorer często cache'uje, kopiując do pamięci wiele plików DLL i pozostawia je tam przez dłuższy czas, co znacznie zmniejsza ilość dostępnej pamięci; pozwala jednak zaoszczędzić trochę czasu podczas uruchamiania tych samych aplikacji lub programów korzystających z tych samych bibliotek DLL. W razie niewielkiej dostępnej ilości pamięci operacyjnej RAM (128MB i poniżej) zalecane jest ustawienie w gałęzi:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer]
AlwaysUnloadDLL (wartość typu DWORD):
na '1' (explorer zawsze będzie usuwał z pamięci władowane wcześniej pliki DLL);
ewentualnie na '0' (explorer będzie zostawiał na jakiś czas władowane wcześniej pliki DLL)
Prefetching = szybsze startowanie aplikacji
Jeśli zależy Ci na szybszym startowaniu programów w Windows XP, możesz zoptymalizować funkcję prefetching za cenę ciut wolniejszego bootowania. Uruchom regedit i w gałęzi:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters]
zmień poniższy klucz tak jak podano:
"EnablePrefetcher"= dword: 00000005 (5)
UWAGA: Po zaaplikowaniu powyższych tweaków należy zrestartować komputer, aby nowe ustawienia zostały uwzględnione przez system.
LUNA a wydajności (Windows XP/2003)
Dysponujesz słabyszym komputerem, masz mało RAMu, starszy procesor, a używasz okienek XP:
Przyspiesz system wyłączając zbędne fajerwerki graficzne. Klikamy prawym przyciskiem myszy na
'My Computer' -> Properties -> Advanced -> Performance i ustawiamy opcję 'Adjust for best performance' (Mój komputer -> Właściwości -> Zaawansowane -> Wydajność -> Dopasuj do najlepszej wydajności).
Możesz też oczywiście użyć opcji 'Custom' (Własne) i samemu wybrać, które opcje włączyć.
Im mniej zaznaczonych tym Windows XP/2003 będzie działał szybciej, ale i gorzej wyglądał. Sam musisz znaleźć kompromis pomiędzy wyglądem a wydajnością albo zdać się na automatyczne ustawienie:
'Let Windows choose the best...' (Niech system Windows sam...)
Optymalizacja systemu Windows XP programem Tweak XP
Nie lubisz szperać w różnych opcjach i rejestrze? Najlepiej jest wtedy posłużyć sie programem TweakXP.
Omówię jego najważniejsze i najbardziej istotne funkcje optymalizacyjne.
Memory Optimization - optymalizacja pamięci
W celu automatycznej optymalizacji RAMu kilkamy Optimize RAM. Nastąpi zwolnienie części używanej pamięci fizycznej.
'Clear the Clipboard' - czyści schowek Windows podczas optymalizacji RAMu.
'Force Windows to unload DLL's from memory' - czyszczenie DLL Cache, który jest aktualnie używany w pamięci.
'Let me specify how much memory to reorganize' - sami wybieramy ile pamięci zwolnić:
Wybieramy ile pamięci chcemy zwolnić (zalecane: połowa całej pamięci RAM) i kilkamy Optimize RAM.
Komentarz: Osobiście nie korzystam z tej opcji, ale osoby z małą ilością pamięci mogą spróbować zwiększyć nieco wydajność gier/aplikacji.
Cache Optimization - optymalizacja cache'u
Jeśli posiadasz wolną pamięć RAM, możesz przyspieszyć działanie systemu poprzez zwiększenie 'IoPageLockLimit' do 4096 Kb lub więcej, zależnie od posiadanej ilości RAMu:
4096 KB (dla 32MB i mniej RAM)
8192 KB (dla 32MB i więcej RAM)
16384 KB (dla 64MB i więcej RAM)
32768 KB (dla 128MB i więcej RAM)
65536 KB (dla 256MB i więcej RAM)
Komentarz: Tutaj zalecam zastosować się do powyższych wskazówek.
Harddisc Optimization - optymalizacja dysku twardego
'Clear pagefile (swapfile) on shutdown' - system czyści plik wymiamy (SwapFile) przy zamykaniu systemu, w celu lepszej wymiany danych w następnej sesji. Czas zamykania wzrośnie o kilkanaście sekund (zależnie od wielkości pamięci wirtualnej).
'Disable Windows File Protection' - Windows File Protection (WFP) to mechanizm chroniący pliki systemowe (gł. DLL) przed zamianą ich na niekompatybilne wersje.
Uwaga: Ta opcja dotyczy tylko skanowania plików i nie wyłącza całkowicie ochrony plików systemu Windows.
'Increase NTFS Performance by Disabling the Last Access Time Stamp' - przyspiesza działanie systemu plików NTFS (szczególnie przy dużej ilości katalogów).
'Enable boot defrag for faster booting' - pozwala na szybsze uruchamianie systemu poprzez defragmentację plików używanych przy boot'owaniu. Po zaznaczeniu tej opcji warto uruchomić defragmentator dysku, na którym zainstalowany jest Windows XP.
Komentarz: Tutaj polecam włączyć:
- Clear pagefile (swapfile) on shutdown
- Enable boot defrag
Core System Performance - optymalizacja rdzenia systemu
'Enable Core System Perf.' - w systemach z dużą ilością pamięci (min.512 MB) można zwiększyć szybkośc działania Windows poprzez zapobiegnianie cachowania głównych jego elementów na dysk.
'Optimize CPU/Memory usage for...' - Windows XP może przydzilić więcej czasu procesora na aplikacje (Applications) bądź usługi działajęce w tle (Background tasks), więcej pamięci zaś dla aplikacji (Applications) lub też na cachowanie systemu (System caching).
Komentarz: Tutaj najlepiej jest zaznaczyć:
- Optimize CPU/Memory usage for: Applications - jeśli nie jest to serwer.
Po ustawieniu wszystkich opcji kilkamy na 'Save Settings'.
Hardware Tweaks - optymalizacja sprzętu
'CPU tweaks' - po wybraniu odpowiedniego modelu, opcja ta pozwoli zoptymalizować szybkość, poprawiając pracę sterownika procesora. Aby wyłączyć tę optymalizację kilknij : 'Disable CPU Tweak'.
Display adaptor tweaks: there are tweaks available for the most comman display adaptors -
'CD / DVD Tweaks' - optymalizacja cache'u napędu CD-ROM lub DVD. Dużego rozmiaru cache (Large Cache) najlepiej jest użyć przy co najmniej 64 MB RAMu. Można także wyłączyć funkcję AutoRun.
'UDMA66 Mode / Intel chipsets' - opcja ta pozwala włączyć obsługę UDMA66 na chipsetach Intel'a. Należy jej użyć tylko wtedy, gdy Windows XP sam nie wykryje odpowiedniego trybu.
'Open optimization wizard' - wciśnij ten przycisk jeśli chcesz uruchomić Tweak XP System-Optimization Wizard, który to automatycznie dostroi Windows XP do Twojego komputera. Po wykonaniu tego musisz zrestartować komputer.
Komentarz: Tutaj zalecam wybrać poprawny typ procesora (Intel/AMD) oraz włączyć Large Cache dla CD-ROMu/DVD.
Optymalizacja zamykania Windows XP/2000/2003
Problemy z zamykaniem systemu Windows XP/2000 i proponowane rozwiązania:
Windows nie wyłącza się (a ja mam komputer ATX)...
1. W rejestrze zmienić (dodać) wpis (regedit.exe):
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"PowerdownAfterShutdown" = 1 (typ DWORD)
2. Uruchomić 'Device Manager' (Menadżer urządzeń), potem 'View' (Widok) ->'Show Hidden Devices' (Pokaż ukryte urządzenia) i włączyć (Enable) NT APM/Legacy Support.
3. Zaktualizować BIOS i włączyć funkcję 'ACPI Support' (jeśli jest dostępna).
Restart zamiast wyłączenia ?
Jeśli Windows XP/2003 restartuje się podczas zamykania systemu :
1. Sprawdź czego to przyczyna wyłączając opcję automatycznego restartu podczas awarii:
prawy przycisk na 'My Computer' -> 'Properties' -> 'Advanced' -> 'Startup & Recovery' -> 'Settings' -> 'System Failure' odznacz 'Automaticlly restart' ('System reboot') (Mój komputer
2. Spróbuj wyłączyć standardowy ekran powitalny (Windows XP):
W 'Control Panel' ->'User Accounts'-> Change the way users log on or off -> Odznacz Use the Welcome screen i ew. Use Fast User Switching.
3. Może to być spowodowane oprogramowaniem 'Direct CD', które jest dostarczane razem z Easy CD Creator'em (Roxio). Możesz wtedy spróbowac usunąć (jeśli istnieje) plik UDFRINST (najlepiej odinstalować całego Easy CDC).
4. Włącz/ wyłącz APM - tu bywa różnie więc należy pokombinować.
5. Częstą przyczyną jest błąd sterownika któregoś z urządzeń, więc warto zajrzeć do Podglądu zdarzeń:
'Administrative Tools' -> 'Event Viewer':
Zamykanie działa poprawnie, ale ... w żłówim tempie...
Windows XP/2000 wyłącza poprawnie komputer, ale zamyka się bardzo wolno... :
1. Jeśli posiadasz kartę z chipem firmy NVIdia (cała rodzina kart GeForce 1/2/3):
w 'Control Panel' -> 'Administrative Tools' -> 'Services' (Panel sterowania -> Narzędzia administracyjne -> Usługi) kliknij na : NVidia Driver Helper Service. Następnie wyłącz go: chwilowo - Stop, na stałe - zmienijąc Startup Type na Disabled. Skróci to znacznie czas zamykania, ale spowolni nieco działanie gier 3D (spadek FPS rzędu 2 - 5 %).
2. Przeprowadź defragmentację dysku, na którym masz zainstalowane Windows.
3. Jeśli w rejestrze (regedit.exe) istnieje wpis:
[ HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Memory Management ]
"ClearPageFileAtShutdown" = 1
to usuń go. Windows będzie się zamykał szybciej (ale plik wymiany, SwapFile, nie będzie czyszczony podczas zamykania).
4. Zmień w rejestrze w następujących gałęziach niżej podane wartości String tak jak podano:
a. [ HKEY_CURRENT_USER\Control Panel\Desktop ]
"HungAppTimeout" = 5000 (ustawienie standardowe)
"WaitToKillAppTimeout" = 4000 (standardowo 20000)
b. [ HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control ]
"WaitToKillServiceTimeout" = 4000 (standardowo 10000)
Wiele ciekawych wskazówek i porad znajdziesz też w dziale Tips'n'tricks, w artykule Optymalizacja połączenia internetowego oraz Optymalizacja: usług (wersja PL) / (wersja ENG - Services) / Optymalizacja usług w Windows 2003
1