Defragmentering - Defragmentation

Image
Visualisering af fragmentering og derefter af defragmentering

Ved vedligeholdelse af filsystemer er defragmentering en proces, der reducerer graden af fragmentering . Det gør det ved fysisk at organisere indholdet af den masselagringsenhed , der bruges til at gemme filer i det mindste antal sammenhængende regioner (fragmenter, omfang ). Det forsøger også at skabe større regioner med ledig plads ved hjælp af komprimering for at hindre fragmenteringens tilbagevenden. Nogle defragmenteringsværktøjer forsøger at holde mindre filer inde i en enkelt mappe sammen, da de ofte åbnes i rækkefølge.

Defragmentering er fordelagtig og relevant for filsystemer på elektromekaniske diskdrev ( harddiske , diskettedrev og optiske diskmedier ). Bevægelsen af harddiskens læse- / skrivehoveder over forskellige områder af disken, når der er adgang til fragmenterede filer, er langsommere sammenlignet med at få adgang til hele indholdet af en ikke-fragmenteret fil sekventielt uden at flytte læse / skrivehovederne for at søge andre fragmenter.

Årsager til fragmentering

Fragmentering opstår, når filsystemet ikke kan eller ikke tildeler tilstrækkelig sammenhængende plads til at gemme en komplet fil som en enhed, men i stedet placerer dele af den i mellemrum mellem eksisterende filer (normalt findes disse huller, fordi de tidligere havde en fil, som filsystemet har efterfølgende slettet, eller fordi filsystemet i første omgang tildelte overskydende plads til filen). Filer, der ofte føjes til (som med logfiler) samt hyppig tilføjelse og sletning af filer (som med e-mails og webbrowser-cache), større filer (som med videoer) og større antal filer bidrager til fragmentering og deraf følgende ydeevne tab. Defragmentering forsøger at afhjælpe disse problemer.

Eksempel

Image
Eksempler på fem fragmenteringstilstande

En ellers tom disk har fem filer, A til E, der hver bruger 10 blokke plads (i dette afsnit er en blok en tildelingsenhed til filsystemet ; blokstørrelsen indstilles, når disken er formateret og kan have en hvilken som helst størrelse, der understøttes af filsystemet). På en tom disk tildeles alle disse filer den ene efter den anden (se eksempel 1 på billedet). Hvis fil B skulle slettes, ville der være to muligheder: Marker pladsen til fil B som tom, der skal bruges igen senere, eller flyt alle filerne efter B, så det tomme rum er i slutningen. Da flytning af filerne kan være tidskrævende, hvis der var mange filer, der skulle flyttes, er det tomme rum normalt blot der, markeret i en tabel som tilgængelig for nye filer (se eksempel 2 i billedet). Når en ny fil, F, tildeles, der kræver 6 blokke plads, kan den placeres i de første 6 blokke af det rum, der tidligere indeholdt fil B, og de 4 blokke, der følger den, forbliver tilgængelige (se eksempel 3 i billedet) . Hvis en anden ny fil, G, tilføjes og kun har brug for 4 blokke, kan den derefter optage pladsen efter F og før C (eksempel 4 i billedet).

Men hvis fil F derefter skal udvides, er der tre muligheder, da pladsen umiddelbart efter den ikke længere er tilgængelig:

  1. Flyt filen F, hvor den kan oprettes som en sammenhængende fil af den nye større størrelse. Dette ville ikke være muligt, hvis filen er større end den største sammenhængende plads, der er tilgængelig. Filen kunne også være så stor, at operationen ville tage en uønsket lang periode.
  2. Flyt alle filerne efter F, indtil en åbner nok plads til at gøre det sammenhængende igen. Dette præsenterer det samme problem som i det foregående eksempel: hvis der er et lille antal filer eller ikke meget data at flytte, er det ikke et stort problem, men hvis der er tusinder eller endda titusinder af filer, er der ikke ' ikke nok tid til at flytte alle disse filer.
  3. Tilføj en ny blok et andet sted, og angiv, at F har en anden udstrækning (se eksempel 5 på billedet). Gentag dette hundreder af gange, og filsystemet vil have et antal små gratis segmenter spredt mange steder, og nogle filer vil have flere strækninger. Når en fil har mange udstrækninger som denne, kan adgangstiden til den fil blive for lang på grund af al den tilfældige søgning, som disken skal gøre, når du læser den.

Derudover er begrebet "fragmentering" ikke kun begrænset til individuelle filer, der har flere udvidelser på disken. For eksempel kan en gruppe af filer, der normalt læses i en bestemt sekvens (som filer, som et program åbner , når det indlæses, som kan omfatte visse DLL'er , forskellige ressourcefiler, de audio / visuelle mediefiler i et spil) betragtes som fragmenteret, hvis de er ikke i rækkefølge på rækkefølgen på disken, selvom disse individuelle filer ikke er fragmenterede; læse / skrivehovederne skal søge disse (ikke-fragmenterede) filer tilfældigt for at få adgang til dem i rækkefølge. Nogle grupper af filer kan være oprindeligt installeret i den rigtige rækkefølge, men glider fra hinanden med tiden, da visse filer i gruppen slettes. Opdateringer er en almindelig årsag til dette, for for at opdatere en fil sletter de fleste opdaterere normalt den gamle fil først og skriver derefter en ny, opdateret en i stedet for. De fleste filsystemer skriver dog ikke den nye fil det samme fysiske sted på disken. Dette giver ikke-relaterede filer mulighed for at udfylde de tomme mellemrum, der er efterladt.

Afbødning

Defragmentering er operationen af ​​flytning af filudvidelser (fysiske tildelingsblokke), så de til sidst fusioneres, helst til en. Dette kræver normalt mindst to kopieringsoperationer: en til at flytte blokkene ind i noget ledig plads på skiven, så mere bevægelse kan ske, og en anden til endelig at flytte blokkene til deres tiltænkte sted. I et sådant paradigme fjernes der aldrig nogen data fra disken, så operationen kan stoppes sikkert, selv i tilfælde af strømsvigt. Artikelbilledet viser et eksempel.

For at defragmentere en disk kan defragmenteringssoftware (også kendt som en "defragmentering") kun flytte filer rundt i den ledige plads, der er tilgængelig. Dette er en intensiv operation og kan ikke udføres på et filsystem med lille eller ingen ledig plads. Under defragmentering nedbrydes systemets ydeevne, og det er bedst at lade computeren være alene under processen, så defragmenteringen ikke bliver forvirret af uventede ændringer i filsystemet. Afhængig af den anvendte algoritme kan det måske eller ikke være en fordel at udføre flere passeringer. Den reorganisering, der er involveret i defragmentering, ændrer ikke filernes logiske placering (defineret som deres placering i bibliotekstrukturen ).

Udover defragmentering af programfiler kan defragmenteringsværktøjet også reducere den tid det tager at indlæse programmer og åbne filer. For eksempel inkluderede Windows 9x defragmentering Intel Application Launch Accelerator, som optimerede programmer på disken ved at placere de defragmenterede programfiler og deres afhængighed ved siden af ​​hinanden i den rækkefølge, som programmet indlæser dem, for at indlæse disse programmer hurtigere. I Windows læser en god defragmenter Prefetch- filerne for at identificere så mange af disse filgrupper som muligt og placere filerne i dem i adgangssekvensen.

I begyndelsen af ​​harddisken har de ydre spor en højere dataoverførselshastighed end de indre spor. Placering af ofte tilgængelige filer på de ydre spor øger ydeevnen. Tredjeparts defragmenteringsmaskiner, såsom MyDefrag, flytter ofte tilgængelige filer på de ydre spor og defragmenterer disse filer.

Forbedringer i moderne harddiske såsom RAM- cache, hurtigere tallerkenrotationshastighed, kommandokø ( SCSI / ATA TCQ eller SATA NCQ ) og større datatæthed reducerer den negative indvirkning af fragmentering på systemets ydeevne til en vis grad, selvom stigninger i almindeligt anvendte data mængder opvejer disse fordele. Imidlertid tjener moderne systemer enormt på de enorme diskkapaciteter, der i øjeblikket er tilgængelige, da delvist fyldte diske fragmenterer meget mindre end fulde diske, og på en harddisk med høj kapacitet optager den samme partition et mindre udvalg af cylindre, hvilket resulterer i hurtigere søger. Den gennemsnitlige adgangstid kan dog aldrig være lavere end en halv rotation af pladerne, og pladens rotation (målt i o / min) er hastighedskarakteristikken for harddiske, der har oplevet den langsomste vækst gennem årtierne (sammenlignet med dataoverførselshastighed og søgetid ), så minimering af antallet af søgninger forbliver fordelagtig i de fleste opbevaringstunge applikationer. Defragmentering er netop det: at sikre, at der højst er én søgning pr. Fil, der kun tæller søgerne til ikke tilstødende spor.

Partitionering

En fælles strategi for at optimere defragmentering og reducere virkningen af ​​fragmentering er at partitionere harddisken (e) på en måde, der adskiller partitioner i filsystemet, der oplever mange flere læsninger end skrivninger fra de mere flygtige zoner, hvor filer oprettes og slettes ofte. De mapper, der indeholder brugernes profiler, ændres konstant (især med Temp-biblioteket og webbrowserens cache, der skaber tusindvis af filer, der slettes om få dage). Hvis filer fra brugerprofiler holdes på en dedikeret partition (som det almindeligvis gøres på UNIX- anbefalede filsystemer , hvor den typisk er gemt i / var-partitionen), kører defragmenteringen bedre, da den ikke har brug for at håndtere alle de statiske filer fra andre biblioteker. (Alternativt kan en defragmentering få besked om blot at udelukke bestemte filstier.) For partitioner med relativt lidt skriveaktivitet forbedres defragmenteringstiden kraftigt efter den første defragmentering, da defragmenteringen kun skal defragmentere et lille antal nye filer i fremtiden .

Offline defragmentering

Tilstedeværelsen af ​​faste systemfiler, især en swap-fil , kan hindre defragmentering. Disse filer kan sikkert flyttes, når operativsystemet ikke er i brug. For eksempel flytter ntfsresize disse filer for at ændre størrelsen på en NTFS- partition. Værktøjet PageDefrag kan defragmentere Windows-systemfiler såsom swap-filen og de filer, der gemmer Windows-registreringsdatabasen ved at køre ved opstartstid, før GUI'en indlæses. Siden Windows Vista understøttes funktionen ikke fuldt ud og er ikke opdateret.

I NTFS, når filer føjes til disken, skal Master File Table (MFT) vokse for at gemme informationen til de nye filer. Hver gang MFT ikke kan udvides på grund af en fil, der er i vejen, får MFT et fragment. I tidlige versioner af Windows kunne den ikke defragmenteres sikkert, mens partitionen var monteret, og derfor skrev Microsoft en hardblock i defragmenterings- API'en . Men siden Windows XP er et stigende antal defragmenteringsmaskiner nu i stand til at defragmentere MFT, fordi Windows-defragmenterings-API er blevet forbedret og understøtter nu denne flytning. Selv med forbedringerne forbliver de første fire klynger af MFT unmovable af Windows-defragmenterings-API'en, hvilket resulterer i, at nogle defragmenteringsanordninger gemmer MFT i to fragmenter: De første fire klynger, uanset hvor de blev placeret, da disken blev formateret, og derefter resten af ​​MFT i begyndelsen af ​​disken (eller hvor som helst defragmenteringsstrategien anser for at være det bedste sted).

Solid state-diske

Når man læser data fra et konventionelt elektromekanisk harddiskdrev, skal diskcontrolleren først placere hovedet relativt langsomt til sporet, hvor et givet fragment findes, og derefter vente, mens diskfadet roterer, indtil fragmentet når hovedet. Et solid-state-drev (SSD) er baseret på flashhukommelse uden bevægelige dele, så tilfældig adgang til et filfragment på flashhukommelsen lider ikke under denne forsinkelse, hvilket gør defragmentering for at optimere adgangshastigheden unødvendig. Da flashhukommelse kun kan skrives til et begrænset antal gange, før den mislykkes, er defragmentering faktisk skadelig (undtagen i formindskelse af katastrofalt svigt ). Dog defragmenterer Windows stadig en SSD automatisk (omend mindre kraftigt) for at forhindre filsystemet i at nå sin maksimale fragmenteringstolerance. Når den maksimale fragmenteringsgrænse er nået, mislykkes efterfølgende forsøg på at skrive til disk.

Tilgang og defragmentering efter filsystemtype

Image
Et Windows-defragmenteringsværktøj
  • FEDT : MS-DOS 6.x og Windows 9x-systemer leveres med et defragmenteringsværktøj kaldet Defrag. Den DOS -versionen er en begrænset version af Norton SpeedDisk. Den version, der fulgte med Windows 9x, blev licenseret fra Symantec Corporation , og den version, der fulgte med Windows 2000 og XP, er licenseret fra Condusiv Technologies .
  • NTFS blev introduceret med Windows NT 3.1 , men NTFS-filsystemdriveren indeholdt ikke nogen defragmenteringsfunktioner. I Windows NT 4.0 blev defragmentering af API'er introduceret, som tredjepartsværktøjer kunne bruge til at udføre defragmenteringsopgaver; dog var der ikke inkluderet nogen defragmenteringssoftware. I Windows 2000 , Windows XP og Windows Server 2003 , Microsoft omfattede en defragmentering værktøj baseret på Diskeeper , der gjorde brug af defragmentering API'er og var en snap-in til Computeradministration . I Windows Vista , Windows 7 og Windows 8 er værktøjet forbedret kraftigt og fik en ny grænseflade uden visuel diskmap og er ikke længere en del af Computer Management. Der er også et antal gratis og kommercielle tredjepartsdefragmenteringsprodukter til rådighed for Microsoft Windows .
  • BSD UFS og især FreeBSD bruger en intern reallokator, der søger at reducere fragmentering lige i det øjeblik, hvor informationen skrives til disken. Dette styrer effektivt systemnedbrydning efter udvidet brug.
  • Btrfs har online og automatisk defragmentering til rådighed.
  • Linux ext2 , ext3 og ext4 : I lighed med UFS anvender disse filsystemer allokeringsteknikker designet til altid at holde fragmentering under kontrol. Som et resultat er defragmentering ikke nødvendig i langt de fleste tilfælde. ext2 bruger en kaldet offline defragmentering e2defrag, som ikke fungerer med sin efterfølger ext3. Andre programmer eller filsystemuafhængige, såsom defragfs, kan dog bruges til at defragmentere et ext3-filsystem. ext4 er noget bagudkompatibelt med ext3 og har derfor generelt den samme støtte fra defragmenteringsprogrammer. I øjeblikket kan e4defrag bruges til at defragmentere et ext4-filsystem, inklusive online defragmentering.
  • VxFS har det fsadmværktøj, der inkluderer defragmenter.
  • JFS har defragfsværktøjet på IBM-operativsystemer.
  • HFS Plus, der blev introduceret i 1998 med Mac OS 8.1, har en række optimeringer til fordelingsalgoritmerne i et forsøg på at defragmentere filer, mens de åbnes uden en separat defragmentering. Der er flere begrænsninger for filer til at være kandidater til 'on-the-fly' defragmentering (inklusive en maksimal størrelse 20 MB). Der er et værktøj, iDefrag, fra Coriolis Systems tilgængeligt siden OS X 10.3. På traditionel Mac OS kan defragmentering udføres af Norton SpeedDisk og TechTool Pro.
  • WAFL i NetApps ONTAP 7.2-operativsystem har en kommando kaldet, reallocateder er designet til at defragmentere store filer.
  • XFS leverer et online defragmenteringsværktøj kaldet xfs_fsr.
  • SFS behandler defragmenteringsfunktionen på næsten fuldstændig statsløs måde (bortset fra det sted, den arbejder på), så defragmentering kan stoppes og startes med det samme.
  • ADFS , det filsystem, der bruges af RISC OS og tidligere Acorn Computers , holder filfragmentering under kontrol uden at kræve manuel defragmentering.

Se også

Referencer

Kilder

  • Norton, Peter (1994) Peter Nortons komplette guide til DOS 6.22 , side 521 - Sams ( ISBN  067230614X )
  • Woody Leonhard, Justin Leonhard (2005) Windows XP Timesaving Techniques For Dummies, Anden udgave side 456 - For Dummies ( ISBN  0-764578-839 ).
  • Jensen, Craig (1994). Fragmentering: Betingelsen, årsagen, helbredelsen . Executive Software International ( ISBN  0-9640049-0-9 ).
  • Dave Kleiman , Laura Hunter, Mahesh Satyanarayana, Kimon Andreou, Nancy G Altholz, Lawrence Abrams, Darren Windham, Tony Bradley og Brian Barber (2006) Winternals: Defragmentering, Recovery og Administration Field Guide - Syngress ( ISBN  1-597490-792 )
  • Robb, Drew (2003) Serverdiskhåndtering i et Windows-miljø Kapitel 7 - AUERBACH ( ISBN  0849324327 )

eksterne links