14. Defragmentacja dysku i elementów systemu

data: 06-06-2006 | autor: Marcin Kluczek | kategoria: Optymalizacja Windows 2000 XP i 2003

FRAGMENTACJA - jest to podzia³ plików na kilka czê¶ci, przez co procesy odczytu i zapisu tego pliku ulegaj± wyd³u¿eniu. Zjawisko to prowadzi do obni¿enia wydajno¶ci dysku i systemu (fragmentacja partycji systemowej, a po¶rednio wszystkich partycji). Sposobem na walkê z tym zjawiskiem jest u¿ycie programu przeprowadzaj±cego defragmentacjê.

  • Zanim przyst±pisz do defragmentacji upewnij siê, ¿e wykona³e¶ wszystkie poprawki opisane we wcze¶niejszych rozdzia³ach. Defragmentacja jest ostatnim krokiem optymalizacji, dlatego wszystkie zmiany i poprawki nale¿y dokonaæ przed jej rozpoczêciem.

  • Defragmentacja dysku pozwoli na optymalne rozmieszczenie danych, tak aby programy uruchamia³y siê szybciej, a pliki by³y szybciej odczytywane i zapisywane.

Defragmentacja to tylko teoretycznie prosta czynno¶æ. Mo¿na oczywi¶cie odpaliæ jakikolwiek defragmentator i zapomnieæ o sprawie, ale gdzie tu wydajno¶æ? W dzisiejszych czasach, kiedy procesory s± szybkie, PC-ty wyposa¿one w setki MB Ram-u, szybko¶æ dysku ma coraz wiêksze znaczenie. Zanim procesor zacznie przetwarzaæ dane, dysk musi je najpierw za³adowaæ do pamiêci operacyjnej. A zatem wszystko zaczyna siê w³a¶nie od dysku, warto wiêc zdefragmentowaæ go jak nale¿y!

Po pierwsze przyjrzyjmy siê temu co mamy defragmentowaæ, czyli partycji systemowej NTFS.

  • Nieco ju¿ pisa³em na temat budowy samego NTFS. Przypomnê tylko pokrótce, ¿e ma on 4 struktury: MFT, MFT Zone, Metadata i Directories. I tu siê ju¿ zaczynaj± problemy z defragmentacj±, poniewa¿ wiêkszo¶æ defragmentatorów nie radzi sobie z tymi strukturami!

    Systemowy dfrg,msc jako¶ sobie radzi z MFT, ale okre¶lenie jako¶ nie oznacza, ¿e robi to idealnie. Kila defragmentatorów potrafi scalaæ MFT, MFT Zone i Metadata w trybie offline - uruchamiaj± specjalny tryb zanim system siê uruchomi. Takie podej¶cie do sprawy jest jak najbardziej s³uszne. System nieustannie odwo³uje siê do tych plików i trudno jest przeprowadziæ ich pe³n± defragmentacje, kiedy Windows normalnie funkcjonuje.

    Co do plików Directories ca³a sprawa wygl±da jeszcze gorzej. Tylko Perfect Disk potrafi scaliæ wszystkie pliki katalogów w jeden ci±g na dysku.

  • Niestety defragmentacja to nie tylko struktury NTFS. To równie¿ dwa inne specyficzne pliki jakie wykorzystuje XP. S± to pagefile.sys i hibernate.sys, których równie¿ nie da siê sformatowaæ w zwyk³ym trybie. S± to kolejni kandydacji to defragmentacji w trybie offline. O ile spora grupa defragmentatorów radzi sobie z plikiem stronicowania, to wszystkie one padaj± podczas starcia z hibernate.sys.

  • Nie zapominajmy równie¿ o boot files, czyli mechani¼mie Layout Optimalization. Jedynie kilka programów potrafi skorzystaæ z mo¿liwo¶ci jakie daje plik Layout.ini. S± to defrag.msc, Perfect Disk 8 i O&O Defrag 8.

    System co trzy dni oblicza, które pliki s± u¿ywane podczas startu systemu - pos³uguj±c siê plikiem NTOSBOOT...pf stworzonym przez mechanizm prefetchu. W ten sposób powstaje zostaje zaktualizowany plik Layout.ini. Po 30 minutach bezczynno¶ci Windows sam rozpocznie proces defragmentacji i postara siê ustawiæ obok siebie wszystkie pliki, o których informacje znalaz³ w Layout.ini. Za pomoc± dfrg.msc Windows mo¿e równie¿ na ¿±danie zoptymalizowaæ ustawienie boot files.

    Start - Uruchom - wpisz 'defrag X: -b' [X= litera partycji]. Czasem warto u¿yæ tej komendy bezpo¶rednio przed defragmentacj± partycji systemowej. Je¿eli chcesz u¿yæ Perfect Disca 7lub OO Defrag 8 nie musisz przejmowaæ siê t± komend±. Wystarczy, ¿e aktywujesz odpowiednie opcje tych programów.

    I tu koñcz± siê podobieñstwa. Dfrg.msc bez wiêkszego zastanowienia przenosi boot files w najdalsz± czê¶æ partycji - czyli ku ¶rodkowi talerzy dysku, gdzie transfer jest ju¿ nieco gorszy ni¿ na pocz±tku partycji. Robi to równie¿ w sposób niedba³y i w zasadzie ogranicza siê do wci¶niêcia boot files w wolne miejsce. Lepsze to ni¿ nic, ale trzeba przyznaæ, ¿e Perfect Disc7 i OO Defrag 8 robi± to o wiele lepiej. Oba programy przemosz± boot files na pocz±tek partycj, gdzie transferdanych jest najwiêkszy. Oba staraj± siê równie¿ scaliæ te pliki w jak najwiêkszym stopniu. Perfect Disc7 robi to idealnie, OO Defrag zostaje nieco w tyle, ale niewiele.

  • Pozostaje jeszcze prozaiczna kwestia scalania wolnej przestrzeni na dysku. Je¿eli program pozostawi wiele dziur, wówczas dane wkrótce zostan± pofragmentowane. W te dziury i dziurki wpadn± nowe pliki i zostan± przy tym podzielone na wiele czê¶ci. Niestety prawda jest taka, ¿e wiele programów nie potrafi scaliæ wolnej przestrzeni!


Dok³adne scalenie wolnej przestrzeni spowoduje, ¿e uzyskamy najwy¿sz± wydajno¶æ, ale tylko do czasu nadpisania juz istniej±cych plików. Wówczas istnieje ryzyko, ¿e trzeba bêdzie wykorzystaæ nowe klastry, które znajd± siê z dala od pierwszej czê¶ci pliku. Ta odleg³o¶æ po takiej defragmentacji mo¿e byæ wiêksza ni¿ pozostawiaj±c dysk niezdefragmentowany. W praktyce pliki i tak ulegaj± fragmentacji, wiêc nie mamy siê czym przejmowaæ. Nie chcê tu opisywaæ kilku teoretycznch wariantów, co mo¿e siê zdarzyæ. Pe³na defragmentacja zawsze przynosi korzy¶ci! Po prostu trzeba j± wykonywaæ regularnie, a bêdzie ona trwa³a na tyle krótko, ¿e nie bêdzie nam na nia szkoda czasu.

Defragmentujemy pliki systemu NTFS - nie dotyczy FAT32


Z ró¿nych, przyczyn od czasu do czasu trzeba zdefragmentowaæ pliki systemu NTFS. MFT z czasem móg³ ulec defragmentacji [czytaj jak temu zapobiec] lub u¿yto konwersji FAT32 na NTFS. Do tego celu wystarcz± nawet wersje demonstracyjne Perfect Disca 7 lub O&O Defrag 8. ¦ci±gamy odpowiednie demo ze strony producenta i defragmentujemy partycje w trybie offline. Celowo nie wymieniam Diskeepera, jego szybko¶æ dzia³ania jest wprost proporcjonalna do skuteczno¶ci z jak± defragmentuje partycje.

Zapobiegamy fragmentacji MFT w przysz³o¶ci!

Przy kolejnym podziale MFT Zone znowu mo¿e zabrakn±æ rekordów i trzeba bêdzie zapisaæ pierwsze zapasowe rekordy [MFT Zone]. Jest na to proste rozwi±zanie. MFT ro¶nie wraz ze wzrostem liczby plików [dok³adniej, zapisanych rekordów] i nie zmniejsza nigdy swych rozmiarów. Je¿eli mieli¶my kiedy¶ zapisane 10000 rekordów, a teraz jest ich 800, system nadal ma 9200 wolnych rekordów. Wykorzystajmy tê w³a¶ciwo¶æ. Uruchamiamy wiersz poleceñ [Start - Uruchom - wpisz 'cmd'] i wpisujemy kolejno polecenia:


Zanim zrobisz cokolwiek upewnij siê, ¿e zainstalowa³e¶ ju¿ wszystkie niezbêdne programy na partycji systemowej.

Uruchamiamy wiersz poleceñ [Start - Uruchom - wpisz 'cmd'] i wpisujemy kolejno polecenia:

  • C: - lub inna litera dysku, który chcemy zabezpieczyæ przed fragmnetacj± MFT.
  • md s - tworzy katalog s
  • cd s - otwiera katalog s
  • FOR /L %f in (1,1,20000) do echo Hey > %f - tworzy 20.000 plików, które nie zawieraj± danych, ich jedynym zadaniem jest utworzenie nowych 20.000 rekordów w MFT. Bêdzie to dodatkowy ogromny bufor, który powinien uchroniæ MFT przed fragmentacj±, nawet je¿eli podzielona zostanie MFT Zone.
  • del *.* /q - kasuje wszystkie utworzone pliki, spe³ni³y one ju¿ swoje zadanie, bufor wewn±trz MFT zosta³ utworzony
  • cd.. - cofamy siê o jeden poziom w strukturze katalogów
  • rd s - usuwamy katalog s

W ten sposób mo¿emy ju¿ niemal na 100% byæ pewni, ¿e MFT nigdy nie ulegnie fragmentacji. Wyj±tkiem bêd± partycje, które gromadz± dziesi±tki tysiêcy plików. Oczywi¶cie nic nie stoi na przeszkodzie, aby wówczas powiêkszyæ MFT nawet o 200.000 wpisów. To ¿aden problem. £atwo sprawdziæ ile mamy plików na partycji i ile jest zajêtych rekordów MFT. Start - Uruchom - wpisz dfrg.msc - zaznacz partycjê - analizuj - wy¶wietl raport.

Interesuj± nas tylko dwie warto¶ci. Ile mamy zajêtych rekordów MFT? Jak du¿± mamy rezerwê w MFT? Na poni¿szym przyk³adzie rezerwa jest bardzo du¿a 1 MB w MFT to 1024 rekordy, wiêc nie trzeba siê przejmowaæ ryzykiem fragmentacji MFT. W zale¿mo¶ci od wielko¶ci i liczby plików mo¿emy przyj±æ, ¿e 1 MB w MFT to oko³o 950 plików na partycji.


Jedyna wada komendy FOR /L %f in (1,1,20000) do echo Hey > %f, to zarezerwowanie na sta³a ~20 MB (lub wiêcej) na sta³e. Niewielka to zaiste wada.

Po tej modyfikacji nie musimy siê ju¿ przejmowaæ MFT Zone i jej umiejscowieniem na partycji. Ró¿ne defragmentatory umiejscawiaj± ten plik w ró¿nych miejscach, ale teraz to bez znaczenia, prawdopodobnie nie bêdzie nam ju¿ wiêcej potrzebny.


Nie zapominajmy o zdefragmentowaniu pliku wymiany. Oba programu radz± sobie z nim znakomicie. Je¿eli nie uda im siê zdefragmentowaæ swapa ³±cznie z pagefile.sys, nie musimy siê niczym przejmowaæ. Wystarczy, ¿e uruchomimy jeszcze raz defragmentator i polecimy mu scaliæ jedynie plik wymiany.

Defragmentujemy pliki ³adowane podczas startu systemu.


Aby w pe³ni wykorzystaæ moc drzemi±c± w mechanizmach prefetchu i Layout optimalization, musi nieco bardziej siê pogimnastykowaæ.
  • Usuwamy ca³± zawarto¶æ C:\WINDOWS\Prefetch - w ten sposób czy¶cimy katalog ze starych scenariuszy, których ju¿ nigdy wiêcej nie zamierzamy u¿yæ. Usuwamy równie¿ NTOSBOOT...pf i Layout.ini. W normalnych okoliczno¶ciach skasowanie Layout.ini nie jest zbyt rozs±dne, ale teraz mo¿emy to bezpiecznie zrobiæ.
  • Restartujemy system - XP po pewnym czasie [max 5 min, z regu³y o wiele szybciej] utworzy nowy NTOSBOOT...pf. Bêdzie on wolny od tych zapisów, które odnosi³y siê do aplikacji, które skasowali¶my z dysku lub usunêli¶my z autostartu.
  • Odtwarzamy Layout.ini - wpisujemy komendê Rundll32.exe advapi32.dll,ProcessIdleTasks. W ten sposób system odbuduje plik na podstawie nowego NTOSBOOT...pf.
  • Odpalamy demo Perfect Disk [smart defragmentation], O&O Defrag [trzeba uaktywniæ funkcjê w opcjach] i w ten sposób przenosimy bootfiles na pocz±tek partycji systemowej.

W ten sposób zyskujemy kilka sekund podczas startu systemu.

Degragmentujemy pliki


Pozosta³o nam ju¿ tylko zdefragmentowaæ pliki. Je¿eli u¿y³e¶ Smart defragmentation, to nie musisz ju¿ nic robiæ. Chyba, ¿e chcesz pojechaæ po ca³o¶ci i dodatkowo uruchomiæ defragmentator z opcj± agressive. Perfect Disc scali nawet najmniejsze fragmenty wolnej przestzreni. Co do O&O Defrag, to warto najpierw u¿yæ trybu Stealth, potem Space.

Darmowa alternatywa.


Nie bêdê ukrywa³, ¿e Perfect Disc kosztuje 40 dolarów, a 30-dni na korzystanie z wersji demonstracyjnej to niewiele. Dlatego poszuka³em jakiej¶ rozs±dnej darmowej alternatywy:

  • Do defragmentacji pliku wymiany z powodzeniem wystarczy darmowy Pagedefrag. Przy okazji scali te¿ hives rejestru.
  • Do defragmentacji MFT u¿ywamy systemowego dfrg.msc. Pamiêtaj o powiêkszeniu MFT, aby uchroniæ j± przed fragmentacj±. Dfrg.msc to takie zabezpieczenie, na wszelki wypadek.
  • Do scalania plików znakomicie nadaje siê Power Defragmenter. Jest to nak³adka na bardzo dobry config.
  • Scaleniem bootfiles mo¿e zaj±æ siê komenda defrag x: -b [x= partycja systemowa]. Nie jest ona doskona³a, ale jak ju¿ pisa³em, lepsze to ni¿ nic.
Wa¿ne, aby:
  1. partycja systemowa by³a defragmentowana raz na miesi±c,
  2. raz na 3 miesi±ce zdefragmentowaæ partycjê zawieraj±c± pliki ruchome,
  3. partycja z plikami sta³ymi w zasadzie nie wymaga defragmentacji, pod warunkiem, ¿e nie wrzucasz tam co chwila innych typów plików [patrz podzia³ na partycje],
  4. zawsze wysok± wydajno¶æ otrzymasz, po defragmentacji dysku po odinstalowaniu ka¿dej wiêkszej ilo¶ci danych (np. gra 500 MB). W praktyce jest to bardzo czasoch³onne, wiêc lepiej zrobiæ to po odinstalowaniu naprawdê du¿ej porcji danych np. 20% pojemno¶ci ca³ej partycji.

Tego siê nie robi!


Czêsto spotyka³em siê z opini±, ¿e aby pozwoliæ systemowemu defragmentatorowi na defragmentacjê bootsectora nale¿y w ga³êzi rejestru [HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ Dfrg\ BootOptimizeFunction] ustawiæ warto¶æ 'Enable' na 'Y' ['N' wy³±cza opcjê]. Nie rób tego! Sam do pewnego momentu proponowa³em tak± metodê optymalizacji, jednak do czasu... gdy u¶wiadomi³em sobie, ¿e:
  1. Systemowy 'dfrg.msc' domy¶lnie defragmentuje bootfiles [defrag c: -b] i nie ma potrzeby ingerencji w rejestrze.
  2. Je¿eli przez przypadek, czy te¿ b³êdn± interpretacjê wy³±czysz tê opcjê, to odbije siê to na szybko¶ci startu systemu, a po¶rednio na ogólnej fragmentacji ca³ej partycji.

mkk270

Zobacz te¿:

  1. 1. Przed instalacj±
  2. 5. Tego siê nie robi, to szkodzi!
  3. 11. Us³ugi i profile sprzêtowe
  4. 12. Start XP - autostart i prefetch
  5. 8. Zbêdne funkcje XP

Oceñ ten tekst:   

Średnia ocena:

Autor: Turisaz | Data: 17-06-2006, 11:47:22

Super informacje oby takich po¿ytecznych w ca³ym serwisie wiecej

Autor: gcu | Data: 21-06-2006, 18:00:43

uwa¿am ¿e b. dobrze opisane zagadnienia i wreszcie inaczej jakby precyzyjniej i ciekawie ni¿ na dotychczas czytanych forach. jestem zwyk³ym u¿ytkownikiem kompa o ma³ej na jego temat wiedzy i takie inf sa dla mnie ciekawe, lubiê pomajsterkowaæ w kompie. dziêki , pozdrawiam gcu

Autor: ws | Data: 08-07-2006, 01:08:22

¦wietny, profesjonalny materia³. Zajmuje siê zawodowo napraw± komputerów jak równie¿ konserwacj± systemów operacyjnych i powiem ¿e dawno nie czyta³em tak rzeczowego i fachowego artyku³u. Pozdrawiam gor±co autora. Chcia³bym zwróciæ tylko uwagê na b³±d w komendzie : (Rundll32.exe advapi32.dll,ProcessIdleTask) – na koñcu Tasks.

Autor: ZgRD | Data: 30-07-2006, 20:26:15

Artyku³ bardzo przydatny i pomocny. Windows pracuje sprawniej a ja wiem wiêcej na jego temat :)

Autor: SS | Data: 24-09-2006, 23:19:03

¦wietny artykul :). Mam tylko pytanie co do wymienionych programów: czy Diskeeper jest gorszy czy lepszy od Perfect Disca 7 lub OO Defrag 8??

Autor: JA | Data: 13-10-2006, 23:41:31

Czy mo¿na uzyskaæ odpowied¼, dlaczego programy do defragmentacji nie defragmentuj± partycji NTFS o rozmiarach klastra wiêkszych od 4 kB?

Autor: siela | Data: 29-09-2007, 08:53:50

po usunieciu wszystkiego z Prefetch, restarcie i wpisaniu komendy Rundll32.exe advapi32.dll,ProcessIdleTasks nie odtwarza mi siê layout.ini. WTF?

Autor: mope | Data: 11-11-2007, 18:42:43

tez skasowalem layout.ini tak mozna wywnioskowac z opisu!! tutaj jak naprawic problem: http://www.neowin.net/forum/index.php?showtopic=331072

Autor: bobo | Data: 03-02-2009, 18:30:06

o matko

Autor: michael200 | Data: 18-03-2009, 23:24:56

Dobry opis 5.

Autor: mmw | Data: 25-01-2010, 18:07:50

Nie spotka³em lepszego kompendium. Czyta³em jeszcze na www.xptruepower.friko.pl, nawet szuka³em czy nie ma strony w archiwum internetu :) na szczê¶cie jest tutaj, ogromny szacunek i wielkie dziêki dla autora.

Autor: ap | Data: 17-11-2010, 16:12:43

Czy jest mo¿liwo¶æ naprawy (folderu pliku) $Mft. Mam XP prof. Podczas pracy pojawia siê blad: plik folder $Mft jest uszkodzony i nie mo¿na go odczytaæ. ap

Autor: Piotr | Data: 14-04-2011, 07:31:03

Defragmentacja pliku hiberfil.sys jest dziecinnie prosta. Robimy tak: 1. Wy³±czamy hibernacjê w opcjach Panelu Sterowania. Zniknie nam wtedy plik hiberfil.sys. Przy okazji zrobi nam siê wiêcej wolnego miejsca na dysku, które usprawnia defragmentacjê. 2. Uruchamiamy defragmentacjê partycji na której on by³ przy u¿yciu narzêdzia, które porz±dkuje te¿ pust± przestrzeñ dyskow±. 3. Znowu w³±czamy hibernacjê. Nowy plik hiberfil.sys utworzy siê w wolnej przestrzeni dysku w jednym kawa³ku. Zdaje siê, ¿e nawet nie potrzeba wykonywaæ ¿adnych restartów pomiêdzy poszczególnymi etapami pracy. Czy mo¿e byæ co¶ prostszego?...

Autor (wymagane):
Treśæ (wymagane):
Przepisz kod z obrazka (wymagane):
   

Skarpety X-socks | Przyspieszanie komputera | Jak przyspieszyæ Internet | Przyspieszanie Wifi | aktywacja Windows 7 | nLite |
Nokia kalkulator | Jak zdj±æ Simlock za darmo