Miks kettaruumi tühjendamine kiirendab arvuteid?
Lisateavet arvutite ja nende töö kohta saate aeg-ajalt üle midagi sellist, mis ei tundu mõistlik. Seda silmas pidades, kas kettaruumi tühjendamine tegelikult arvuteid kiirendab? Tänase SuperUser Q&A postitusel on vastus arusaamatu lugeja küsimusele.
Tänane küsimuste ja vastuste seanss saabub meiega kohtades, kus on SuperUser-Stack Exchange'i alajaotis, kogukondlikult juhitav Q&A veebisaitide rühmitus.
Nchenga (Flickr) viisakalt.
Küsimus
SuperUser lugeja Remi.b tahab teada, miks tundub, et kettaruumi tühjendamine kiirendab arvutit:
Olen vaadanud palju videoid ja nüüd mõistan, kuidas arvutid natuke paremini töötavad. Ma saan aru, milline RAM on, lenduva ja mittepüsiva mälu ning vahetustegevuse kohta. Ma mõistan ka, miks RAMi suurendamine kiirendab arvutit.
Ma ei mõista, miks kettaruumi puhastamine kiirendab arvutit. Kas see tõepoolest kiirendab arvutit? Kui jah, siis miks see nii on?
Kas sellel on midagi pistmist mäluruumi otsimisega, et säästa asju või liigutada asju ümber, et teha piisavalt pikk pidev ruumi, et midagi säästa? Kui palju tühja ruumi peaksin kõvakettale vabaks jätma?
Miks tundub, et kettaruumi tühjendamine kiirendab arvutit?
Vastus
SuperUser'i toetaja Jason C on meile vastus:
"Miks kiirendab kettaruumi arvutid?"
See ei ole vähemalt omaette. See on tõesti levinud müüt. Põhjus, miks see on tavaline müüt, on see, et teie kõvaketta täitmine toimub sageli samal ajal kui teised asjad, mis traditsiooniliselt teie arvutit aeglustavad (A). SSD jõudlus kipub nende täitmisel halvenema, kuid see on suhteliselt uus probleem, mis on ainulaadne SSD-dele ja ei ole juhuslike kasutajate jaoks märgatav. Üldiselt on madal vaba kettaruum vaid punane heeringas.
Näiteks:
1. Faili killustatus. Faili killustatus on probleem (B), kuid vaba ruumi puudumine, kuigi kindlasti üks paljudest teguritest, ei ole selle ainus põhjus. Mõned olulised punktid siin:
- Faili killustumise võimalused on mitte seotud vaba kettaruumi mahuga. Need on seotud suurima vaba ruumi külgneva ploki suurusega (st vaba ruumi “augud”), mille vaba ruumi suurus on juhtub, et asetatakse ülemine piir. Need on seotud ka sellega, kuidas failisüsteem haldab failide jaotamist (rohkem allpool). Mõtle: Ajamil, mis on 95 protsenti täis kogu vaba ruumi ühes ühesuguses plokis, on nullprotsendiline võimalus uue faili killustamiseks (C) (ja lisatud faili killustumise võimalus on vaba ruumist sõltumatu). Ajamil, mis on viis protsenti täis, kuid mille andmed jagunevad ühtlaselt üle draivi, on väga suur killustumise võimalus.
- Pea meeles, et failide killustatus mõjutab ainult jõudlust, kui ligipääs killustatud failidele. Mõtle: Teil on kena, defragmenteeritud draiv, millel on veel palju vaba “auke”. Üldine stsenaarium. Kõik töötab sujuvalt. Lõpuks jõuad siiski punkti, kus ei ole enam suuri vaba ruumi. Laadite tohutu filmi, fail jõuab tõsiselt killustatuna. See ei aegla teie arvutit. Kõik teie rakenduste failid ja sellised, mis varem olid trahvid, ei hakka järsku killustuma. See võib filmi laadimiseks kauem aega võtta (kuigi tüüpilised filmi bitikiirused on nii kõvaketta lugemiskiirusega võrreldes nii madalad, et see tõenäoliselt ei ole märgatav), ning see võib mõjutada video laadimise ajal I / O-seotud jõudlust, kuid midagi muud ei muutu.
- Kuigi failide killustatus on kindlasti probleemiks, leevendatakse sageli mõjusid OS- ja riistvarataseme puhverdamine ja vahemälu. Viivitusega kirjutamine, lugemisprotsess, strateegiad, nagu näiteks Windowsi eesseadja jne, aitavad vähendada killustumise mõju. Te üldiselt ei tee seda tegelikult kogeb märkimisväärset mõju seni, kuni killustatus muutub tõsiseks (ma tahaksin isegi öelda, et niikaua, kuni teie vahetustoiming ei ole killustatud, siis te tõenäoliselt ei märka).
2. Teine näide on otsingu indekseerimine. Ütle, et teil on automaatne indekseerimine sisse lülitatud ja operatsioonisüsteem, mis seda käepärast ei käi. Kui salvestate arvutisse rohkem ja rohkem indekseeritavat sisu (dokumendid ja sellised), võib indekseerimine võtta kauem aega ja võib hakata mõjutama teie arvuti tajutavat kiirust, seda nii I / O kui ka CPU kasutamisel . See ei ole seotud vaba ruumiga, see on seotud teie poolt kasutatava indekseeritava sisu summaga. Kuid vaba ruumi otsa käimine läheb käsikäes rohkem sisu salvestamisega, seega tõmmatakse vale ühendus.
3. Viirusetõrjetarkvara (sarnane otsingu indekseerimise näites). Ütle, et teil on seadistatud viirusetõrjetarkvara, et teha oma draivi taustapilt. Kuna teil on rohkem ja rohkem skaneeritavat sisu, võtab otsing rohkem I / O ja CPU ressursse, mis võib häirida teie tööd. Jällegi on see seotud skannitava sisu kogusega. Rohkem sisu on sageli vähem vaba ruumi, kuid vaba ruumi puudumine ei ole põhjus.
4. Installitud tarkvara. Ütle, et teil on arvutisse installitud palju tarkvara, mis laadib teie arvuti käivitamisel, aeglustades nii käivitusaega. See aeglustub, sest palju tarkvara on laaditud. Kuid installitud tarkvara võtab kõvakettaruumi. Seetõttu väheneb kõvaketta vaba ruum samal ajal, kui see juhtub, ja jälle saab teha vale ühenduse.
5. Paljud teised näited, mis koosnevad ühest küljest, ilmuvad seostada vaba ruumi puudumine tihedamalt madalama jõudlusega.
Ülaltoodust selgub veel üks põhjus, miks see on selline tavaline müüt: kuigi vaba ruumi puudumine ei ole otsene aeglustumise põhjus, siis erinevate rakenduste eemaldamine, indekseeritud või skaneeritud sisu eemaldamine jne (kuid mitte alati; see vastus) suurendab uuesti jõudlust põhjustel, mis ei ole seotud vaba ruumi kogusega. Kuid see vabastab loomulikult ka kõvakettaruumi. Seega võib jällegi teha nähtava (kuid vale) seose "vaba ruumi" ja "kiirema arvuti" vahel.
Mõtle: Kui teil on masin, mis töötab aeglaselt paljude installitud tarkvara jms tõttu, kloonige oma kõvaketas (täpselt) suuremale kõvakettale, seejärel laiendage oma partitsioone, et saada rohkem vaba ruumi, masin ei maagiliselt kiirusta. Sama tarkvara laadib, samad failid on samadel viisidel ikka veel killustunud, sama otsinguregistreerija töötab ikka, midagi ei muutu vaatamata sellele, et on rohkem vaba ruumi.
“Kas tal on midagi pistmist mäluruumi otsimisega asjade säästmiseks?”
Ei. Siinkohal tasub märkida kahte väga olulist asja:
1. Teie kõvaketas ei otsi, et asju leida. Teie kõvaketas on loll. See pole midagi. See on adresseeritud ladustamise suur plokk, mis pimedalt paneb asjad, kus teie operatsioonisüsteem seda ütleb, ja loeb sellest, mida küsitakse. Kaasaegsetel draividel on keerulised vahemällu salvestamise ja puhverdamise mehhanismid, mis on kavandatud aja jooksul ennustamaks, mida OS kavatseb küsida (mõned draivid on isegi teadlikud nende failisüsteemist), kuid sisuliselt mõtle teie sõita kui lihtsalt suurt lollaladu, millel on juhuslikud boonuste jõudluse funktsioonid.
2. Teie operatsioonisüsteem ei otsi ka asju paigutamiseks. Otsing puudub. Selle probleemi lahendamiseks on tehtud palju jõupingutusi, kuna see on failisüsteemi toimimise seisukohalt kriitiline. Kuidas failid teie kettas tegelikult korraldatakse, määrab teie failisüsteem. Näiteks FAT32 (vanad DOS ja Windows PC), NTFS (hilisemad Windowsi väljaanded), HFS + (Mac), ext4 (mõned Linuxi süsteemid) ja paljud teised. Isegi "faili" ja "kataloogi" kontseptsioon on vaid tüüpiliste failisüsteemide tooted - kõvakettad ei tea midagi, mida nimetatakse salapärastele loomadele. faile. Üksikasjad ei kuulu selle vastuse ulatusse. Kuid sisuliselt on kõigil tavalistel failisüsteemidel viisid, kuidas jälgida, kus vaba ruum on draivil, nii et vaba ruumi otsimine on normaalsetes tingimustes (s.o hea tervise failisüsteemid) tarbetu. Näited:
- NTFS-il on põhifailide tabel, mis sisaldab erifaile $ Bitmap, jne ning palju draivi kirjeldavaid metaandmeid. Sisuliselt jälgib see, kus on järgmised vabad plokid, nii et uusi faile saab kirjutada otse tasuta plokkidesse, ilma et iga kord draivi skannida.
- Teine näide: Ext4-l on nn bitmap-eraldaja, parandus võrreldes ext2 ja ext3-ga, mis põhimõtteliselt aitab otseselt otsustada, kus vaba plokid on vabade plokkide nimekirja skaneerimise asemel. Ext4 toetab ka hilisem eraldamine, see tähendab, et operatsioonisüsteemi operatsioonisüsteemi mälus olevate andmete puhverdamine enne draivi kirjutamist, et teha paremad otsused selle kohta, kus seda killustatust vähendada.
- Paljud teised näited.
„Või liigutades asju ümber, et teha piisavalt pikaks ruumi, et midagi säästa?"
Ei. See ei juhtu, vähemalt mitte mistahes failisüsteemiga, millest ma olen teadlik. Failid on lihtsalt killustatud.
Seda nimetatakse "protsesside liigutamiseks, et teha piisavalt pikk ja ühtlane ruum midagi säästa" defragmentimine. Seda ei juhtu, kui failid on kirjutatud. See juhtub, kui käivitate ketta defragmentori. Uuemates Windowsi väljaannetes toimub see vähemalt ajakava järgi automaatselt, kuid seda ei käivitata kunagi faili kirjutamise teel.
Võimeline vältima Selliste asjade ümberpaigutamine on failisüsteemi toimimise võtmeteguriks ning sellepärast toimub killustumine ja miks eraldamine on eraldi samm.
"Kui palju tühja ruumi peaksin kõvakettal vabaks jätma?"
See on keerulisem küsimus, millele vastata (ja see vastus on juba muutunud väikesteks raamatuteks).
Peidetud reeglid:
1. Kõigi draivide puhul:
- Kõige tähtsam on jätta piisavalt vaba ruumi saate oma arvutit tõhusalt kasutada. Kui ruumi töötamiseks otsa saab, siis soovite suuremat sõitu.
- Paljud kettadefragmentimise tööriistad vajavad minimaalset vaba ruumi (arvan, et Windowsi jaoks on vaja 15 protsenti, halvimal juhul) töötada. Nad kasutavad seda vaba ruumi killustatud failide ajutiseks hoidmiseks, kui teised asjad ümber paigutatakse.
- Jätke ruumi teistele operatsioonisüsteemide funktsioonidele. Näiteks kui teie seadmel ei ole palju füüsilist RAM-i ja teil on dünaamiliselt suurusega leheküljefailiga lubatud virtuaalne mälu, tahad jätta piisavalt ruumi lehefaili maksimaalsele suurusele. Või kui teil on sülearvuti, mida kasutate talveunerežiimi, vajate talverežiimi faili jaoks piisavalt vaba ruumi. Sellised asjad.
2. SSD-spetsiifiline:
- Optimaalse usaldusväärsuse (ja vähemal määral ka jõudluse) saavutamiseks vajavad SSD-d mõnda vaba ruumi, mis ilma liigse detaili sisestamiseta kasutavad andmete levitamiseks sõidu ümber, et vältida pidevat kirjutamist samasse kohta (mis kannab neid välja) . Seda vaba ruumi jätmise mõistet nimetatakse ülerahastamiseks. See on tähtis, kuid paljudes SSD-des on juba olemas kohustuslik ülepakkumine. See tähendab, et draividel on sageli mitu tosinat GB-d, kui nad OS-le teatavad. Madalamad otsad nõuavad tihti käsitsi lahkumist eraldamata ruumi, kuid kohustusliku OP-ga draividele, te ei pea vaba ruumi jätma. Oluline on siin märkida, et Liigselt eraldatud ruumi võetakse sageli ainult eraldamata ruumist. Nii et kui teie partitsioon võtab kogu draivi ja jätad selle vabale kohale, siis see ei ole alati loota. Paljudel juhtudel nõuab manuaalne ülevarustus teie partitsiooni vähendamist, et see oleks draivi suurusest väiksem. Vaadake üksikasju oma SSD kasutusjuhendist. TRIM, prügi kogumine ja sellised tagajärjed on ka, kuid need ei kuulu selle vastuse ulatusse.
Isiklikult haaraksin tavaliselt suurema sõita, kui mul on umbes 20-25 protsenti vaba ruumi. See ei ole seotud jõudlusega, see on just see, et kui ma selleni jõuan, ootan, et tõenäoliselt hakkab varsti ruumi andmemahtuma ja on aeg saada suurem draiv.
Olulisem kui vaba ruumi vaatamine on tagada, et ajastatud defragmentimine on vajaduse korral lubatud (mitte SSD-del), nii et te ei jõua kunagi punkti, kus see muutub ebamugavaks, et teid mõjutada.
On veel üks asi, mida väärib märkimist. Üks muudest vastustest mainis, et SATA pooldupleksrežiim takistab samal ajal lugemist ja kirjutamist. Kuigi see on tõsi, on see väga lihtsustatud ja enamasti ei ole seotud siin käsitletud tulemuslikkuse küsimustega. See tähendab lihtsalt seda, et andmeid ei saa mõlemas suunas edastada traadile samal ajal. SATA-l on siiski üsna keeruline spetsifikatsioon, mis hõlmab väikseid maksimaalseid plokkide suurusi (umbes 8 kB ploki kohta traadil, ma arvan), lugemis- ja kirjutamisoperatsioonide järjekorrad jne ning ei välista, et kirjutatakse puhvritele, mis toimub lugemiste ajal, interleaved toimingud jne.
Mis tahes blokeerimine, mis tekib, on tingitud füüsiliste ressursside konkureerimisest, mida tavaliselt leevendab palju vahemälu. SATA dupleksrežiim on siin peaaegu täiesti ebaoluline.
(A) „Aeglane aeg” on lai mõiste. Siin ma kasutan seda, et viidata asjadele, mis on seotud I / O-ga (st kui teie arvuti istub seal, kus on numbrid, kõvaketta sisu puudub) või CPU-ga seotud ja konkureerivad tangentsiaalselt seotud asjadega, millel on kõrge CPU kasutamine (st viirusetõrje tarkvara skaneerimine tonni faile).
(B) SSDd mõjutavad killustatus, sest järjestikused pöörlemiskiirused on üldiselt kiiremad kui juhuslik juurdepääs, vaatamata SSD-dele, mis ei puutu kokku samade piirangutega kui mehaaniline seade (isegi siis, kui killustatuse puudumine ei taga kulumise tasandamise tõttu järjestikku juurdepääsu). Kuid praktiliselt igas üldkasutatavas stsenaariumis on see probleem. SSD-de killustatusest tulenevad jõudluse erinevused on tavaliselt tühised näiteks rakenduste laadimisel, arvuti käivitamisel jne.
(C) Eeldades mõistlikku failisüsteemi, mis ei ole failide killustamiseks.
Lugege läbi allpool oleva lingi kaudu kogu ülejäänud SuperUseris toimuv arutelu!
Kas teil on midagi lisada selgitusele? Heli on kommentaarides välja lülitatud. Kas soovite lugeda rohkem vastuseid teistelt tech-savvy Stack Exchange'i kasutajatelt? Vaadake siin täielikku arutelu lõiku.