Zašto pražnjenje prostora na disku ubrzava računala?
Kada učite više o računalima i kako oni rade, povremeno ćete naići na nešto što izgleda da nema smisla. Imajući to na umu, da li pražnjenje prostora na disku zapravo ubrzava računala? Današnja postova za pitanja i odgovore SuperUser imaju odgovor na zbunjeno pitanje čitatelja.
Današnja sesija pitanja i odgovora dolazi nam ljubaznošću SuperUser-a, podjele Stack Exchangea, grupiranja web-lokacija za pitanja i odgovore u zajednici.
Snimak je dopušteno nchenga (Flickr).
Pitanje
Čitač SuperUser Remi.b želi znati zašto pražnjenje prostora na disku ubrzava računalo:
Gledam mnogo videozapisa i sada razumijem kako računala rade malo bolje. Razumijem što je RAM, o volatilnoj i trajnoj memoriji i procesu zamjene. Također razumijem zašto povećanje RAM-a ubrzava računalo.
Ono što ne razumijem je zašto čišćenje prostora na disku ubrzava računalo. Stvarno ubrzava računalo? Ako je tako, zašto to čini?
Ima li to veze s traženjem memorijskog prostora za spremanje stvari ili pomicanjem stvari da bi se stvorio dovoljno dugačak prostor za spremanje nečega? Koliko praznog prostora trebam ostaviti na tvrdom disku?
Zašto pražnjenje prostora na disku ubrzava računalo?
Odgovor
Suradnik autora SuperUser Jason C ima odgovor za nas:
"Zašto pražnjenje prostora na disku ubrzava računala?"
Ne radi se, barem ne sama. Ovo je doista zajednički mit. Razlog zbog kojeg je to uobičajeni mit je to što se popunjavanje tvrdog diska često događa istovremeno s drugim stvarima koje tradicionalno mogu usporiti vaše računalo (A). Izvedba SSD-a ima tendenciju degradacije kako se popunjavaju, ali to je relativno novo pitanje, jedinstveno za SSD-ove, i nije stvarno vidljivo za povremene korisnike. Općenito, mali slobodni prostor na disku samo je crvena haringa.
Na primjer, stvari kao što su:
1. Fragmentacija datoteke. Fragmentacija datoteka je problem (B), ali nedostatak slobodnog prostora, iako je definitivno jedan od mnogih čimbenika koji doprinose, nije jedini uzrok toga. Neke ključne točke ovdje:
- Šanse za fragmentiranje datoteke su ne s obzirom na količinu slobodnog prostora preostalog na pogonu. Oni se odnose na veličinu najvećeg susjednog bloka slobodnog prostora na pogonu (tj. "Rupe" slobodnog prostora), što je količina slobodnog prostora se dogodi da stavi gornju granicu. Oni su također povezani s načinom na koji datotečni sustav upravlja dodjelom datoteka (dalje u nastavku). Uzeti u obzir: Pogon pun 95 posto sa svim slobodnim prostorom u jednom bloku ima nula posto šanse za fragmentiranje nove datoteke (C) (i mogućnost fragmentiranja dodane datoteke je neovisna o slobodnom prostoru). Pogon koji je pun posto, ali s ravnomjerno raspoređenim podacima na pogonu ima vrlo velike šanse za fragmentaciju.
- Imajte na umu tu fragmentaciju datoteka utječe samo na izvedbu kada se pristupa fragmentiranim datotekama. Uzeti u obzir: Imate lijep, defragmentiran disk koji još uvijek ima puno slobodnih "rupa" u njemu. Uobičajeni scenarij. Sve radi glatko. Na kraju, ipak, dođete do točke gdje više nema velikih blokova slobodnog prostora. Ako preuzmete golemi film, datoteka će biti jako fragmentirana. To neće usporiti vaše računalo. Sve vaše aplikacije i takve datoteke koje su prethodno bile u redu neće iznenada postati fragmentirane. To može dovesti do duljeg učitavanja filma (iako su tipične brzine videozapisa u filmu tako niske u usporedbi s ocjenama za čitanje tvrdog diska da će najvjerojatnije biti neprimjetne), a to može utjecati na performanse povezane s I / O tijekom učitavanja filma, ali osim toga, ništa se ne mijenja.
- Dok je fragmentacija datoteka svakako problem, često se efekti ublažavaju zbog puferiranja i spremanja na razini OS-a i hardvera. Odgođeno pisanje, naprijed čitanje, strategije kao što je predprogramiranje u sustavu Windows, itd., Sve to pomaže smanjiti učinke fragmentacije. Obično ne zapravo doživjeti značajan utjecaj dok fragmentacija ne postane ozbiljna (čak bih se usudio reći da sve dok vaša swap datoteka nije fragmentirana, vjerojatno nikada nećete primijetiti).
2. Indeksiranje pretraživanja je još jedan primjer. Recimo da je uključeno automatsko indeksiranje i OS koji ne postupa elegantno s tim. Kako spremate sadržaj koji se može indeksirati na vaše računalo (dokumenti i slično), indeksiranje može potrajati duže i duže i može početi utjecati na brzinu vašeg računala dok se koristi, kako u I / O tako iu korištenju CPU-a , To nije povezano s slobodnim prostorom, već je povezano s količinom sadržaja koji se može indeksirati. Međutim, izostanak slobodnog prostora ide ruku pod ruku s pohranjivanjem većeg broja sadržaja, stoga se izvuče lažna veza.
3. Antivirusni softver (sličan primjeru indeksiranja pretraživanja). Recite da imate postavljen antivirusni softver za pozadinsko skeniranje vašeg pogona. Budući da imate sve više i više skeniranih sadržaja, pretraživanje traje više I / O i CPU resursa, možda ometajući vaš rad. Opet, ovo je povezano s količinom skeniranog sadržaja koji imate. Više sadržaja često je manje slobodnog prostora, ali nedostatak slobodnog prostora nije uzrok.
4. Instalirani softver. Recimo da imate mnogo instaliranog softvera koji se učitava kada se računalo pokrene, čime se usporava vrijeme pokretanja. Ovo usporavanje se događa zato što se puno softvera učitava. Međutim, instalirani softver zauzima prostor na tvrdom disku. Stoga se slobodni prostor na tvrdom disku smanjuje u isto vrijeme kad se to dogodi, a opet se može napraviti lažna veza.
5. Mnogi drugi primjeri u tom smislu koji, kada se uzmu zajedno, pojaviti usko povezati nedostatak slobodnog prostora s nižim performansama.
Gore navedeno ilustrira još jedan razlog zbog kojeg je to tako uobičajeni mit: Iako nedostatak slobodnog prostora nije izravan uzrok usporavanja, deinstaliranje raznih aplikacija, uklanjanje indeksiranog ili skeniranog sadržaja, itd. Ponekad (ali ne uvijek, izvan opsega ovaj odgovor) ponovno povećava izvedbu iz razloga koji nisu povezani s količinom preostalog slobodnog prostora. Ali to također prirodno oslobađa prostor na tvrdom disku. Stoga, opet, može se napraviti očita (ali lažna) veza između "više slobodnog prostora" i "bržeg računala".
Uzeti u obzir: Ako imate stroj koji radi sporo zbog puno instaliranog softvera, itd., Klonirajte vaš tvrdi disk (točno) na veći tvrdi disk, a zatim proširite vaše particije da biste dobili više slobodnog prostora, stroj neće magično ubrzati. Ista se softverska opterećenja, iste datoteke i dalje fragmentiraju na isti način, isti indeks za pretraživanje i dalje radi, ništa se ne mijenja unatoč tome što ima više slobodnog prostora.
"Ima li to veze s potragom za memorijskim prostorom za spremanje stvari?"
Ne, nije. Ovdje postoje dvije vrlo važne stvari:
1. Vaš tvrdi disk ne traži okolo da bi pronašao mjesta za stavljanje stvari. Tvoj tvrdi disk je glup. Nije ništa. To je veliki blok pohranjene adrese koji slijepo stavlja stvari na koje vaš OS govori i čita sve što se od njega traži. Moderni pogoni imaju sofisticirane mehanizme za predmemoriranje i međuspremanje koji su dizajnirani oko predviđanja onoga što će OS tražiti na temelju iskustva koje smo stekli tijekom vremena (neki pogoni su čak svjesni datotečnog sustava koji je na njima), ali u suštini mislite na vozite samo kao veliku glupu ciglu skladišta s povremenim dodatnim performansama.
2. Vaš operativni sustav ne traži ni mjesta za stavljanje stvari. Nema pretraživanja. Mnogo je truda uloženo u rješavanje ovog problema jer je ključno za performanse datotečnog sustava. Način na koji su podaci zapravo organizirani na vašem disku određen je vašim datotečnim sustavom. Na primjer, FAT32 (stara DOS i Windows računala), NTFS (kasnija izdanja sustava Windows), HFS + (Mac), ext4 (neki Linux sustavi), i mnogi drugi. Čak i pojam "datoteka" i "direktorija" samo su proizvodi tipičnih datotečnih sustava - tvrdi diskovi ne znaju ništa o tajanstvenim zvijerima slika. Detalji su izvan opsega ovog odgovora. Ali u suštini, svi uobičajeni datotečni sustavi imaju načine praćenja gdje je raspoloživi prostor na pogonu, tako da je traženje slobodnog prostora, u normalnim okolnostima (tj. Datotečni sustavi dobrog zdravlja), nepotrebno. Primjeri:
- NTFS ima glavnu tablicu datoteka koja uključuje posebne datoteke $ Bitmap, itd., i obilje metapodataka koji opisuju pogon. U biti, prati gdje su sljedeći besplatni blokovi tako da se nove datoteke mogu pisati izravno na slobodne blokove bez potrebe za skeniranjem pogona svaki put.
- Drugi primjer: Ext4 ima ono što se naziva bitmap alokator, poboljšanje u odnosu na ext2 i ext3 koji u osnovi pomaže izravno odrediti gdje su slobodni blokovi umjesto skeniranja popisa slobodnih blokova. Ext4 također podržava odgođeno dodjeljivanje, to jest, pohranjivanje podataka u RAM-u od strane OS-a prije pisanja na pogon kako bi se donijele bolje odluke o tome gdje da se smanji fragmentacija.
- Mnogi drugi primjeri.
"Ili pomicanjem stvari kako bi se stvorio dovoljno dugačak prostor za nešto spremanje?"
Ne. To se ne događa, barem ne s bilo kojim datotečnim sustavom za koji znam. Datoteke su samo fragmentirane.
Poziva se proces "pomicanja stvari da bi se stvorio dovoljno dugačak prostor za spremanje nečega" defragmentacijom. To se ne događa kada se datoteke zapisuju. To se događa kada pokrenete defragmentaciju diska. U novijim izdanjima sustava Windows, to se događa automatski po rasporedu, ali se nikad ne pokreće pisanjem datoteke.
Biti u stanju Izbjegavajte pomicanje stvari uokolo kao što je ovo ključno za izvedbu datotečnog sustava i zbog toga se događa fragmentacija i zašto defragmentacija postoji kao poseban korak.
"Koliko praznog prostora trebam ostaviti na tvrdom disku?"
Ovo je teže pitanje za odgovor (a taj je odgovor već pretvoren u malu knjigu).
Pravila palca:
1. Za sve vrste pogona:
- Što je najvažnije, ostavite dovoljno slobodnog prostora učinkovito koristiti računalo. Ako vam ponestaje prostora za rad, poželjet ćete veći pogon.
- Mnogi alati za defragmentaciju diska zahtijevaju minimalnu količinu slobodnog prostora (mislim da onaj s Windowsom zahtijeva 15 posto, najgori slučaj) za rad. Oni koriste ovaj slobodan prostor za privremeno držanje fragmentiranih datoteka kao što su druge stvari preuređene.
- Ostavite mjesta za druge funkcije OS-a. Na primjer, ako vaš stroj nema puno fizičkog RAM-a, a virtualna memorija je omogućena s datotekom stranice s dinamičkom veličinom, htjet ćete ostaviti dovoljno prostora za maksimalnu veličinu datoteke datoteke. Ili ako imate prijenosno računalo koje stavite u stanje hibernacije, trebat će vam dovoljno slobodnog prostora za datoteku stanja hibernacije. Stvari poput tih.
2. SSD-specifične:
- Za optimalnu pouzdanost (iu manjoj mjeri izvedbu) SSD-ovi zahtijevaju malo slobodnog prostora koji, bez ulaženja u previše detalja, koriste za širenje podataka oko pogona kako bi se izbjeglo stalno pisanje na isto mjesto (što ih istroši) , Ovaj koncept ostavljanja slobodnog prostora naziva se prekomjernim osiguravanjem. To je važno, ali u mnogim SSD-ovima već postoji obavezno prekomjerno rezervirano mjesto. To jest, pogoni često imaju nekoliko desetaka GB više nego što izvještavaju OS-u. Pogoni na donjem kraju često zahtijevaju ručno napuštanje unpartitioned prostora, ali za pogone s obveznim OP-om, ne morate ostavljati slobodnog prostora. Važno je ovdje napomenuti da je to Prekomjerno osiguran prostor često se uzima samo iz nepodijeljenog prostora. Dakle, ako vaša particija zauzme cijeli vaš pogon i na njemu ostavite malo slobodnog prostora, to ne znači stalno računati. Mnogo puta, ručno prekomjerno osiguravanje zahtijeva da smanjite particiju da bude manja od veličine pogona. Pojedinosti potražite u korisničkom priručniku SSD-a. TRIM, sakupljanje smeća i slično imaju učinke, ali oni su izvan opsega ovog odgovora.
Osobno, obično uzmem veći pogon kada imam oko 20-25 posto slobodnog prostora. To nije povezano s performansama, nego samo kada dođem do te točke, očekujem da ću uskoro ostati bez prostora za podatke i vrijeme je da dobijem veći pogon.
Važnije je od gledanja slobodnog prostora provjeriti je li planirana defragmentacija omogućena gdje je to prikladno (ne na SSD-ovima) tako da nikada ne dođete do točke na kojoj ona postaje dovoljno strašna da bi utjecala na vas.
Još je jedna stvar vrijedna spomena. Jedan od drugih odgovora ovdje spominje da SATA-in poludipleksni način sprječava čitanje i pisanje u isto vrijeme. Iako je to istina, to je uvelike pojednostavljeno i uglavnom nije povezano s problemima izvedbe o kojima se ovdje raspravlja. To jednostavno znači da se podaci ne mogu prenositi u oba smjera na žici u isto vrijeme. Međutim, SATA ima prilično složenu specifikaciju koja uključuje male maksimalne veličine bloka (oko 8kB po bloku na žici, mislim), čitanje i pisanje redova operacija, itd., I ne isključuje pisanje u spremnike koji se događaju dok se čitaju u tijeku, umetnuti operacijama, itd.
Bilo kakvo blokiranje koje bi se dogodilo bilo bi zbog natjecanja za fizičke resurse, obično ublažene obiljem predmemorije. Dupleksni način rada SATA ovdje je gotovo posve nevažan.
(A) "Usporiti" je širok pojam. Ovdje ga koristim za upućivanje na stvari koje su ili povezane s I / O-om (tj. Ako vaše računalo sjedi tamo krckanje brojeva, sadržaj tvrdog diska nema utjecaja) ili CPU-om i natječu se s tangencijalno povezanim stvarima koje imaju visoke Upotreba procesora (tj. Skeniranje antivirusnog softvera u tonama datoteka).
(B) Na SSD-ove utječe fragmentacija jer su sekvencijalne pristupne brzine uglavnom brže od slučajnog pristupa, unatoč tome što SSD-ovi nisu suočeni s istim ograničenjima kao mehanički uređaj (čak i tada, nedostatak fragmentacije ne jamči sekvencijalni pristup zbog izjednačavanja trošenja, itd.). Međutim, u gotovo svakom općem scenariju korištenja to nije problem. Razlike u performansama uslijed fragmentacije na SSD diskovima obično su zanemarive za stvari kao što su učitavanje aplikacija, dizanje računala, itd.
(C) Pretpostavljajući normalan datotečni sustav koji namjerno ne fragmentira datoteke.
Obavezno pročitajte ostatak živahne rasprave na SuperUser-u putem veze ispod!
Imate li što dodati objašnjenju? Zvuk isključen u komentarima. Želite li pročitati više odgovora od drugih tehničkih korisnika Stack Exchangea? Pogledajte cjelokupnu temu za raspravu ovdje.