Defragmentacja, Systemi i Sieci
[ Pobierz całość w formacie PDF ]
Systemy operacyjne – Zjawisko fragmentacji i defragmentacji dysku Temat: Zjawisko fragmentacji i defragmentacji dysku Słowo wstępu Proces fragmentacji danych towarzyszy każdej wersji systemu Windows. A wraz z pojawianiem się kolejnych ciągle ewoluował sposób radzenia sobie z tym problemem. W Windows 95 miano do czynienia z monotonnym przemieszczaniem bloków reprezentujących poszczególne obszary dysku, a w Windows 98 zaprezentowano technologię segregującą dane według częstotliwości, z jaką były otwierane. Windows 2000 otrzymał natomiast całkiem nowy program defragmentujący, który został dostarczony przez niezależną firmę – Execiutive Software, o nazwie Diskeeper. Program oprócz wsparcia dla partycji NTFS nie zaoferował nic nowego, co gorsza pod względem funkcjonalności został dalece ograniczony. Podobnie zachowywał się przy defragmentacji plików systemowych czy plików meta data charakterystycznych dla systemu plików NTFS, czyli po prostu ignorował je. Ten sam program został umieszczony w Windows XP. Na szczęście w usprawnionej wersji, w której przełamano kilka elementarnych ograniczeń. Windows XP okazał się dość rewolucyjny w radzeniu sobie z fragmentacją -wprowadzono kilka mechanizmów wbudowanych w sam system, które ograniczyły dwa najpoważniejsze skutki fragmentacji – wydłużony czas uruchamiania się aplikacji oraz systemu. Fragmentacja – proces tworzenia oraz jej wpływ na wydajność systemu Fragmentacja jest procesem naturalnym, choć jak najbardziej szkodliwym. W rankingu czynników drastycznie pogarszających wydajność komputera plasuje się na najwyższych miejscach. Z czego to wynika? Posłużmy się przykładem: kopiowany jest plik z dysku A na dysk B. Dysk B nie ma skonsolidowanej wolnej przestrzeni a największy jej fragment nie jest w stanie w całości zmieścić owego pliku, wobec czego system musi rozbić kopiowane dane na fragmenty, a te zostają rozmieszczone w różnych odległościach względem siebie. W pewnym momencie jedna z uruchomionych aplikacji zgłasza żądanie odczytu tak rozbitego na części pliku. Głowica dysku fizycznie wykonując tę operację skacze po całej przestrzeni HDD odczytując kolejne fragmenty, przez co wydłuża się czas dostępu i zmniejsza się ilość odczytanych bajtów na sekundę, w rezultacie spada szybkość działania dysku twardego. Fragmentacja polega zatem na rozproszeniu po dysku twardym informacji. Proces ten powoduje spowolnienie operacji dyskowych. Wraz z modyfikowaniem zawartości pliku jego rozmiar zazwyczaj rośnie i często przekracza przypisaną mu początkowo liczbę klastrów, co powoduje konieczność znalezienia wolnych klastrów w innym obszarze dysku, a tym samym rozczłonkowanie pliku. Szablonowym przykładem na powstawanie fragmentacji jest dopisywanie kolejnych informacji do pliku, przy którym nie ma wolnego miejsca. Mechanizmy redukujące skutki fragmentacji 1. Prefetching jest to mechanizm, który odczytuje potrzebne dane do inicjalizacji systemu lub aplikacji, zanim zostanie zgłoszone o nie żądanie. Umożliwia to Strona 1 Systemy operacyjne – Zjawisko fragmentacji i defragmentacji dysku ograniczenie do minimum opóźnienia w operacjach wejścia/wyjścia i w rezultacie poprawę wydajności systemu Windows o około 10%. Jak to działa? System XP ma wbudowany monitor plików, który tworzy listę potrzebnych plików do otwarcia programu lub uruchomienia systemu. Taka lista jest zapisana w pliku z rozszerzeniem *.pf w katalogu windows/prefetch i odczytywana, kiedy następuje uruchomienie procesu, któremu odpowiada. Dla przykładu, jeśli jest otwierany edytor tekstu Word, system sprawdza, czy ma plik scenariusza (z rozszerzeniem .pf) dla tego programu. Jeśli tak – odczytuje z wyprzedzeniem pliki .dll, czcionki oraz inne pliki znajdujące się w scenariuszu, które są potrzebne do uruchomienia aplikacji i umieszcza je w pamięci. 2. Layout Optimalization , który jest ściśle powiązany z Prefetching. Umieszcza on pliki w kolejności, w jakiej są zgłaszane żądania o ich odczyt przy uruchamianiu systemu czy aplikacji. Czynność tę przeprowadza co trzy dni w czasie bezczynności komputera, a wygląda to następująco: po 30 minutowej bezczynności system uruchamia w tle Windows Defragmenter, z odpowiednim parametrem, który znajduje na dysku odpowiednią ilość wolnego miejsca na zindeksowane pliki i przenosi je tam w odpowiedniej kolejności. Wszystko odbywa się bez wiedzy i udziału użytkownika. Lista owych plików znajduje się w pliku layout.ini , który jest w katalogu windows/prefetch. Windows Defragmenter także podczas defragmentacji uruchomionej przez użytkownika przeprowadza Layout Optimalization. Kontrolowanie Prefetching oraz Layout Optimalization Prefetching Za pomocą zmiany odpowiednich parametrów w rejestrze można włączyć i wyłączyć prefetching, który domyślnie powinien być włączony. W celu konfiguracji mechanizmu prefetching należy: 1. Otworzyć edytor rejestru (regedit) 2. Rozwinąć gałąź: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ Session Manager\Memory Management\PrefetchParameters 3. Edytować następujący ciąg: Nazwa ciągu: EnablePrefetcher Typ ciągu: REG_DWORD Wartości: 0 - Wyłączenie Prefetching 1 - Prefetching dla inicjalizacji aplikacji 2 - Prefetching dla inicjalizacji systemu 3 - Prefetching dla inicjalizacji aplikacji i systemu Wyłączenie Prefetching jest wskazane jedynie przy użytkowaniu tzw. benchmark’ów, ze względu na udowodniony negatywny wpływ na ich wyniki. Layout Optimalization Proces układania plików wedle ich kolejności odczytu może zostać w każdej chwili przeprowadzony bez potrzeby stosowania pełnej defragmentacji. Można tego dokonać wpisując Rundll32.exe advapi32.dll,ProcessIdleTasks w linii poleceń. Ta komenda wywoła również inne czynności przeprowadzane podczas bezczynności komputera, a wszystkie je można monitorować z Menadżera zadań . Strona 2 Systemy operacyjne – Zjawisko fragmentacji i defragmentacji dysku Defragmentacja – czym jest i na czym powinna się koncentrować Jak nazwa wskazuje – defragmentacja jest procesem odwrotnym do fragmentacji, więc polega na scalaniu fragmentów danych w jedną część. Defragmentacja to proces ponownej reorganizacji plików na dysku twardym, zmierzający do ich scalania, tak aby dane zawarte w pliku zajmowały sąsiadujące klastry. Innymi słowy - jeżeli dane są obok siebie, to dysk działa szybciej. Choć z definicji sprawa wygląda prosto, w praktyce już tak nie jest. Znamy wiele specyficznych plików, które bardzo trudno jest właściwie skonsolidować a często jest tak, że przy podstawowych, prostych narzędziach jest to niemożliwe. Sytuację pogarsza fakt, że „trudne” dla defragmentatora pliki najczęściej mają kluczowe znaczenie dla szybkości działania systemu. Idealna defragmentacja oprócz konsolidacji zwykłych plików powinna obejmować następujące elementy: • Scalanie pliku stronicowania Nieraz wspominano o pliku wymiany jako elemencie szczególnie mocno skorelowanym z wydajnością systemu. Jego fragmentacja jest niezwykle istotna. Niestety, narzędzie do defragmentacji obecne w Windows XP nie potrafi scalać tej ważnej części pamięci wirtualnej. • Scalanie Master File Table MFT jest zbiorem danych, do których dysk odwołuje się najczęściej przy wykonywaniu większości operacji na partycji z systemem plików NTFS. Dlatego fragmentacja tego pliku jest wysoce niepożądana. Microsoft, świadomy tej sytuacji, wyposażył wbudowany w system defragmenter w możliwość konsolidacji MFT. Jednak nie zawsze jest przy tym skuteczny. • Scalanie pozostałych plików Meta Data NTFS posiada szereg innych plików systemowych – Meta Data, które zawierają np. informację o atrybutach plików lub o tym, czy dana jednostka alokacji jest wolna czy nie. Obiekty te są plikami i także ulegają procesowi fragmentacji. Analogicznie jak w przypadku MFT biorą udział w wielu dyskowych operacjach i wpływ na ich wydajność jest istotny. • Scalanie przestrzeni zarezerwowanej dla MFT Aby uchronić MFT przed fragmentacją, specjalnie dla niej jest rezerwowana wolna przestrzeń dysku twardego, by ten plik systemowy mógł się bez przeszkód poszerzać. Jednak skuteczność tego rozwiązania nie jest stuprocentowa, gdyż i ta zarezerwowana przestrzeń może ulec fragmentacji. • Właściwe położenie MFT oraz przestrzeni dla niej zarezerwowanej Microsoft analizując wydajność systemu z wielu aspektów wykazał, że położenie Master File Table w miejscu oddalonym od początku dysku o jedną trzecią jego powierzchni jest optymalne. Także bardzo istotne jest ułożenie MFT względem przestrzeni dla niej zarezerwowanej – po MFT to wolne dla niej miejsce. • Scalanie plików systemowych Pikirejestrusą dość kłopoiwew defragmentacji, dlatego muszą być scalane, zanim system się uruchomi. A ich konsolidacja skraca czas inicjalizacji systemu. • Opuszczenie plików zawartych w layout.ini ( nie dotyczy Windows Disk Defragmenter ) Pliki zawarte w liście umieszczonej w pliku layout.ini są układane przez Windows Disk Defragmenter według wytycznych dostarczonych przez mechanizm Layout Optimalization, toteż powinny być ignorowane przez defragmentory producentów trzecich. W przeciwnym razie może to zaowocować wydłużeniem czasu uruchamiania się systemu oraz aplikacji. Strona 3 Systemy operacyjne – Zjawisko fragmentacji i defragmentacji dysku • Scalanie i właściwe umiejscowienie wolnej przestrzeni Konsolidacja wolnej przestrzeni zwalnia postępowanie procesu fragmentacji, a umiejscowienie jej na końcu dysków pozwala przejść plikom bliżej początku HDD, gdzie transfer i czas dostępu jest najlepszy. • Defragmentacja katalogów W systemie plików NTFS katalogi są także plikami i tak jak każde pliki ulegają fragmentaryzacji. Bardzo ważne jest ich scalanie, gdyż pełnią fundamentalną rolę przy organizacji danych. Możliwości defragmentora systemu Windows XP Windows Disk Defragmenter (WDD) pod systemem Windows XP doczekał się kilku usprawnień, które wprowadziły: • Konsolidację tablicy MFT Dla możliwości konsolidacji Master File Table w trybie on-line w systemie Windows XP dodano specjalne funkcje API, które Windows Defragmenter wykorzystuje. Jednak ciągle brakuje defragmentacji wielu innych specyficznych plików systemowych w tym pliku wymiany. • Możliwość ustawienia defragmentacji w harmonogramie zadań Dodanie zadania defragmentacji do harmonogramu zadań wymaga stworzenia odpowiedniego skryptu, ponieważ możliwość ustawienia jej w harmonogramie zadań wynika z wprowadzenia w Windows XP dostępu do Windows Disk Defragmenter przez linię poleceń. Aby harmonogram zadań mógł uruchomić proces konsolidacji danych o zadanej porze trzeba stworzyć dla niego odpowiedni skrypt. W tym celu należy: 1. Stworzyć plik tekstowy o następującej treści: start %systemroot%\system32\defrag.exe x: (gdzie x jest literą dysku, którego dane będą konsolidowane) 2. Zmienić rozszerzenie txt na cmd np. defrag_c.cmd Pomimo rozszerzenia funkcjonalności WDD ciągle posiada wiele ograniczeń. Do jego najważniejszych wad należy: • Brak defragmentacji plików systemowych Oprócz konsolidacji MFT Windows Defragmenter nie scala pozostałych plików meta systemu plików NTFS. Także inne pliki systemowe Windows XP takie jak plik wymiany czy pliki rejestru pozostają podczas procesu defragmentacji WDD nietknięte. • Brak defragmentacji wolnej przestrzeni WDD został ograniczony nawet poprzez tak fundamentalny element. Konsolidacja wolnej przestrzeni HDD mogłaby znacząco ograniczyć szybkość postępowania fragmentacji, jednak w przypadku WDD nie jest nam to dane poznać. • Mała skuteczność działania WDD do poprawnego działania potrzebuje stosunkowo dużo wolnej przestrzeni - min. 15%. Jeśli nawet ten warunek jest spełniony nie mamy gwarancji, czy duże pliki jak i MFT zostaną scalone w jedną cześć. • Brak podstawowych opcji WDD nie został wyposażony w takie funkcje, jak możliwość wykluczenia z procesu defragmentacji plików określonego typu (np. Strona 4 Następnie należy wskazać w kreatorze Harmonogramu Zadań odpowiedni plik. • Obsługa Layout Optimalization Windows Disk Defragmenter jest elementem strategii zmniejszania skutków fragmentacji, a ta składa się na technologię FastBoot (zmniejszenie czasu inicjalizacji systemu do trzydziestu sekund). Systemy operacyjne – Zjawisko fragmentacji i defragmentacji dysku plików tymczasowych) czy opcję określenia priorytetu z poziomu interfejsu programu, w jakim WDD miałby pracować (co jest szczególnie istotne, gdy proces defragmentacji jest przeprowadzany obok wątków innych aplikacji). Program Chkdsk Sprawdzenia spójności systemu plików możemy dokonać, wybierając Właściwości | Narzędzia | Sprawdź dla zaznaczonego dysku, lub wpisując polecenie wiersza poleceń Chkdsk. Wybierając ten drugi sposób mamy dostęp do kilku opcji modyfikujących proces sprawdzania. /F — Uruchamia Chkdsk w trybie automatycznego naprawiania wykrytych uszkodzeń. W tym trybie program musi mieć wyłączny dostęp do dysku, więc próba sprawdzenia dysku, na którym zainstalowano system operacyjny spowoduje wyświetlenie pytania, czy uruchomić sprawdzanie po pierwszym restarcie komputera. /V — Wyświetla komunikaty o wykonywanych operacjach, a w przypadku sprawdzania dysku FAT lub FAT32 — długie nazwy plików. /R — Wykonujepełnesprawdzeniedysku w poszukiwaniu uszkodzonych jednostek alokacji. Wybór tej opcji wymusza tryb naprawiania wykrytych uszkodzeń. /L — Wyświetla rozmiar dziennika dysku. Podanie parametru :liczba , zmienia rozmiar tego dziennika. /X — Wymusza odłączenie woluminu. Użytkownicy, którzy mają otwarte pliki, tracą swoje dane. Wybór tej opcji wymusza tryb naprawiania wykrytych uszkodzeń. /I — Pomija sprawdzenie wewnętrznej spójności pomiędzy atrybutami nazw plików w rekordach plików i powiązanym wykazem nazw plików w indeksie katalogu. /C — Pomija sprawdzanie zapętleń w strukturze folderów. Strona 5 [ Pobierz całość w formacie PDF ] |