Startpagina » hoe » Waarom versnelt het leegmaken van de schijfruimte computers?

    Waarom versnelt het leegmaken van de schijfruimte computers?

    Als u meer leert over computers en hoe ze werken, komt u af en toe iets tegen dat niet lijkt te kloppen. Met dat in gedachten, doet het leegmaken van schijfruimte de snelheid van computers eigenlijk omhoog? De SuperUser Q & A-post van vandaag heeft het antwoord op de vraag van een verbaasde lezer.

    De Question & Answer-sessie van vandaag komt tot ons dankzij SuperUser - een onderdeel van Stack Exchange, een gemeenschapsgedreven groep van Q & A-websites.

    Screenshot met dank aan nchenga (Flickr).

    De vraag

    SuperUser-lezer Remi.b wil weten waarom het legen van schijfruimte een computer sneller lijkt te maken:

    Ik heb veel video's bekeken en begrijp nu hoe computers een beetje beter werken. Ik begrijp wat RAM is, over vluchtig en niet-vluchtig geheugen en het proces van swappen. Ik begrijp ook waarom het verhogen van RAM een computer versnelt.

    Wat ik niet begrijp is waarom het opruimen van schijfruimte een computer sneller lijkt te maken. Is het echt een computer sneller? Zo ja, waarom doet het dat?

    Heeft het iets te maken met het zoeken naar geheugenruimte om dingen te redden of met het verplaatsen van dingen om een ​​voldoende lange ononderbroken ruimte te maken om iets te redden? Hoeveel lege ruimte moet ik vrijlaten op een harde schijf??

    Waarom lijkt het legen van schijfruimte een computer sneller te maken??

    Het antwoord

    SuperUser-bijdrager Jason C heeft het antwoord voor ons:

    "Waarom versnellen het leegmaken van schijfruimte computers?"

    Dat doet het niet, althans niet op zichzelf. Dit is een heel gewone mythe. De reden dat het een veel voorkomende mythe is, is omdat het vullen van je harde schijf vaak gebeurt op hetzelfde moment als andere dingen die traditioneel je computer kunnen vertragen (EEN). SSD-prestaties worden doorgaans slechter naarmate ze worden gevuld, maar dit is een relatief nieuw probleem, uniek voor SSD's, en is niet echt merkbaar voor incidentele gebruikers. Over het algemeen is weinig vrije schijfruimte slechts een rode haring.

    Bijvoorbeeld dingen als:

    1. Bestandsversnippering. Bestandsfragmentatie is een probleem (B), maar het gebrek aan vrije ruimte, hoewel zeker een van de vele bijdragende factoren, is niet de enige oorzaak. Enkele belangrijke punten hier:

    • De kans dat een bestand wordt gefragmenteerd is niet gerelateerd aan de hoeveelheid vrije ruimte op de schijf. Ze zijn gerelateerd aan de grootte van het grootste aaneengesloten blok vrije ruimte op de schijf (dat wil zeggen "gaten" van vrije ruimte), die de hoeveelheid vrije ruimte gebeurt er een bovengrens. Ze zijn ook gerelateerd aan hoe het bestandssysteem bestandsallocatie verwerkt (meer hieronder). Overwegen: Een schijf die voor 95 procent vol is met alle vrije ruimte in een enkel aangrenzend blok, heeft nul procent kans op het fragmenteren van een nieuw bestand (C) (en de kans dat een bijgevoegd bestand wordt gefragmenteerd, is onafhankelijk van de vrije ruimte). Een schijf die voor vijf procent vol is maar met gegevens die gelijk over de schijf worden verdeeld, heeft een zeer hoge kans op fragmentatie.
    • Houd rekening met bestandsfragmentatie heeft alleen invloed op de prestaties wanneer de gefragmenteerde bestanden worden geopend. Overwegen: Je hebt een mooie, gedefragmenteerde rit die nog steeds veel gratis "gaten" bevat. Een veelvoorkomend scenario. Alles loopt soepel. Uiteindelijk kom je op een punt dat er geen grote blokken vrije ruimte meer overblijven. Je downloadt een enorme film, het bestand wordt uiteindelijk erg gefragmenteerd. Dit zal uw computer niet vertragen. Al uw applicatiebestanden en dergelijke die eerder goed waren, zullen niet plotseling gefragmenteerd raken. Hierdoor kan het laden van de film langer duren (hoewel de standaard filmbits zo laag zijn in vergelijking met de schrijfsnelheden van de harde schijf dat deze waarschijnlijk niet opgemerkt worden), en dit kan van invloed zijn op I / O-gebonden prestaties terwijl de film wordt geladen, maar behalve dat verandert er niets.
    • Hoewel bestandsfragmentatie zeker een probleem is, worden de effecten vaak beperkt door buffering van besturingssystemen en hardwarenniveaus en caching. Vertraagde schrijft, read-ahead, strategieën zoals de prefetcher in Windows, etc., allemaal helpen de effecten van fragmentatie te verminderen. Over het algemeen niet werkelijk ervaren een aanzienlijke impact totdat de fragmentatie ernstig wordt (ik zou zelfs durven zeggen dat zolang je wisselbestand niet gefragmenteerd is, je het waarschijnlijk nooit zult merken).

    2. Zoekindexering is een ander voorbeeld. Stel dat u automatische indexering hebt ingeschakeld en een besturingssysteem dat dit niet sierlijk verwerkt. Naarmate u meer en meer indexeerbare inhoud opslaat op uw computer (documenten en dergelijke), kan indexering langer en langer duren en mogelijk invloed hebben op de waargenomen snelheid van uw computer terwijl deze wordt uitgevoerd, zowel in I / O- en CPU-gebruik. . Dit is niet gerelateerd aan vrije ruimte, het is gerelateerd aan de hoeveelheid indexeerbare inhoud die je hebt. Het tekort aan vrije ruimte gaat echter hand in hand met het opslaan van meer inhoud, daarom wordt een valse verbinding getrokken.

    3. Antivirussoftware (vergelijkbaar met het zoekindexeringsvoorbeeld). Stel dat u antivirussoftware hebt ingesteld om achtergrondscans van uw schijf te maken. Omdat je steeds meer scanbare inhoud hebt, kost het zoeken meer I / O- en CPU-bronnen, wat je werk mogelijk verstoort. Nogmaals, dit is gerelateerd aan de hoeveelheid scanbare inhoud die je hebt. Meer inhoud komt vaak overeen met minder vrije ruimte, maar het gebrek aan vrije ruimte is niet de oorzaak.

    4. Geïnstalleerde software. Stel dat er veel software is geïnstalleerd die wordt geladen wanneer uw computer opstart, waardoor de opstarttijd wordt vertraagd. Deze vertraging treedt op omdat er veel software wordt geladen. Geïnstalleerde software neemt echter ruimte op de harde schijf in beslag. Daarom neemt de vrije schijfruimte van de vaste schijf af op hetzelfde moment dat dit gebeurt, en opnieuw kan er een valse verbinding worden gemaakt.

    5. Vele andere voorbeelden in deze zin die samen worden gebruikt, verschijnen om het gebrek aan vrije ruimte nauw te associëren met lagere prestaties.

    Het bovenstaande illustreert nog een andere reden dat dit zo'n algemene mythe is: hoewel het gebrek aan vrije ruimte geen directe oorzaak is van vertraging, het verwijderen van verschillende applicaties, het verwijderen van geïndexeerde of gescande inhoud, enz. Soms (maar niet altijd, buiten de scope van dit antwoord) verhoogt de prestaties opnieuw om redenen die niets te maken hebben met de resterende hoeveelheid vrije ruimte. Maar hierdoor wordt ook de ruimte op de harde schijf vrijgemaakt. Daarom kan opnieuw een schijnbare (maar valse) verbinding tussen "meer vrije ruimte" en een "snellere computer" worden gemaakt.

    Overwegen: Als je een machine langzaam laat draaien door veel geïnstalleerde software, enz., Klop je je harde schijf (precies) op een grotere harde schijf, en breid je partities uit om meer vrije ruimte te krijgen, de machine zal niet magisch versnellen. Dezelfde software laadt, dezelfde bestanden zijn nog steeds op dezelfde manier gefragmenteerd, dezelfde zoekindexatie-index draait nog steeds, niets verandert ondanks dat er meer vrije ruimte is.

    "Heeft het iets te maken met het zoeken naar geheugenruimte om dingen op te slaan?"

    Nee dat doet het niet. Er zijn twee belangrijke dingen die de moeite waard zijn om hier te vermelden:

    1. Je harde schijf zoekt niet rond om plekken te vinden om dingen te plaatsen. Je harde schijf is stom. Het is niets. Het is een groot blok van geadresseerde opslag die blindelings dingen zet waar je OS het zegt en leest wat er van wordt gevraagd. Moderne schijven beschikken over geavanceerde caching- en buffermechanismen die zijn ontworpen om te voorspellen waar het besturingssysteem naar zal vragen op basis van de ervaring die we in de loop van de tijd hebben opgedaan (sommige stations zijn zich zelfs bewust van het bestandssysteem dat erop staat), maar denk vooral aan uw Rijden als slechts een grote domme baksteen van opslag met af en toe bonusprestaties.

    2. Uw besturingssysteem zoekt ook niet naar plaatsen om dingen te plaatsen. Er is geen zoeken. Er is veel moeite gedaan om dit probleem op te lossen, omdat het van cruciaal belang is om de systeemprestaties te registreren. De manier waarop gegevens daadwerkelijk op uw schijf zijn georganiseerd, wordt bepaald door uw bestandssysteem. Bijvoorbeeld FAT32 (oude DOS- en Windows-pc's), NTFS (latere edities van Windows), HFS + (Mac), ext4 (sommige Linux-systemen) en vele andere. Zelfs het concept van een "bestand" en een "map" zijn slechts producten van typische bestandssystemen - harde schijven weten niets over de mysterieuze beesten genaamd bestanden. Details vallen buiten het bestek van dit antwoord. Maar in wezen hebben alle gangbare bestandssystemen manieren om bij te houden waar de beschikbare ruimte zich op een station bevindt, zodat een zoektocht naar vrije ruimte onder normale omstandigheden (dat wil zeggen bestandssystemen die in goede gezondheid verkeren) overbodig is. Voorbeelden:

    • NTFS heeft een hoofdbestandstabel met de speciale bestanden $ Bitmap, enz. en veel metagegevens die de schijf beschrijven. In wezen houdt het bij waar de volgende vrije blokken zijn, zodat nieuwe bestanden direct naar vrije blokken kunnen worden geschreven zonder de schijf telkens opnieuw te hoeven scannen.
    • Een ander voorbeeld: Ext4 heeft de zogenaamde bitmap allocator, een verbetering ten opzichte van ext2 en ext3, die het in principe helpt om direct te bepalen waar vrije blokken zijn in plaats van de lijst met vrije blokken te scannen. Ext4 ondersteunt ook vertraagde toewijzing, dat wil zeggen, het bufferen van gegevens in RAM door het besturingssysteem voordat het naar de schijf wordt geschreven om betere beslissingen te nemen over waar het moet worden geplaatst om versnippering te verminderen.
    • Vele andere voorbeelden.

    "Of met het verplaatsen van dingen om een ​​voldoende lange ononderbroken ruimte te maken om iets te redden?"

    Nee. Dit gebeurt niet, althans niet met een bestandssysteem dat ik ken. Bestanden eindigen gewoon gefragmenteerd.

    Het proces van "dingen verplaatsen om een ​​voldoende lange aaneengesloten ruimte te maken voor het opslaan van iets" wordt genoemd defragmenteren. Dit gebeurt niet wanneer bestanden worden geschreven. Dit gebeurt wanneer u uw schijfdefragmentatie uitvoert. Op nieuwere edities van Windows gebeurt dit in ieder geval automatisch volgens een schema, maar het wordt nooit geactiveerd door een bestand te schrijven.

    In de gelegenheid zijn vermijden het verplaatsen van dingen zoals deze is de sleutel tot het bestandssysteem prestaties, en is waarom fragmentatie gebeurt en waarom defragmentatie bestaat als een afzonderlijke stap.

    "Hoeveel vrije ruimte moet ik vrijlaten op een harde schijf?"

    Dit is een moeilijkere vraag om te beantwoorden (en dit antwoord is al veranderd in een klein boekje).

    Vuistregels:

    1. Voor alle soorten schijven:

    • Het belangrijkste is, laat voldoende vrije ruimte over voor u om uw computer effectief te gebruiken. Als u onvoldoende ruimte hebt om te werken, wilt u een grotere schijf.
    • Veel hulpprogramma's voor het defragmenteren van schijven vereisen een minimale hoeveelheid vrije ruimte (ik denk dat die met Windows 15 procent, het slechtste geval vereist) om in te werken. Ze gebruiken deze vrije ruimte om gefragmenteerde bestanden tijdelijk te houden, omdat andere dingen opnieuw worden gerangschikt.
    • Laat ruimte over voor andere OS-functies. Als uw machine bijvoorbeeld niet veel fysiek RAM-geheugen heeft en virtueel geheugen is ingeschakeld met een paginabestand met een dynamisch formaat, wilt u voldoende ruimte vrijlaten voor de maximale grootte van het paginabestand. Of als u een laptop hebt die u in de slaapstand zet, hebt u voldoende vrije ruimte nodig voor het slaapstandbestand. Dat soort dingen.

    2. SSD-specifieke:

    • Voor optimale betrouwbaarheid (en in mindere mate voor prestaties) hebben SSD's enige vrije ruimte nodig die, zonder in te gaan op te veel details, wordt gebruikt voor het verspreiden van gegevens rond de schijf om te voorkomen dat constant naar dezelfde plek wordt geschreven (waardoor ze worden leeggemaakt) . Dit concept van het laten van vrije ruimte wordt overprovisioning genoemd. Het is belangrijk, maar in veel SSD's bestaat al een verplichte overbevoorradingsruimte. Dat wil zeggen, de schijven hebben vaak een paar dozijn meer GB dan ze aan het besturingssysteem rapporteren. Voor lagere stations moet u vaak handmatig vertrekken unpartitioned ruimte, maar voor stations met verplicht OP, je hoeft geen vrije ruimte te laten. Een belangrijk ding om op te merken is dat Overgeproviseerde ruimte wordt vaak alleen uit niet-gepartitioneerde ruimte gehaald. Dus als je partitie je volledige schijf in beslag neemt en je wat vrije ruimte overlaat, is dat niet het geval altijd tellen. Vaak vereist handmatige overprovisioning dat u uw partitie verkleint om kleiner te zijn dan het formaat van de schijf. Raadpleeg de gebruikershandleiding van uw SSD voor meer informatie. TRIM, garbage collection, en dergelijke hebben ook effecten, maar die vallen buiten de reikwijdte van dit antwoord.

    Persoonlijk pak ik meestal een grotere schijf als ik ongeveer 20-25 procent vrije ruimte over heb. Dit is niet gerelateerd aan de prestaties, het is alleen dat wanneer ik op dat punt kom, ik verwacht dat ik waarschijnlijk binnenkort te weinig ruimte voor gegevens zal hebben en het tijd is om een ​​grotere schijf te krijgen.

    Belangrijker dan het kijken naar vrije ruimte, is ervoor zorgen dat geplande defragmentatie is ingeschakeld waar van toepassing (niet op SSD's), zodat je nooit op het punt komt dat het ontzettende genoeg wordt om je te beïnvloeden.


    Er is nog een laatste ding dat het vermelden waard is. Een van de andere antwoorden hier vermeldde dat de half-duplexmodus van SATA het lezen en schrijven op hetzelfde moment verhindert. Hoewel waar, dit is veel te simpel en heeft meestal niets te maken met de prestatieproblemen die hier worden besproken. Wat dit simpel betekent, is dat gegevens niet in beide richtingen kunnen worden overgedragen op de draad tegelijkertijd. SATA heeft echter een vrij complexe specificatie met kleine maximale blokgroottes (ongeveer 8 kB per blok op de draad, denk ik), lees- en schrijfbewerkingswachtrijen, enz., En sluit niet uit dat schrijfbewerkingen naar buffers plaatsvinden tijdens het lezen, interleaved operaties, enz.

    Elke blokkering die optreedt, zou te wijten zijn aan het concurreren om fysieke bronnen, meestal beperkt door voldoende cache. De duplexmodus van SATA is hier bijna helemaal niet relevant.


    (EEN) "Vertragen" is een brede term. Hier gebruik ik het om te verwijzen naar dingen die ofwel I / O-gebonden zijn (dat wil zeggen dat als je computer daar zit te kraken, de inhoud van de harde schijf geen impact heeft) of CPU-gebonden is en concurreert met tangentieel gerelateerde dingen die een hoge waarde hebben CPU-gebruik (dat wil zeggen, antivirussoftware die tonnen bestanden kan scannen).

    (B) SSD's worden beïnvloed door fragmentatie doordat sequentiële toegangssnelheden over het algemeen sneller zijn dan willekeurige toegang, ondanks dat SSD's niet dezelfde beperkingen hebben als een mechanisch apparaat (zelfs dan garandeert fragmentatie geen sequentiële toegang vanwege slijtage-egalisatie, enz.). In vrijwel elk scenario voor algemeen gebruik is dit echter een probleem. Prestatieverschillen als gevolg van fragmentatie op SSD's zijn meestal verwaarloosbaar voor zaken als het laden van applicaties, het opstarten van de computer, enz.

    (C) Uitgaande van een gezond bestandssysteem dat bestanden niet expres fragmenteert.

    Lees de rest van de levendige discussie op SuperUser via de onderstaande link!


    Heb je iets toe te voegen aan de uitleg? Geluid uit in de reacties. Wilt u meer antwoorden van andere technisch onderlegde Stack Exchange-gebruikers lezen? Bekijk hier de volledige discussiethread.