
14. Defragmentacja dysku i elementów systemu
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:
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.
- partycja systemowa by³a defragmentowana raz na miesi±c,
- raz na 3 miesi±ce zdefragmentowaæ partycjê zawieraj±c± pliki ruchome,
- 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],
- 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:
- Systemowy 'dfrg.msc' domy¶lnie defragmentuje bootfiles [defrag c: -b] i nie ma potrzeby ingerencji w rejestrze.
- 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.
Zobacz te¿:
- 1. Przed instalacj±
- 5. Tego siê nie robi, to szkodzi!
- 11. Us³ugi i profile sprzêtowe
- 12. Start XP - autostart i prefetch
- 8. Zbêdne funkcje XP
Ś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?...




