Kodėl diskų vietos ištuštinimas paspartina kompiuterius?
Kai daugiau sužinosite apie kompiuterius ir kaip jie dirba, kartais atsitiks kažkas, kas neatrodo prasminga. Turint tai omenyje, ar vietos ištuštinimas iš tikrųjų greitina kompiuterius? Šiandienos „SuperUser“ atsakymų ir atsakymų atsakymas yra neaiškus skaitytojo klausimas.
Šiandienos „Klausimų ir atsakymų“ sesija mums suteikiama pagal „SuperUser“ - „Stack Exchange“ padalinį, bendruomenės sukurtą „Q&A“ svetainių grupavimą.
„Nchenga“ („Flickr“) sutikimas.
Klausimas
„SuperUser“ skaitytuvas „Remi.b“ nori žinoti, kodėl, atrodo, spartėja disko vietos ištuštinimas:
Žiūrėjau daug vaizdo įrašų ir dabar suprantu, kaip kompiuteriai veikia šiek tiek geriau. Aš suprantu, kas yra RAM, apie nepastovią ir nepastovią atmintį ir keitimo procesą. Aš taip pat suprantu, kodėl RAM didinimas pagreitina kompiuterį.
Aš nesuprantu, kodėl diskų vietos išvalymas, atrodo, pagreitina kompiuterį. Ar tai iš tikrųjų pagreitina kompiuterį? Jei taip, tai kodėl ji tai daro?
Ar ji turi kažką susijusio su atminties vietos ieškojimu, kad būtų galima išgelbėti daiktus arba judėti aplink, kad būtų pakankamai ilgai, kad būtų galima sutaupyti? Kiek tuščios vietos turėčiau palikti laisvame diske?
Kodėl diskų ištuštinimas, atrodo, pagreitina kompiuterį?
Atsakymas
„SuperUser“ autorius Jason C mums atsako:
„Kodėl disko vietos ištuštinimas pagreitina kompiuterius?“
Tai bent jau savaime nėra. Tai tikrai bendras mitas. Priežastis, kodėl tai yra bendras mitas, yra tai, kad jūsų kietojo disko užpildymas dažnai vyksta tuo pačiu metu kaip ir kiti dalykai, kurie tradiciškai gali sulėtinti kompiuterį (A). SSD našumas yra blogesnis, nes užpildomas, tačiau tai yra palyginti nauja, unikalus SSD, o ne kasdieniniams vartotojams. Apskritai, maža laisvos vietos diske yra tik raudona silkė.
Pavyzdžiui, tokie dalykai kaip:
1. Failo fragmentacija. Failų fragmentacija yra problema (B), bet laisvos vietos trūkumas, nors ir neabejotinai vienas iš daugelio prisidedančių veiksnių, nėra vienintelė priežastis. Kai kurie pagrindiniai punktai čia:
- Yra tikimybė, kad failas bus suskaidytas ne susijęs su laisvos vietos, esančios diske, kiekiu. Jie yra susiję su didžiausios gretimos laisvos vietos bloko (ty laisvos vietos „skylių“) dydžiu, kurį sudaro laisvos erdvės kiekis atsitinka viršutinė riba. Jie taip pat susiję su tuo, kaip failų sistema tvarko failų paskirstymą (daugiau žemiau). Apsvarstykite: Diskas, kuris yra 95 procentai pilnas su visa laisva vieta viename gretimame bloke, turi nulinį procentą naujos fragmento suskaidymo galimybės (C) (ir galimybė suskaidyti pridedamą failą yra nepriklausoma nuo laisvos vietos). Dešimties procentų pilnas diskas, kurio duomenys tolygiai paskirstomi diske, turi labai didelę susiskaidymo galimybę.
- Atminkite, kad failų fragmentacija veikia tik našumą, kai prieinami fragmentiniai failai. Apsvarstykite: Jūs turite gražią, defragmentuotą diską, kuriame vis dar yra daug laisvų „skylių“. Dažnas scenarijus. Viskas vyksta sklandžiai. Galų gale, jūs pateksite į tašką, kur nėra daugiau didelių laisvos vietos blokų. Atsisiunčiate didžiulį filmą, failas yra labai suskaidytas. Tai nesumažins jūsų kompiuterio. Visi jūsų paraiškos failai ir tokie, kurie anksčiau buvo bauda, netikėtai susiskaidys. Tai gali padaryti filmą užtrukti ilgiau (nors tipiniai vaizdo įrašų bitų rodikliai yra tokie maži, kaip ir standžiojo disko skaitymo greičiai, kuriuos ji greičiausiai bus nepastebima), ir tai gali turėti įtakos I / O prijungtam našumui, kai filmas įkeliamas, tačiau kitaip nei niekas nesikeičia.
- Nors failų susiskaidymas neabejotinai yra problema, dažnai pasekmės yra sušvelninamos OS ir aparatūros lygio buferiu ir talpyklos. Vėlavęs rašymas, skaitymas, strategijos, pvz., „Prefetcher“ sistemoje „Windows“ ir tt, padeda sumažinti susiskaidymo poveikį. Jūs paprastai ne iš tikrųjų patiria didelį poveikį, kol susiskaidymas taps sunkus (netgi norėčiau pasakyti, kad tol, kol jūsų apsikeitimo failas nebus suskaidytas, tikriausiai niekada nepastebėsite).
2. Kitas pavyzdys yra paieškos indeksavimas. Pasakykite, kad įjungtas automatinis indeksavimas, ir OS, kuri netinkamai tvarko šią funkciją. Kai išsaugosite daugiau ir daugiau indeksuojamo turinio į savo kompiuterį (dokumentus ir pan.), Indeksavimas gali užtrukti ilgiau ir ilgiau, ir gali pradėti daryti įtaką suvokiamam kompiuterio greičiui, kai jis veikia, tiek I / O, tiek procesoriaus naudojimo metu . Tai nėra susijusi su laisva vieta, ji yra susijusi su jūsų turimu indeksuojamo turinio kiekiu. Tačiau laisvos erdvės išsekimas vyksta kartu su daugiau turinio saugojimu, todėl sudaromas klaidingas ryšys.
3. Antivirusinė programinė įranga (panaši į paieškos indeksavimo pavyzdį). Pasakykite, kad turite antivirusinę programinę įrangą, kad atliktumėte disko foninį nuskaitymą. Kadangi turite daugiau ir daugiau nuskaitymo turinio, paieška užima daugiau I / O ir CPU išteklių, galbūt trukdančių jūsų darbui. Vėlgi, tai yra susijusi su nuskaitymo turinio kiekiu. Daugiau turinio dažnai prilygsta mažiau laisvos vietos, bet laisvos vietos trūkumas nėra priežastis.
4. Įdiegta programinė įranga. Pasakykite, kad turite daug įdiegtos programinės įrangos, įkeliančios kompiuterį, ir taip sulėtėja paleidimo laikas. Tai sulėtėja, nes įkeliama daug programinės įrangos. Tačiau įdiegta programinė įranga užima standųjį diską. Todėl laisvos vietos standžiajame diske sumažėja tuo pačiu metu, kai tai atsitinka, ir vėl galima padaryti klaidingą ryšį.
5. Daugelis kitų pavyzdžių, kurie kartu su ja susiję, pasirodys glaudžiai susieti laisvos vietos trūkumą su mažesniu našumu.
Pirmiau pateikta kita priežastis, kodėl tai toks bendras mitas: nors laisvos vietos trūkumas nėra tiesioginė lėtėjimo priežastis, pašalinant įvairias programas, kartais pašalinamas indeksuotas ar nuskaitytas turinys ir tt (bet ne visada; šis atsakymas vėl padidina našumą dėl priežasčių, nesusijusių su likusios laisvos vietos kiekiu. Tačiau tai taip pat natūraliai atlaisvina standžiojo disko vietą. Todėl vėl gali būti matomas (bet klaidingas) ryšys tarp „daugiau laisvos vietos“ ir „greitesnio kompiuterio“.
Apsvarstykite: Jei mašina veikia lėtai dėl daugybės įdiegtų programinės įrangos ir tt, klonuokite kietąjį diską (tiksliai) į didesnį standųjį diską, tada išplėskite savo skaidinius, kad gautumėte daugiau laisvos vietos, mašina nebus stebuklingai pagreitinta. Tos pačios programinės įrangos apkrovos, tie patys failai vis dar yra fragmentiški tokiais pačiais būdais, tas pats paieškos rodyklė vis dar veikia, niekas nesikeičia, nepaisant daugiau laisvos vietos.
„Ar ji turi kažką susijusio su atminties vietos ieškojimu, kad išgelbėtų daiktus?“
Ne. Ne. Verta paminėti du labai svarbius dalykus:
1. Jūsų kietajame diske nėra ieškoma vietų, kad surastumėte vietas. Jūsų kietasis diskas yra kvailas. Niekis. Tai didelis adresų saugyklos blokas, kuris aklai įdeda dalykus, kuriuose jūsų operacinė sistema tai pasakoja, ir skaito, ko prašoma. Šiuolaikiniuose diskuose yra sudėtingų spartinimo ir buferinių mechanizmų, kurie suprojektuoti taip, kad prognozuotų, ką OS ketina prašyti, atsižvelgiant į patirtį, kurią mes sukaupėme per tam tikrą laiką (kai kurie diskai netgi žino apie jų turimą failų sistemą), bet iš esmės galvoja apie savo važiuokite kaip tik didelį sandėliavimo plytą, kuriam kartais priskirtos premijos.
2. Jūsų operacinė sistema neišieško vietų, į kurias reikia įdėti daiktus. Nėra paieškos. Ši problema išspręsta daug pastangų, nes ji yra labai svarbi failų sistemos veikimui. Tai, kaip duomenys tvarkomi jūsų diske, nustato jūsų failų sistema. Pavyzdžiui, FAT32 (seni DOS ir Windows kompiuteriai), NTFS (vėlesni „Windows“ leidimai), HFS + („Mac“), „ext4“ (kai kurios „Linux“ sistemos) ir daugelis kitų. Net „failo“ ir „katalogo“ sąvoka yra tik tipiškų failų sistemų produktai - kietieji diskai nieko nežino apie paslaptingus žvėrys, vadinamus rinkmenas. Išsami informacija nėra šio atsakymo taikymo sritis. Bet iš esmės visose įprastose failų sistemose yra būdų stebėti, kur yra diske esanti erdvė, kad laisvos vietos paieška įprastomis aplinkybėmis (t.y. geros sveikatos failų sistemoms) yra nereikalinga. Pavyzdžiai:
- NTFS turi pagrindinę failų lentelę, kurioje yra specialieji failai $ Bitmap, ir daugybė metaduomenų, apibūdinančių diską. Iš esmės jis seka, kur yra kiti nemokami blokai, kad nauji failai gali būti parašyti tiesiogiai į nemokamus blokus, be jokio kartos nuskaitymo.
- Kitas pavyzdys: „Ext4“ turi tai, kas vadinama „bitmap“ skirstytuvu, pagerinimas, lyginant su „ext2“ ir „ext3“, kuris iš esmės padeda tiesiogiai nustatyti, kur yra laisvi blokai, o ne skenuoti nemokamų blokų sąrašą. „Ext4“ taip pat palaiko atidėtas paskirstymas, tai reiškia, kad operacinės sistemos prieš operacinę sistemą „RAM“ kaupia duomenis prieš įrašydami ją į diską, kad būtų galima priimti geresnius sprendimus dėl to, kur jį sumažinti, kad būtų sumažintas susiskaidymas.
- Daugelis kitų pavyzdžių.
„Arba perkeliant daiktus tam, kad būtų pakankamai ilgai, kad taupytumėte kažką?“
Ne. Tai nevyksta, bent jau ne su jokia failų sistema, apie kurią žinau. Failai tiesiog suskaidomi.
Pakviečiamas procesas, kurio metu „perkeliami dalykai aplink, kad užtektų pakankamai ilgo erdvės kažkam taupyti“ defragmentavimas. Tai neįvyksta, kai įrašomi failai. Tai atsitinka, kai paleisite diskų defragmentavimo priemonę. Naujesniuose „Windows“ leidimuose tai įvyksta automatiškai pagal tvarkaraštį, bet jis niekada neįvedamas rašant failą.
Galimybė vengti tai, kad aplinkiniai dalykai yra tokie, yra raktas į failų sistemos veikimą, todėl suskaidymas vyksta ir kodėl defragmentavimas egzistuoja kaip atskiras žingsnis.
„Kiek tuščios vietos turėčiau palikti laisvame diske?“
Tai yra sudėtingesnis atsakymo klausimas (ir šis atsakymas jau tapo maža knyga).
Nykščio taisyklės:
1. Visų tipų diskams:
- Svarbiausia, palikite pakankamai laisvos vietos efektyviai naudoti kompiuterį. Jei baigsite dirbti, jums reikės didesnio važiavimo.
- Daugeliui diskų defragmentavimo įrankių reikia mažiausio laisvos vietos (manau, kad su Windows reikia 15 proc., Blogiausiu atveju), kad jie veiktų..
- Palikite vietą kitoms OS funkcijoms. Pvz., Jei jūsų įrenginyje nėra daug fizinės atminties, o virtualiosios atminties funkcija įgalinta dinamiškai dydžio puslapių faile, norite palikti pakankamai vietos maksimaliam puslapio failo dydžiui. Arba, jei turite nešiojamojo kompiuterio, kurį įjungėte į užmigdymo režimą, jums reikės laisvos vietos užmigdymo būsenos rinkmenai. Tokie dalykai.
2. SSD:
- Siekiant optimalaus patikimumo (ir mažesniu mastu, našumo), SSD reikia šiek tiek laisvos vietos, kuri, neperžengdama pernelyg smulkių detalių, naudojasi duomenimis skleisti aplink diską, kad būtų išvengta nuolatinio rašymo į tą pačią vietą (kuri juos nešioja) . Ši laisvos erdvės palikimo sąvoka vadinama per dideliu atidėjimu. Svarbu, tačiau daugelyje SSD jau yra privaloma per daug atidėta erdvė. Tai reiškia, kad diskai dažnai turi keletą dešimčių GB nei jie praneša OS. Žemutinių diskų įrenginiai dažnai reikalauja palikti rankiniu būdu nepakeista erdvėje, bet diskuose su privaloma OP, jums nereikia palikti laisvos vietos. Svarbu tai pažymėti pernelyg didelė erdvė dažnai būna paimta iš nešališkos erdvės. Taigi, jei jūsų skaidinys užima visą diską ir paliksite šiek tiek laisvos vietos, tai ne visada skaičiuoti. Daug kartų rankinis perpildymas reikalauja mažinti jūsų skaidinį, kad jis būtų mažesnis už disko dydį. Išsamesnės informacijos ieškokite SSD vartotojo vadove. TRIM, šiukšlių surinkimas ir tokie efektai taip pat yra, tačiau šie klausimai nepatenka į šio atsakymo taikymo sritį.
Asmeniškai aš paprastai paimsiu didesnį diską, kai liko apie 20-25 procentų laisvos vietos. Tai nesusiję su našumu, tiesiog tikiuosi, kad greičiausiai greičiausiai negausite duomenų, o kai atėjau į tą tašką, atėjo laikas gauti didesnį diską.
Svarbiau nei žiūrėti laisvą erdvę, įsitikinkite, kad numatytas defragmentavimas yra įjungtas, jei reikia (ne SSD), kad niekada nepatektumėte į tašką, kur jis taptų baisus, kad paveiktų jus.
Galima paminėti dar vieną dalyką. Vienas iš čia pateiktų atsakymų minėjo, kad SATA pusiau dvipusis režimas neleidžia tuo pačiu metu skaityti ir rašyti. Tiesa, tai labai supaprastinta ir dažniausiai nesusijusi su čia aptartais veiklos klausimais. Tai paprasčiausiai reiškia, kad duomenys negali būti perduodami abiem kryptimis ant vielos Tuo pačiu metu. Tačiau SATA turi gana sudėtingą specifikaciją, apimančią nedidelius maksimalius blokų dydžius (apie 8kB vienam blokui ant vielos, manau), skaitymo ir rašymo operacijų eiles ir tt, taip pat netrukdo rašyti buferiams, vykstantiems skaitymo metu. operacijos ir kt.
Bet koks blokavimas, kuris įvyktų, būtų dėl konkuruojančių dėl fizinių išteklių, kurį paprastai sumažina daugybė talpyklos. Čia yra beveik visiškai nesvarbus SATA dvipusis režimas.
(A) „Lėtas“ yra platus terminas. Čia aš naudoju tai, kad aš turiu omenyje dalykus, kurie yra susieti I / O (ty, jei jūsų kompiuteryje yra sėdinčiųjų numerių, kietojo disko turinys neturi įtakos) arba CPU susietas ir konkuruoja su tangentiškai susijusiais dalykais, kurie turi aukštą CPU naudojimas (ty antivirusinės programinės įrangos nuskaitymo tonų failų).
(B) SSD veikia fragmentacija, nes nuoseklios prieigos sparta paprastai yra greitesnė už atsitiktinę prieigą, nepaisant to, kad SSD neturi tokių pat apribojimų kaip ir mechaninis įrenginys (net ir tada, kai trūksta susiskaidymo, neužtikrina nuoseklios prieigos dėl susidėvėjimo išlyginimo ir tt). Tačiau beveik visuose bendro naudojimo scenarijuose tai nėra problema. Veikimo skirtumai dėl SSD suskaidymo paprastai yra nereikšmingi dalykams, pvz., Programų įkėlimui, kompiuterio paleidimui ir kt.
(C) Darant prielaidą, kad failų sistema yra nesudėtinga, nes failai suskaidomi pagal paskirtį.
Būtinai perskaitykite likusias gyvas diskusijas „SuperUser“ per toliau pateiktą nuorodą!
Ar ką nors papildyti paaiškinimu? Garsas išjungtas komentaruose. Norite perskaityti daugiau atsakymų iš kitų „tech-savvy Stack Exchange“ vartotojų? Čia rasite visą diskusijų temą.