Wanneer 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, versnelt het leegmaken van de schijfruimte de computers werkelijk? De SuperUser Q & A-post van vandaag biedt 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 door de gemeenschap gestuurde groep van Q & A-websites.
Screenshot met dank aan nchenga (Flickr).
SuperUser-lezer Remi.b wil weten waarom het legen van schijfruimte een computer lijkt te versnellen:
Ik heb veel video's bekeken en begrijp nu hoe computers werken beetje beter. Ik begrijp wat RAM is, over vluchtig en niet-vluchtig geheugen en het proces van swappen. Ik begrijp ook waarom het vergroten van RAM-geheugen een computer sneller maakt. <> Ik begrijp niet waarom het opschonen 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 bewaren of met het verplaatsen van dingen om een voldoende lange ononderbroken ruimte te maken om iets te redden? Hoeveel lege ruimte moet ik vrij achterlaten op een harde schijf?
Waarom lijkt het leegmaken van schijfruimte een computer te versnellen?
Het antwoord
" Waarom versnelt het leegmaken van schijfruimte computers? "
Dat doet het niet, althans niet op zichzelf. Dit is een heel gewone mythe. De reden dat dit 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
(A) . 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 met betrekking tot 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), waarbij de hoeveelheid vrije ruimte toevallig een bovengrens op legt. Ze zijn ook gerelateerd aan de manier waarop het bestandssysteem bestandstoewijzing verwerkt ( meer dan ). Overweeg: Een schijf die voor 95 procent gevuld is met alle vrije ruimte in een enkel aangrenzend blok, heeft nul procent kans op fragmenteren van een nieuw bestand (C) (en de kans dat een bijgevoegd bestand fragmenteert, is onafhankelijk van de vrije ruimte). Een schijf die voor vijf procent vol is maar met gegevens die gelijkmatig over de schijf worden verspreid, heeft een zeer hoge kans op fragmentatie. Houd er rekening mee dat bestandsfragmentatie
- alleen invloed heeft op de prestaties wanneer de gefragmenteerde bestanden worden geopend . Overweeg: Je hebt een mooie, gedefragmenteerde schijf 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 grote film, het bestand wordt uiteindelijk erg gefragmenteerd. Dit zal je 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 filmbit snelheden zo laag zijn in vergelijking met de lees snelheden van de harde schijf dat deze waarschijnlijk niet opgemerkt worden), en het kan de I / O-gebonden prestaties beïnvloeden 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 buffers en hardwarenniveaus en caching op hardware. Vertraagde schrijft, read-ahead, strategieën zoals de prefetcher in Windows, enz., Allemaal helpen de effecten van fragmentatie te verminderen. Over het algemeen niet
- eigenlijk ondervinden een aanzienlijke impact totdat de fragmentatie ernstig wordt (ik zou zelfs durven zeggen dat zolang je wisselbestand niet gefragmenteerd is, je dit waarschijnlijk nooit zult opmerken) p> <> <> 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 een effect hebben op de waargenomen snelheid van uw computer terwijl deze wordt uitgevoerd, zowel in I / O- als 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, vandaar dat er een valse verbinding wordt 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 een vals verband eenvoudig worden gemaakt.
5. Vele andere voorbeelden in deze zin die, bij elkaar genomen,
verschijnen om gebrek aan vrije ruimte te associëren met lagere prestaties. Het bovenstaande illustreert nog een andere reden dat dit een veel voorkomende mythe is: hoewel het gebrek aan vrije ruimte geen directe oorzaak is van vertraging, het verwijderen van geïndexeerde apps of gescande inhoud, enz. soms (maar niet altijd, buiten de reikwijdte van dit antwoord) verhoogt de prestaties opnieuw om redenen die niets te maken hebben met de hoeveelheid resterende vrije ruimte. Maar hierdoor wordt ook de ruimte op de harde schijf vrijgemaakt. Daarom kan opnieuw een duidelijke (maar onjuiste) verbinding tussen "meer vrije ruimte" en een "snellere computer" worden gemaakt. Overweeg:
Als u een machine langzaam laat draaien vanwege veel geïnstalleerde software, enz. ., kloneer je harde schijf (exact) naar een grotere harde schijf, en breid je partities uit om meer vrije ruimte te krijgen, de machine zal niet magisch versnellen. Dezelfde software wordt geladen, dezelfde bestanden worden nog steeds op dezelfde manier gefragmenteerd, dezelfde zoekindexatie blijft actief, niets verandert ondanks dat er meer vrije ruimte is.
"Heeft het iets te maken met het zoeken naar geheugenruimte om dingen op te slaan? “ No. Het doet niet. Er zijn twee zeer belangrijke dingen die het vermelden waard zijn:
1.
Je harde schijf zoekt niet rond om plekken te vinden om dingen neer te zetten.
Je harde schijf is dom. Het is niets. Het is een groot blok van geadresseerde opslag die blindelings dingen plaatst waar je OS het vertelt 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 rijd gewoon als een grote domme opslagruimte met af en toe bonusprestatiekenmerken. 2. Uw besturingssysteem zoekt ook niet naar plaatsen om dingen te plaatsen. Er wordt niet gezocht.
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 worden 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 anderen. 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
- , enzovoort, 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 steeds opnieuw te moeten scannen. Nog een voorbeeld: Ext4 heeft de 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 buffering 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 fragmentatie te verminderen. 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 om iets te bewaren" wordt
defragmenteren
genoemd. Dit gebeurt niet wanneer bestanden worden geschreven. Dit gebeurt wanneer u uw schijfdefragmentatie uitvoert. Op nieuwere edities van Windows gebeurt dit tenminste automatisch volgens een schema, maar het wordt nooit geactiveerd door een bestand te schrijven.vermijd
dingen verplaatsen zoals dit is de sleutel tot bestandssysteemprestaties en waarom fragmentatie optreedt en waarom defragmentatie als een afzonderlijke stap bestaat. "Hoeveel lege ruimte moet ik vrij achterlaten 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:
Laat vooral voldoende ruimte over voor
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. gebruik deze vrije ruimte om gefragmenteerde bestanden tijdelijk vast te houden terwijl 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 van dynamische grootte, wilt u voldoende ruimte vrijlaten voor de maximale grootte van het paginabestand. Of als u een laptop hebt die u in de sluimerstand zet, hebt u voldoende vrije ruimte nodig voor het slaapstandbestand. Dat soort dingen. 2. SSD-specifiek:
- Voor optimale betrouwbaarheid (en in mindere mate voor prestaties) vereisen SSD's enige vrije ruimte, die ze, zonder al te veel in detail te gaan, gebruiken voor gegevens rond de schijf verspreiden om te voorkomen dat u constant naar dezelfde plaats schrijft (wat ze uitwist). Dit concept van het laten van vrije ruimte wordt over-provisioning 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 rapporteren aan het besturingssysteem. Voor lagere stations moet u niet-gepartitioneerde
- handmatig handmatig laten staan, maar voor stations met verplicht OP, hoeft u geen vrije ruimte te laten. Een belangrijk ding om op te merken is dat over-provisioned ruimte vaak alleen wordt gehaald uit niet-gepartitioneerde ruimte . Dus als je partitie je hele schijf in beslag neemt en je wat vrije ruimte overlaat, telt dat niet altijd . 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 dat valt buiten het bestek van dit antwoord. <> Persoonlijk neem ik meestal een grotere schijf als ik nog 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 zover komt dat het dringend genoeg is 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 het waar is, is dit enorm versimpeld en heeft het meestal niets te maken met de prestatieproblemen die hier worden besproken. Wat dit eenvoudig betekent, is dat gegevens niet tegelijkertijd in beide richtingen op de draad kunnen worden overgedragen. 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 bewerkingen, enzovoort.
Blokkering die optreedt, zou te wijten zijn aan het concurreren om fysieke bronnen, meestal beperkt door voldoende cache. De duplexmodus van SATA is hier vrijwel geheel irrelevant.
(A)
"Vertragen" is een algemene 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 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 met dezelfde beperkingen worden geconfronteerd als mechanische apparaat (zelfs dan garandeert een gebrek aan 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)
Ervan uitgaan dat er een gezond bestandssysteem is dat bestanden niet expres fragmenteert Zorg ervoor dat u lees de rest van de levendige discussie bij 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
Fantastische live foto's maken met je iPhone
Als je een recente iPhone (6S en hoger) hebt gekocht, ben je misschien dol op de nieuwe Live Photos-functie. Als je dat niet bent, ben je misschien gewoon nog niet goed bekend geraakt. De beste manier om een Live Photo te beschrijven, is door hem te vergelijken met een geanimeerde GIF. Je neemt een foto van je onderwerp, die zou moeten bewegen, en de camera op de iPhone legt daadwerkelijk een korte film vast.
Hoe de standaard Picture Viewer in Windows te veranderen
Standaard, wanneer ik dubbelklik op een afbeelding in Windows, opent Windows Photo Viewer de afbeelding! Dat is leuk, maar ik wil liever dat het wordt geopend met een ander programma voor het bekijken van foto's, zoals Photoshop, GIMP, enz.Als dit probleem u ook ergert, is er een eenvoudige manier om het standaardprogramma voor het bekijken van foto's in Windows te wijzigen in de toepassing van uw keuze