2Sep
Når du lærer mere om computere og hvordan de fungerer, 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 høflighed af SuperUser-en underafdeling af Stack Exchange, en community-drevet gruppe af Q & A-websteder.
Skærmbillede høflighed af nchenga( Flickr).
Spørgsmål
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 så?
Har det noget at gøre med at søge efter hukommelsesplads til at gemme ting eller med at flytte ting rundt for at skabe et tilstrækkeligt langvarigt rum for at spare noget? Hvor meget ledig plads skal jeg lade være fri 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, at du ofte oplever harddisken samtidig med andre ting, der traditionelt kan bremse computeren ( A) .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 er ikke rigtig mærkbart for uformelle 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 manglen på ledig plads, men absolut en af mange bidragende faktorer, er ikke den eneste årsag til det. Nogle vigtige punkter her:
- Sandsynligheden for, at en fil er fragmenteret, er ikke relateret til mængden af ledig plads på drevet. De er relateret til størrelsen af den største tilstødende blok fri 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 under ). Overvej: Et drev, der er 95 procent fyldt med al det ledige rum i en enkelt sammenhængende blok, har null procent chance for at fragmentere en ny fil ( C) ( og chancen for at fragmentere en vedhæftet fil er uafhængig af ledig plads).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 kun påvirker ydeevnen, når de fragmenterede filer får adgang til . Overvej: Du har et flot, defragmenteret drev, der 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 computeren .Alle dine ansøgningsfiler og lignende, der tidligere var fine, bliver ikke pludselig fragmenterede. Dette kan medføre, at filmen tager længere tid at indlæse( selv om 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, menbortset fra det, ændrer intet.
- Mens filfragmentering er et problem, er det ofte, at effekten afbødes af OS og hardware niveau buffering og caching. Forsinket skriver, læser frem, strategier som forforstærkeren i Windows osv., Alle hjælper med at reducere virkningerne af fragmentering. Du generelt ikke faktisk oplever væsentlig virkning, 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 det 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 installeret en masse software, der laster, når din computer starter, og dermed sænker starttiderne. Denne afmatning sker, fordi masser af software bliver indlæst. Installeret software tager dog plads på harddisken. Derfor reduceres ledig 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, vises for tæt at forbinde mangel på ledig plads med lavere ydelse.
Ovenstående 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ådetaf dette svar) øger ydeevnen igen af grunde, der ikke er relateret til den resterende ledige plads. Men det frigiver også naturligvis harddiskplads. Derfor kan der igen laves en tilsyneladende( men falsk) forbindelse mellem "mere ledig plads" og en "hurtigere computer".
Overvej: 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 være magiskop. 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 ting?"
Nej. Det gør det ikke. 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 caching- og buffermekanismer, der er designet til at forudsige, hvad OS'et skal bede om baseret på den oplevelse, 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å dinkøre som en stor dumme lagerplads med lejlighedsvise bonusfunktioner.
2. Din operativsystem søger ikke efter steder, hvor du også kan sætte ting. Der er ingen søgning. Meget indsats har været at løse dette problem, da det er afgørende for filsystemets ydeevne. Måden, som dataene faktisk 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 en "mappe" 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å en søgning efter ledig plads under normale omstændigheder( dvs. filsystemer i god sundhed) er unødvendigt. Eksempler:
- NTFS har en masterfil tabel, som indeholder de specielle filer $ Bitmap , etc., 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 allokering , det vil sige buffering af data i RAM ved 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 ting rundt for at skabe et tilstrækkeligt langvarigt rum for at gemme 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 tingene rundt for at lave et tilstrækkeligt langt sammenhængende rum til at gemme noget" kaldes defragmentering .Dette sker ikke, når der er skrevet 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.
At kunne undgå at flytte ting rundt som dette er nøglen til filsystemets ydeevne, og derfor opstår fragmentering og hvorfor defragmentering eksisterer som et separat trin.
"Hvor meget ledigt rum skal jeg lade være ledig på en harddisk?"
Dette er et vanskeligere spørgsmål at besvare( og dette svar er allerede blevet en lille bog).
Tommelfingerregel:
1. For alle typer drev:
- Vigtigst, lad nok ledig plads til du bruge 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) for at arbejde i. De bruger dette ledige plads til midlertidigt at holde fragmenterede filer, da andre ting omarrangeres.
- Lad 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-specifik:
- 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 tildet samme sted( som bærer dem ud).Dette begreb om at forlade ledig plads kaldes over-provisioning. Det er vigtigt, , men i mange SSD'er findes der allerede obligatorisk over-provisioned space .Dvs., drevene har ofte et par dusin flere GB end de rapporterer til operativsystemet. Nedre ende drev kræver ofte, at du manuelt forlader upartitioneret -rum, men for drev med obligatorisk OP, behøver du ikke at forlade nogen ledig plads .En vigtig ting at bemærke her er, at overbestemt rum ofte kun tages fra ikke-partitioneret rum .Så hvis din partition optager hele dit drev og du giver lidt ledig plads på det, tæller det ikke altid .Mange gange kræver manuel over-provisioning, at du krymper din partition til at være mindre end drevets størrelse. Tjek din SSD's brugervejledning for detaljer. TRIM, affaldssamling og lignende har også effekter, 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å et større drev.
Mere vigtig 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 dårligt 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. SATA har dog en ret kompleks specifikation, der involverer små maksimale blokstørrelser( ca. 8 kB pr. Blok på ledningen tror jeg), læser og skriver driftskøer mv. Og udelukker ikke, at der skrives til buffere, der sker, mens læsninger pågår, interleavedoperationer 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.
( A) "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 beslægtede ting, der har højCPU-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 samme begrænsninger som en mekanisk enhed( selv da garanterer manglende fragmentering ikke sekventiel adgang på grund af slidniveau,etc.).I næsten alle generelle brugsscenarier er dette imidlertid 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) Hvis du antager et sane filsystem, der ikke fragmenterer filer med det formål.
Sørg for at læse resten af den livlige diskussion hos SuperUser via linket nedenfor!
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.