Defragmentimine

Defragmentimine on protsess, mis vähendab failide killustatust kõvakettal. Seda tehakse füüsiliselt andmete ümbertõstmisel andmekandjal. Samuti üritatakse defragmentimisel tekitada üht või mitut suuremat vaba ala, kuhu tulevasi andmeid kirjutada. Osad defragmentimise tööriistad üritavad hoida väikseid faile ühes kaustas, kuna tihtipeale loetakse neid faile järjest.
Defragmentimine on kasulik elektromehaaniliste kõvakettaste jaoks. Kui kõvaketta lugemispea peab liikuma ühest kõvaketta punktist teise, et lugeda ühte faili on kogu protsess aeglasem kui andmed järjestikku kirjutatud failide lugemisel.
Killustatuse põhjused.
Killustatus tekib siis, kui faili süsteem ei saa või ei eralda piisavalt ruumi, et salvestada fail ühes täielikkus üksuses. Selle asemel pannakse fail kõvakettal asuvatesse lünkadesse, teiste failide vahele. Kui see juhtub suurte failidega või mitmete failidega siis see võib kaasa tuua ka jõudluse kao. Defragmentimine üritab eemaldada sellised probleemid.
Näide.
Vaatleme järgnevat näidet paremal asuva pildi abil. 
Tühi kõvaketas on tekitanud kümne ühiku suurused plokid. Seejärel on kettale salvestatud järjestikku andmed A-st kuni E-ni, kus iga andmefail kasutab tervet kümmet ühikut kõvaketta plokist (näide 1 pildil). Juhul kui B andmed kustutataks, on võimalik kaks stsenaariumit. Kas liigutatakse kõik failid, mis jäid kettale, järjestikku ploki A järgi või märgitakse plokk B vaba ruumina, kuhu edaspidi uued failid kirjutada. Tihtipeale on järelejäänud faile liiga palju ja nende kõigi liigutamine oleks liiga ajakulukas. Seepärast märgitakse enamasti kustutatud failide plokid vaba ruumina (näide 2 pildil). Kui nüüd tahetakse kirjutada kettale uus fail F, mis on 6 ühikut pikk, siis see fail kirjutatakse kustutatud faili B kümne ühiku plokki, kuhu jääb veel 4 ühikut vaba ruumi (Näide 3 pildil). Kui vajatakse kirjutusruumi nelja ühiku suurusele G failile, siis see kirjutatakse F faili järele (näide 4 pildil). Kui nüüd tekkis vajadus suurendada faili F mahtu siis samasse plokki kirjutamiseks ei ole ruumi. Sellest tulenevalt tekivad järgmised faili kirjutamis võimalused:
Killustatus ei tähenda ainuüksi seda, et üksik fail asub mitmes erinevas kohas kõvakettal. Tihti loetakse grupp andmeid kindlas järjekorras (näiteks kindlad failid, mida programm vajab laadimiseks, selleks võivad olla meediafailid mängu jaoks) mida võib lugeda killustatuks kui nad ei asu kõvakettal järjestikus. Isegi kui need üksikud failid ise ei ole killustatud siis kõvaketta lugemispea peab ikkagi otsima need failid kõvakettalt üles. Mõningad failirühmad võivad olla isegi esialgu järjest salvestatud, kuid killustuvad kui faile kustutatakse nende failigrupist. Failide uuendused on väga tavalised killustatuse põhjused. Kuna faili uuendamiseks tavaliselt kustutatakse vanad failid kõigepealt ja siis salvestatakse uued andmed vanade asemele. Kuigi enamik failisüsteeme ei kirjuta uusi faile samasse füüsilisse asukohta, kuhu taheti. Seetõttu täituvadki vabad lüngad kõvakettal mitmesuguste teiste failidega. Windowsis kasutusel olev defragmenter eeldab, et samas kaustas olevad failid võivad olla teineteisega seoses ja neid vajatakse lugemisel koos.
Kõvaketta defragmentimiseks kasutatakse defragmentimise tarkvara. Kuid see tarkvara võib faile ringi paigutada ainult kõvaketta vaba osa ulatuses. See on väga intensiivne operatsioon ja seda ei ole võimalik läbi viia kettal kus on vähe või ültsemitte vaba ruumi. Defragmentsiooni ajal on süsteemi jõudlus piiratud ja kõige parem oleks kui arvutis ei tehtaks midagi niikaua kui protsess käib. Seda selleks, et defragmentimine ei satuks segadusse, kui failisuurused üllatuslikult muutuvad. Olenevalt programmi algoritmist võib suuremat kasu saada mitmekordsest järjestikusest defragmentimisest.
Killustatuse vastumeetmed.
Andmete killustatuse vähendamiseks kasutatakse kõvaketta partitsioneerimist nii, et pidevalt loetavad ja kirjutatavad failid salvestatakse tihti kustutavatest failidest kaugemale. Näiteks Temp-kaust ja veebibrauseri vahemälu, kuhu tekivad tuhanded failid, mis kustutatakse mõne päeva pärast. Kui kasutaja profiilid hoitakse eraldi partitsioonil (nagu seda on UNIX-i operatsioonisüsteemis, kus profiilid on salvestatud /var partitsiooni), siis defragmentimine toimub kiiremini kuna siis ei pea töötlema kettal alalisel asetsevaid faile. Kui partitsioonis toimub vähe salvestamist, siis defragmentimisprogramm ei pea järgmine kord nii palju faile töötlema. 
Kasutaja ja jõudluse probleemid.
Tänapäevastes mitme kasutajaga operatsioonisüsteemides ei ole tavakasutajal kõvaketta defragmentimise õigust. Defragmentimiseks on vaja andministraatori õigusi. Samuti on kasutusel failisüsteemid nagu NTFS mis on kujundatud sedasi, et vähendada killustatuse teket. Täiustused moodsates kõvaketastes nagu näiteks RAM-vahemälu, kiirem plaadi pöörlemine püüavad vähendada killustatuse mõju, kuid suurenenud andmehulkade kasutus on need tasakaalustanud. Mahtude kasv üldkasutatavates kõvaketastes on aidanud kaasa killustatuse vähendamisele, kuna pooltühjad kõvakettad killustuvad vähem kui täis salvestatud kettad. Samuti omab suure mahuga kõvakettal sama suur partitsioon vähem silindreid ja seega aitab kaasa kiiremale andme ligipääsule. 
Flash mälud vs tavalised kõvakettad.
Kui andmeid loetakse tavaliselt kõvakettalt siis kõigepealt peab kontroller aeglaselt paigutama lugemispea õigele rajale ja sis ootama, kuna ketta õige koht jõuab lugemispeani. Pooljuhtkettad loevad andmeid mikrokiipidest ja seetõttu on nad kiiremad kuna neis puuduvad liikuvad osad. Seega on defragmentimine pooljuhtketaste puhul ebasoodne. Pealegi on pooljuhtketaste limiteerivaks teguriks see, et neile saab kirjutada kindel arv kordi. Seega on defragmentimine isegi kahjulik pooljuhtketastele. 
Windowsi süsteemitaaste punktid võivad kustuda defragmentimise käigus.
Enamus defragmentimise programmid ja optimeerijad võivad Microsoft Shadow Copy vanimad taastepunktid kustutada. Kuna Shadow Copy peab meeles suurte failide liigutamist defragmentija poolt, siis võib Shadow Copyle antud maht ületada lubatud norme ja tänu sellele kustuda vanu taastepunkte niikaua, kuni etteantud maht saavutatud.
Defragmentimine ja optimeerimine.
Lisaks defragmentimisele programmi faile, vähendab defragmentimise tööriist ka teiste programmide laadimiskiiruseid. Näiteks Windows 9x defragmentijas on kaasatud Intel Application Launch Accelerator, mis optimeerib programmid kettal, pannes defragmenditud programmid ja nendest sõltuvad programmid laadimise järjestuses. Kõvaketta välimised rajad suudavad andmeid edastada kiiremini. Sellepärast paigutatakse tihti kasutatavad failid välistele radadele, et parandada jõudlust. Kolmanda poole defragmentimise tööriist nagu näiteks MyDefrag, viib tihti kasutatavad failid välistele radadele ja siis alles defragmendib need.