Hjemmeside » hvordan » Hvorfor tømmer diskpladsen op på computere?

    Hvorfor tømmer diskpladsen op på computere?

    Når du lærer mere om computere og hvordan de virker, vil du lejlighedsvis køre på tværs af noget, der ikke synes at give mening. Med det i tankerne, tømmer diskpladsen rent faktisk computere op? Dagens SuperUser Q & A-indlæg har svaret på en forvirret læsers spørgsmål.

    Dagens Spørgsmål & Svar session kommer til os med venlig hilsen af ​​SuperUser-en underafdeling af Stack Exchange, en community-driven gruppe af Q & A-websteder.

    Skærmbillede høflighed af nchenga (Flickr).

    Spørgsmålet

    SuperUser-læser Remi.b vil vide, hvorfor tømning af diskplads synes at fremskynde en computer:

    Jeg har set mange videoer og forstår nu, hvordan computere virker lidt bedre. Jeg forstår, hvad RAM er, om flygtig og ikke-flygtig hukommelse, og processen med bytte. Jeg forstår også, hvorfor stigende RAM fremskynder en computer.

    Hvad jeg ikke forstår er, hvorfor rengøring af diskplads synes at fremskynde en computer op. Gør det virkelig fart på en computer? Hvis ja, hvorfor gør det det?

    Har det noget at gøre med at søge efter hukommelsesplads for at gemme ting eller med at flytte ting rundt for at skabe et tilstrækkeligt langvarigt rum for at spare noget? Hvor meget tomt rum skal jeg lade være ledig på en harddisk?

    Hvorfor synes tømning af diskplads at fremskynde en computer?

    Svaret

    SuperUser bidragyder Jason C har svaret for os:

    "Hvorfor tømmer diskpladsen fart på computere?"

    Det gør det ikke, i det mindste ikke alene. Dette er en rigtig almindelig myte. Grunden til at det er en fælles myte er, fordi det ofte sker samtidig med at fylde harddisken med andre ting, der traditionelt kunne bremse computeren (EN). SSD-ydeevne er tilbøjelig til at nedbrydes, da de fylder, men dette er et relativt nyt problem, som er unikt for SSD'er, og det er ikke særlig mærkbart for casual brugere. Generelt er lav ledig diskplads bare en rød sild.

    For eksempel kan ting som:

    1. Fil fragmentering. Fil fragmentering er et problem (B), men mangel på ledig plads, mens det helt sikkert er en af ​​mange bidragende faktorer, er ikke den eneste årsag til det. Nogle vigtige punkter her:

    • Chancerne for en fil er fragmenteret er ikke relateret til mængden af ​​ledig plads der er tilbage på drevet. De er relateret til størrelsen af ​​den største tilstødende blok af ledig plads på drevet (dvs. "huller" af ledig plads), som mængden af ​​ledig plads sker for at sætte en øvre grænse på. De er også relateret til, hvordan filsystemet håndterer filallokering (mere nedenfor). Overveje: Et drev, der er 95 procent fyldt med al det ledige rum i en enkelt sammenhængende blok, har nul procent risiko for at fragmentere en ny fil (C) (og chancen for at fragmentere en vedhæftet fil er uafhængig af det ledige rum). Et drev, der er fem procent fuldt, men med data spredt jævnt over drevet har en meget stor chance for fragmentering.
    • Husk at filfragmentering påvirker kun ydeevnen, når de fragmenterede filer er tilgængelige. Overveje: Du har et flot, defragmenteret drev, som stadig har masser af gratis "huller" i det. Et fælles scenario. Alt går glat. Til sidst kommer du til et punkt, hvor der ikke er flere store blokke ledig plads tilbage. Du downloader en enorm film, filen ender med at blive alvorligt fragmenteret. Dette vil ikke bremse din computer. Alle dine ansøgningsfiler og lignende, der tidligere var fine, bliver ikke pludselig fragmenterede. Dette kan få filmen til at tage længere tid at indlæse (selvom de typiske filmbithastigheder er så lave sammenlignet med harddisklæsningsfrekvenser, at det højst sandsynligt vil være unnoticeable), og det kan påvirke I / O-bundet ydeevne, mens filmen indlæses, men andet end det ændrer intet.
    • Mens filfragmentering er bestemt et problem, ofte er effekten afbød af OS og hardware niveau buffering og caching. Forsinket skriver, læser frem, strategier som forforstærkeren i Windows mv., Alle bidrager til at reducere virkningerne af fragmentering. Du gør det generelt ikke rent faktisk oplever betydelig indvirkning, indtil fragmenteringen bliver alvorlig (jeg ville endda risikere at sige, at så længe din swap-fil ikke er fragmenteret, vil du sandsynligvis aldrig mærke).

    2. Søg indeksering er et andet eksempel. Sig, at du har automatisk indeksering tændt og et operativsystem, der ikke håndterer dette yndefuldt. Da du sparer mere og mere indekseret indhold på din computer (dokumenter og lignende), kan indeksering tage længere og længere tid og kan begynde at påvirke computerens opfattede hastighed, mens den kører, både i forbindelse med I / O og CPU . Dette er ikke relateret til ledig plads, det er relateret til mængden af ​​indekseret indhold, du har. Men at løbe tør for ledig plads går hånd i hånd med at lagre mere indhold, og der dannes en falsk forbindelse.

    3. Anti-virus software (svarende til søgeindekseringseksemplet). Sig, at du har antivirusprogrammer indstillet til at lave baggrundsscanning af dit drev. Da du har mere og mere scannbart indhold, tager søgningen flere I / O- og CPU-ressourcer, hvilket muligvis forstyrrer dit arbejde. Igen er dette relateret til mængden af ​​scannerbart indhold, du har. Flere indhold svarer ofte til mindre ledig plads, men manglen på ledig plads er ikke årsagen.

    4. Installeret software. Sig, at du har en masse software installeret, der laster, når din computer starter, og dermed sænker starttiderne. Denne afmatning sker, fordi der lægges masser af software. Installeret software tager dog plads på harddisken. Derfor reduceres den ledige plads på harddisken samtidig med at dette sker, og igen kan en falsk forbindelse nemt gøres.

    5. Mange andre eksempler langs disse linjer, som, når de tages sammen, komme til syne at nært forbinde mangel på ledig plads med lavere ydelse.

    Ovennævnte illustrerer en anden grund til, at dette er en sådan almindelig myte: Selv om manglen på ledig plads ikke er en direkte årsag til at bremse, afinstallere forskellige applikationer, fjerne indekseret eller scannet indhold osv. Nogle gange (men ikke altid uden for anvendelsesområdet for dette svar) øger ydeevnen igen af ​​grunde, der ikke er relateret til den resterende ledige plads. Men det frigør også naturligvis harddiskplads. Derfor kan der igen laves en tilsyneladende (men falsk) forbindelse mellem "mere ledig plads" og en "hurtigere computer".

    Overveje: Hvis du har en maskine, der kører langsomt på grund af masser af installeret software mv., Skal du klone harddisken (nøjagtigt) til en større harddisk og derefter udvide dine partitioner for at få mere ledig plads. Maskinen vil ikke blive hurtigere. De samme filer laster, de samme filer er stadig fragmenteret på samme måder, den samme søgeindekser kører stadig, intet ændres, selvom der er mere ledig plads.

    "Har det noget at gøre med at søge efter hukommelsesplads for at redde tingene?"

    Nej det gør ej. Der er to meget vigtige ting værd at bemærke her:

    1. Din harddisk kører ikke rundt for at finde steder at sætte ting på. Din harddisk er dum. Det er intet. Det er en stor blok af adresseret opbevaring, der blindt sætter ting, hvor dit OS fortæller det og læser, hvad der bliver spurgt om det. Moderne drev har sofistikerede cache- og buffermekanismer, der er designet til at forudsige, hvad OS'et skal bede om baseret på den erfaring, vi har opnået over tid (nogle drev er endda opmærksomme på filsystemet der er på dem), men i det væsentlige tænker på din køre som bare en stor dumme lagerplads med lejlighedsvise bonusfunktioner.

    2. Dit operativsystem søger ikke efter steder, hvor du også kan sætte ting. Der er ingen søgning. Der er gjort en stor indsats for at løse dette problem, da det er afgørende for filsystemets ydeevne. Den måde, disse data er organiseret på dit drev, bestemmes af dit filsystem. FAT32 (gamle DOS og Windows-pc'er), NTFS (senere udgaver af Windows), HFS + (Mac), ext4 (nogle Linux-systemer) og mange andre. Selv begrebet "fil" og "katalog" er kun produkter af typiske filsystemer - harddiske kender intet om de mystiske dyr, der hedder filer. Detaljer er uden for dette svars anvendelsesområde. Men i det væsentlige har alle almindelige filsystemer måder at spore, hvor ledig plads er på et drev, så at en søgning efter ledig plads under normale omstændigheder (dvs. filsystem i god sundhed) er unødvendigt. Eksempler:

    • NTFS har en masterfil tabel, som indeholder de specielle filer $ bitmap, osv., og masser af metadata, der beskriver drevet. I det væsentlige holder den styr på, hvor de næste gratis blokke er, så nye filer kan skrives direkte til gratis blokke uden at skulle scanne drevet hver gang.
    • Et andet eksempel: Ext4 har det, der kaldes bitmap allokeren, en forbedring over ext2 og ext3, der grundlæggende hjælper det med at bestemme, hvor gratis blokke er i stedet for at scanne listen over gratis blokke. Ext4 understøtter også forsinket tildeling, det vil sige buffering af data i RAM af operativsystemet før du skriver det ud til drevet for at træffe bedre beslutninger om hvor du skal sætte det for at reducere fragmentering.
    • Mange andre eksempler.

    "Eller med at flytte tingene rundt for at lave et tilstrækkeligt kontinuerligt rum til at spare noget?"

    Nej. Dette sker ikke, i det mindste ikke med noget filsystem, jeg er opmærksom på. Filerne ender kun fragmenteret.

    Processen med at "flytte ting rundt for at gøre op for et tilstrækkeligt langvarigt sammenhængende rum til at gemme noget" kaldes defragmentering. Dette sker ikke, når der skrives filer. Dette sker, når du kører din diskdefragmenter. På nyere versioner af Windows sker det i hvert fald automatisk på en tidsplan, men det udløses aldrig ved at skrive en fil.

    Være i stand til undgå Flytning af ting rundt på denne måde er nøglen til filsystemets ydeevne, og derfor opstår fragmentering, og hvorfor defragmentering eksisterer som et separat trin.

    "Hvor meget ledig plads skal jeg lade være fri på en harddisk?"

    Dette er et vanskeligere spørgsmål at besvare (og dette svar er allerede blevet til en lille bog).

    Tommelfingerregler:

    1. For alle typer drev:

    • Vigtigst, lad nok plads være til rådighed Du bruger din computer effektivt. Hvis du løber tør for plads til arbejde, vil du have et større drev.
    • Mange diskdefragmenteringsværktøjer kræver en minimal mængde ledig plads (jeg tror, ​​at den med Windows kræver 15 procent, værste tilfælde) at arbejde i. De bruger dette ledige rum til midlertidigt at holde fragmenterede filer, da andre ting omarrangeres.
    • Forlad plads til andre OS-funktioner. Hvis din maskine f.eks. Ikke har meget fysisk RAM, og du har virtuel hukommelse aktiveret med en dynamisk dimensioneret sidefil, vil du have tilstrækkelig plads til sidens filstørrelse. Eller hvis du har en bærbar computer, som du sætter i dvaletilstand, skal du have nok ledig plads til dvaletilstandsfilen. Ting som.

    2. SSD-specifikke:

    • For at opnå optimal pålidelighed (og i mindre grad ydeevne) kræver SSD'er noget ledig plads, som uden at gå i for detaljer, bruger dem til at sprede data rundt om drevet for at undgå konstant at skrive til det samme sted (hvilket bærer dem ud) . Dette begreb om at forlade ledig plads kaldes over-provisioning. Det er vigtigt, men i mange SSD'er eksisterer der allerede obligatorisk overleveret plads. Dvs., drevene har ofte et par dusin flere GB end de rapporterer til operativsystemet. Nedre ende drev kræver ofte, at du manuelt tager afsted partitioneret plads, men til drev med obligatorisk OP, du behøver ikke at forlade nogen ledig plads. En vigtig ting at bemærke her er det Overleveret plads er ofte kun taget fra ikke-partitioneret rum. Så hvis din partition optager hele dit drev og du giver lidt ledig plads på det, så gør det ikke altid tælle. Mange gange kræver manuel overlevering at du skal krympe din partition for at være mindre end drevets størrelse. Tjek din SSD's brugervejledning for detaljer. TRIM, affaldssamling og lignende har også virkninger, men de er uden for dette svar.

    Personligt tager jeg normalt et større drev, når jeg har omkring 20-25 procent ledig plads tilbage. Dette er ikke relateret til ydeevne, det er bare, at når jeg kommer til det punkt, forventer jeg, at jeg nok vil løbe tør for plads til data snart, og det er på tide at få en større drev.

    Vigtigere end at se ledig plads er at sørge for, at planlagt defragmentering er aktiveret, hvor det er hensigtsmæssigt (ikke på SSD'er), så du aldrig kommer til det punkt, hvor det bliver dystre nok til at påvirke dig.


    Der er en sidste ting værd at nævne. Et af de andre svar her nævnte, at SATA's halvduplex-tilstand forhindrer læsning og skrivning på samme tid. Selv om det er sandt, er dette meget oversimplificeret og er for det meste ikke forbundet med de præstationsspørgsmål, der diskuteres her. Det betyder simpelthen, at data ikke kan overføres i begge retninger på ledningen på samme tid. Men SATA har en ret kompleks specifikation involverer bittesmå maksimale blokstørrelser, (om 8kB pr blok på wiren, jeg tror), læse og skrive drift køer osv, og udelukker ikke skriver til buffere sker mens læser er i gang, interleaved operationer mv.

    Enhver blokering, der opstår, skyldes at konkurrere om fysiske ressourcer, sædvanligvis formindsket af masser af cache. Duplex-tilstanden til SATA er næsten udelukkende irrelevant her.


    (EN) "Slow down" er et bredt begreb. Her bruger jeg den til at henvise til ting, der enten er I / O-bundne (dvs. hvis din computer sidder der knaprende tal, indholdet af harddisken har ingen indflydelse) eller CPU-bundet og konkurrerer med tangentielt relaterede ting, der har høj CPU-brug (dvs. scanning af antivirusprogrammer tonsvis af filer).

    (B) SSD'er påvirkes af fragmentering, idet sekventielle adgangshastigheder generelt er hurtigere end tilfældig adgang, til trods for SSD'er, der ikke står over for de samme begrænsninger som en mekanisk enhed (selv da garanterer manglende fragmentering ikke sekventiel adgang på grund af slidniveauer osv.). Imidlertid er det i næsten alle generelle brugsscenarier et ikke-problem. Prestationsforskelle som følge af fragmentering på SSD'er er typisk ubetydelige for ting som indlæsning af applikationer, opstart af computeren mv.

    (C) Forudsat et sane filsystem, der ikke fragmenterer filer med vilje.

    Sørg for at læse resten af ​​den livlige diskussion hos SuperUser via linket herunder!


    Har du noget at tilføje til forklaringen? Lyde af i kommentarerne. Vil du læse flere svar fra andre tech-savvy Stack Exchange brugere? Tjek den fulde diskussionstråd her.