Mac defragmenteren, en waarom moderne Macs het niet nodig hebben
Nee, een Mac met een SSD en APFS hoeft niet gedefragmenteerd te worden, en je kunt er beter geen defragmentatieprogramma van derden op loslaten. Schijfhulpprogramma heeft geen knop om te defragmenteren, omdat macOS de indeling van bestanden zelf regelt, en op flashopslag maken de verspreide blokken die defragmentatie opruimt niets trager.
De meeste mensen die zoeken op "Mac defragmenteren" willen eigenlijk weten waarom hun Mac traag aanvoelt of waarom de schijf steeds volloopt. Beide hebben echte oorzaken en echte oplossingen, en bij geen van beide komt het herschikken van blokken kijken. Deze gids legt uit waarom defragmentatie niet meer uitmaakt, het enige geval waarin een oude harde schijf met draaiende platen nog baat heeft bij een frisse indeling, en wat je in plaats daarvan doet.
Waar defragmentatie voor was
De oude ondersteuningsnotitie van Apple About disk optimization with Mac OS X, inmiddels gearchiveerd, omschrijft optimaliseren als het herschikken van bestanden en metadata "om de toegangstijd tot gegevens te verbeteren en de tijd dat de kop van een harde schijf beweegt zo klein mogelijk te maken". Op een draaiende schijf staat een gefragmenteerd bestand in stukken op verschillende plekken, dus moet de kop daartussen heen en weer, en elke verplaatsing kost tijd.
Zelfs in het tijdperk van harde schijven zei die notitie al "Je hoeft waarschijnlijk helemaal niet te optimaliseren als je Mac OS X gebruikt." De redenen waren specifiek voor Mac OS uitgebreid (HFS Plus): het bestandssysteem vermijdt het hergebruik van kleine gaten die verwijderde bestanden achterlaten, uitgestelde toewijzing voegt veel kleine schrijfacties samen tot één grotere toewijzing, en Mac OS X 10.3 en nieuwer "kunnen ook automatisch defragmenteren" bij bestanden die langzaam groeien, een proces dat Apple Hot File Adaptive Clustering noemde. De notitie waarschuwde ook dat een stroomstoring tijdens het optimaliseren bestanden kon beschadigen, en dat het verplaatsen van de bestanden die macOS in zijn snelle opstartzone zet de prestaties juist slechter kon maken.
De Mac had dus nooit een defragmentatiegewoonte om af te leren. Hij deed het deel dat ertoe deed al zelf.
Waarom een SSD niet geeft om fragmentatie
De hele kostenpost van fragmentatie op een harde schijf is de kop die over een draaiende plaat beweegt. Een SSD heeft geen kop en geen plaat. Hij leest flashgeheugen elektronisch, een blok op de ene plek bereiken duurt ongeveer even lang als een blok ergens anders, en een bestand in tien stukken leest bijna net zo snel als een bestand in één stuk.
Elk bestand herschrijven zodat het aaneengesloten staat, levert op een SSD dus niets op, en het kost er schrijfcycli voor. Flashcellen slijten door schrijven, en een defragmentatieronde over de hele schijf is een van de zwaarste schrijfbelastingen die je bewust kunt veroorzaken.
Wat een SSD wel nodig heeft, is weten welke blokken vrij zijn, zodat hij ze vóór de volgende schrijfactie kan voorbereiden. Dat is de taak van TRIM: macOS vertelt de schijf welke blokken geen bestandsgegevens meer bevatten. De interne SSD's van Apple krijgen standaard TRIM-opdrachten. Je kunt het controleren in Systeeminformatie (in Apps › Hulpprogramma's): selecteer NVMExpress of SATA onder Hardware en zoek bij de interne schijf naar TRIM-ondersteuning: Ja. Je kunt in Terminal ook nagaan of een schijf een SSD is:
diskutil info / | grep "Solid State"
TRIM en trimforce voor SSD's van derden
Als je de schijf in een oudere Mac hebt vervangen door een SATA-SSD van derden, kan Systeeminformatie TRIM-ondersteuning: Nee tonen. Daarvoor bestaat de opdracht trimforce. De manpagina (voer man trimforce uit in Terminal) zegt dat die "het versturen van TRIM-opdrachten inschakelt naar schijven van derden die op een AHCI-controller zijn aangesloten", dat "TRIM-opdrachten standaard niet naar schijven van derden worden gestuurd", en dat je "uiterst voorzichtig moet zijn met het inschakelen van TRIM, omdat sommige schijven de opdrachten mogelijk niet goed verwerken". Je hebt er een beheerder en een herstart voor nodig.
sudo trimforce enable
Controleer voordat je het uitvoert of de fabrikant van de schijf TRIM-ondersteuning op macOS documenteert, en zorg voor een actuele reservekopie. Gaat er daarna iets mis, dan stoppen sudo trimforce disable en een herstart de opdrachten weer. Voer het niet uit op een Mac die al TRIM-ondersteuning: Ja meldt, er valt niets te winnen.
Wat APFS verandert: copy-on-write en snapshots
Sinds macOS High Sierra 10.13 gebruiken Macs APFS. De gids over bestandssysteemstructuren van Apple zegt dat APFS "is geoptimaliseerd voor de flash-/SSD-opslag in recente Mac-computers" en noemt snapshots en gedeelde ruimte onder de functies. De Apple File System Reference beschrijft "de copy-on-write-aanpak voor het wijzigen van objecten": gewijzigde gegevens worden naar nieuwe blokken geschreven in plaats van de oude ter plekke te overschrijven, en dat is een deel van hoe APFS een crash overleeft.
Copy-on-write is de reden dat een klassieke defragmentatietool slecht past. Een tool die een bestand "verplaatst" om het aaneengesloten te maken, schrijft in werkelijkheid een nieuwe kopie van de blokken. Als een lokale Time Machine-snapshot nog naar de oude blokken verwijst, blijven die bezet tot de snapshot verdwijnt, dus de ronde kan ruimte kosten in plaats van besparen. Apple meldt dat Time Machine ongeveer elk uur een lokale snapshot bewaart en snapshots verwijdert naarmate ze ouder worden of als er ruimte nodig is, wat normaal is en niets om tegen te vechten.
APFS heeft ook een eigen defragmentatiefunctie voor gebruikersgegevens, beheerd door macOS en niet door een app. De manpagina van diskutil noemt een werkwoord defragment waarmee je "automatische achtergronddefragmentatie van gebruikersbestandsgegevens op APFS-container- of volumeniveau beheert". Je kunt de huidige status lezen zonder iets te veranderen:
diskutil apfs defragment / status
Op de interne SSD van een MacBook met Apple silicon melden het volume en de container allebei dat defragmentatie is uitgeschakeld. Dat is de verwachte toestand voor flashopslag, geen ontbrekende instelling die je moet aanzetten. De vorm enable verandert de configuratie van de schijf, dus laat die met rust tenzij je op een harde schijf een specifieke reden hebt.
Wat mensen echt merken als ze zoeken op "defragmenteren"
Het symptoom achter de zoekopdracht is meestal een van deze twee.
De Mac voelt traag. Op een moderne Mac heeft traagheid bijna altijd een zichtbare oorzaak: één proces dat een hele CPU-kern bezet, geheugendruk die geel of rood blijft, thermische throttling, of Spotlight dat na een update aan het indexeren is. Waarom is mijn Mac zo traag laat zien hoe je in Activiteitenweergave vindt welke het is, en hoe je een Mac sneller maakt behandelt de aanpassingen die meetbaar verschil maken. De indeling van blokken staat op geen van beide lijsten.
De schijf is bijna vol. Dit is degene die wel invloed heeft op de snelheid. macOS heeft vrije ruimte nodig voor swap, updates, caches en snapshots, en een opstartschijf met nog maar een paar gigabyte over voelt stroperig aan en toont waarschuwingen. Ruimte vrijmaken helpt veel meer dan welke herschikking van de rest ook. Opstartschijf van de Mac vol legt uit hoe je meet waar de ruimte heen is gegaan voordat je iets verwijdert.
Vermoed je de schijf zelf en niet de inhoud, bijvoorbeeld na crashes, fouten bij het bewaren of een schijf die niet wil koppelen, dan controleert Schijf-EHBO in Schijfhulpprogramma de structuur van het bestandssysteem en herstelt wat het kan. Dat komt het dichtst bij het "schijfonderhoud" dat macOS van je vraagt. De stappen, inclusief het uitvoeren vanuit macOS-herstel voor de opstartschijf, staan in Schijf-EHBO in Schijfhulpprogramma gebruiken.
Oude iMacs en externe harde schijven
Een harde schijf met draaiende platen, in een oudere iMac of Mac mini of in een externe USB-behuizing, is het enige geval waarin je fragmentatie nog kunt merken. De gearchiveerde notitie van Apple beschrijft de situatie: "Als je schijven bijna vol zijn en je vaak grote bestanden wijzigt of aanmaakt (zoals bij videobewerking)... is er een kans dat de schijven gefragmenteerd zijn."
De eerste suggestie was simpelweg "Probeer eerst te herstarten." De tweede optie is degene die vandaag nog steeds overeind blijft: "maak een reservekopie van je belangrijke bestanden, wis de harde schijf" en zet daarna het systeem en je bestanden terug. Een volledige terugzetting schrijft elk bestand in één keer naar een lege schijf, zodat het in grote aaneengesloten stukken terechtkomt, en je eindigt met een gecontroleerde reservekopie.
- Maak een reservekopie van de schijf met Time Machine of een andere reservekopie die je hebt getest door er een bestand uit terug te zetten.
- Wis de schijf in Schijfhulpprogramma volgens de gids van Apple over wissen en opnieuw formatteren. Voor een opstartschijf gebeurt dit vanuit macOS-herstel.
- Installeer macOS opnieuw als het de opstartschijf was, en zet daarna je bestanden terug uit de reservekopie.
Zorg voordat je al die moeite doet dat de schijf daarna vrije ruimte heeft. Een harde schijf die voor 95% vol zit, raakt snel weer gefragmenteerd, en een schijf die klikgeluiden maakt of fouten toont in Schijf-EHBO moet vervangen worden, niet herschikt. Voor een oude Mac die nog op een harde schijf draait, verandert een overstap naar een SSD veel meer dan welk indelingswerk ook.
Waarom je sceptisch moet zijn over "defragmentatie"-apps voor de Mac
Een hulpprogramma dat aanbiedt een Mac met SSD te defragmenteren, verkoopt een oplossing voor een kostenpost die op die hardware niet bestaat. De voortgangsbalk en de kaart van voor en na zien er overtuigend uit, maar het resultaat is extra schrijfwerk op de flash, ruimte die mogelijk door snapshots vastgehouden wordt, en in het ergste geval het stroomstoringsrisico dat Apple beschreef.
Wees op je hoede voor tools die brede schijftoegang vragen om een volume te "optimaliseren", die niet zeggen welk bestandssysteem ze ondersteunen, of die defragmentatie laten klinken als routineonderhoud. Als de eigen documentatie van een tool niet uitlegt hoe die met APFS-snapshots en copy-on-write omgaat, ga er dan van uit dat hij voor iets anders is gemaakt. Schijf-EHBO in Schijfhulpprogramma, een reservekopie en genoeg vrije ruimte dekken wat de schijf van een Mac echt nodig heeft.
Waar Mole past
Mole defragmenteert geen schijven, en gaat dat ook niet doen. Op een SSD valt er niets te winnen, en op APFS is de indeling aan macOS. Mole blijft bij de delen van het probleem die je kunt zien: Opschonen bekijkt caches, logbestanden, restanten van verwijderde apps, lokale Time Machine-snapshots en de Prullenmand voordat er iets wordt verwijderd, en Analyse tekent een treemap van de schijf zodat je in de grootste mappen kunt duiken.
Weet je niet zeker of de schijf überhaupt het probleem is, dan toont het Status-dashboard CPU, geheugen, schijf en de processen die de meeste bronnen gebruiken, elke seconde bijgewerkt. Diagnose van Mole meldt ook een opstartschijf die voor meer dan 90% gebruikt is, omdat macOS vrije ruimte nodig heeft voor swapbestanden, snapshots en updates. De helppagina van Mole vertelt wat elke controle betekent.
Veelgestelde vragen
Moet een MacBook met SSD gedefragmenteerd worden?
Nee. Fragmentatie kost alleen tijd als een schijfkop tussen de stukken van een bestand moet bewegen, en een SSD heeft geen bewegende delen. Defragmenteren voegt schrijfwerk toe zonder het lezen sneller te maken.
Heeft de Mac een ingebouwde defragmentatietool?
Schijfhulpprogramma heeft geen knop om te defragmenteren. APFS heeft een automatische achtergronddefragmentatie die je via diskutil apfs defragment beheert, en op interne SSD's staat die normaal uit, wat ook de bedoeling is.
Moet ik een externe harde schijf op mijn Mac defragmenteren?
Meestal niet. Is een bijna volle harde schijf met grote, vaak gewijzigde bestanden traag geworden, maak dan een reservekopie, wis de schijf en zet de bestanden terug, waarmee je meteen een geteste reservekopie overhoudt.
Kan Mole mijn Mac defragmenteren?
Nee. Mole defragmenteert geen schijven. Het helpt je ruimte vrij te maken met Opschonen en Analyse en te zien wat er draait met Status.