Pagina principala » HOWTO » De ce golirea spațiului pe disc accelerează computerele?

    De ce golirea spațiului pe disc accelerează computerele?

    Când aflați mai multe despre computere și cum funcționează acestea, ocazional veți trece peste ceva care nu pare să aibă sens. Cu aceasta în minte, golirea spațiului de pe disc accelerează de fapt calculatoarele? Postarea de astăzi SuperUser Q & A are răspunsul la o întrebare nedumerită a cititorului.

    Sesiunea de întrebări și răspunsuri din ziua de astăzi vine de la amabilitatea SuperUser - o subdiviziune a Stack Exchange, o grupare bazată pe comunitate a site-urilor web Q & A.

    Imaginea de pe urma nchenga (Flickr).

    Intrebarea

    Cititorul SuperUser Remi.b vrea să știe de ce golirea spațiului pe disc pare să accelereze un computer:

    Am urmărit o mulțime de videoclipuri și acum înțeleg cum computerele funcționează un pic mai bine. Înțeleg ce este memoria RAM, despre memoria volatilă și non-volatilă și despre procesul de schimbare. De asemenea, înțeleg de ce creșterea RAM-ului accelerează un computer.

    Ceea ce nu înțeleg este motivul pentru care curățarea spațiului de pe disc pare să accelereze calculatorul. Are viteza într-adevăr un computer sus? Dacă da, de ce o face?

    Are ceva de-a face cu căutarea spațiului de memorie pentru a salva lucruri sau pentru a face lucruri în mișcare pentru a crea un spațiu suficient de lung pentru a salva ceva? Cât spațiu gol trebuie să las liber pe un hard disk?

    De ce golirea spațiului pe disc pare să accelereze un computer?

    Răspunsul

    Contribuitorul SuperUser Jason C are răspunsul pentru noi:

    "De ce golirea spațiului pe disc accelerează computerele?"

    Nu este, cel puțin nu pe cont propriu. Acesta este un mit foarte comun. Motivul pentru care este un mit comun este faptul că umplerea hard disk-ului se întâmplă adesea în același timp cu alte lucruri care, în mod tradițional, ar putea încetini computerul (A). Performanțele SSD tind să se degradeze pe măsură ce se umple, dar aceasta este o problemă relativ nouă, unică pentru SSD-uri și nu este cu adevărat vizibilă pentru utilizatorii ocazionali. În general, spațiul redus pe disc liber este doar o hering roșu.

    De exemplu, lucruri precum:

    1. Fragmentarea fișierelor. Fragmentarea fișierelor este o problemă (B), dar lipsa spațiului liber, în timp ce cu siguranță unul dintre multele factori care contribuie, nu este singura cauză a acestuia. Unele puncte cheie aici:

    • Șansele de fragmentare a unui fișier sunt nu în funcție de cantitatea de spațiu liber rămasă pe unitate. Acestea sunt legate de mărimea celui mai mare bloc contiguat de spațiu liber de pe unitate (adică "găuri" de spațiu liber), pe care cantitatea de spațiu liber se întâmplă să pui o limită superioară. Ele sunt, de asemenea, legate de modul în care sistemul de fișiere se ocupă de alocarea fișierelor (mai jos). Considera: O unitate care este de 95% plină cu tot spațiul liber într-un singur bloc contiguu are șanse zero la sută de fragmentare a unui fișier nou (C) (și șansa de fragmentare a unui fișier atașat este independent de spațiul liber). O unitate care este de cinci procente plină, dar cu date răspândite uniform pe unitate are o șansă foarte mare de fragmentare.
    • Rețineți că fragmentarea fișierului afectează performanța numai când sunt accesate fișierele fragmentate. Considera: Aveți o mașină frumoasă, defragmentată, care are în continuare o mulțime de "găuri" libere în ea. Un scenariu comun. Totul se desfășoară fără probleme. În cele din urmă, totuși, ajungi într-un punct în care nu mai rămân blocuri de spațiu liber. Descărcați un film uriaș, fișierul ajunge să fie extrem de fragmentat. Acest lucru nu va încetini computerul. Toate fișierele dvs. de aplicație și cele care au fost bine în trecut nu vor deveni dintr-o dată fragmentate. Acest lucru poate face ca filmul să dureze mai mult timp pentru încărcare (deși ratele de biți ale filmului sunt atât de scăzute în comparație cu ratele de citire a uneltelor de hard disk pe care probabil că le va fi neobservate) și poate afecta performanța legată de I / O în timpul încărcării filmului altceva decât asta, nimic nu se schimbă.
    • În timp ce fragmentarea fișierelor este cu siguranță o problemă, de multe ori efectele sunt atenuate de operațiunile de tamponare și cache-uri ale sistemului de operare și hardware. Întârziat scrie, read-ahead, strategii cum ar fi prefetcher în Windows, etc, toate ajuta la reducerea efectelor fragmentării. În general, nu de fapt experimentează un impact semnificativ până când fragmentarea devine severă (aș dori chiar să spun că atâta timp cât fișierul de swap nu este fragmentat, probabil că niciodată nu vei observa).

    2. Indexarea căutării este un alt exemplu. Spuneți că ați activat indexarea automată și un sistem de operare care nu se ocupă de acest lucru grațios. Pe măsură ce salvați conținut mai mult și mai indexabil pe computer (documente și altele), indexarea poate dura mai mult și poate începe să aibă un efect asupra vitezei percepute a computerului în timp ce rulează, atât în ​​ceea ce privește I / O, cât și utilizarea procesorului . Acest lucru nu are legătură cu spațiul liber, este legat de cantitatea de conținut indexabil pe care îl aveți. Cu toate acestea, lipsa de spațiu liber merge mână în mână cu stocarea mai mult conținut, prin urmare, o conexiune falsă este trasată.

    3. Software antivirus (similar cu exemplul de indexare a căutării). Spuneți că aveți software anti-virus configurat pentru a face scanarea în fundal a unității. Pe măsură ce aveți mai mult și mai mult conținut scanabil, căutarea necesită mai multe resurse I / O și CPU, eventual interferând cu munca dvs. Din nou, aceasta este legată de cantitatea de conținut scanabil pe care îl aveți. Mai multe conținuturi adesea echivalează cu mai puțin spațiu liber, dar lipsa spațiului liber nu este cauza.

    4. Software instalat. Spuneți că aveți o mulțime de software instalat care se încarcă atunci când computerul dvs. cizme, încetinind astfel timpii de pornire. Această încetinire se întâmplă deoarece se încarcă o mulțime de software. Cu toate acestea, software-ul instalat ocupă spațiu pe hard disk. Prin urmare, spațiul liber de pe hard disk scade în același timp în care se întâmplă acest lucru și, din nou, se poate face o conexiune falsă.

    5. Multe alte exemple de-a lungul acestor linii care, luate împreună, apărea pentru a asocia strâns lipsa spațiului liber cu performanțe mai scăzute.

    Cele de mai sus ilustrează un alt motiv că acest lucru este un mit comun: în timp ce lipsa spațiului liber nu este o cauză directă de încetinire, dezinstalarea diverselor aplicații, eliminarea conținutului indexat sau scanat etc. uneori (dar nu întotdeauna; acest răspuns) crește din nou performanța din motive independente de spațiul liber rămas. Dar acest lucru, de asemenea, în mod natural, eliberează spațiu pe hard disk. Prin urmare, din nou, se poate face o conexiune aparentă (dar falsă) între "spațiul mai liber" și un "calculator mai rapid".

    Considera: Dacă aveți o mașină care rulează lent din cauza multor software-uri instalate etc., clonați hard diskul (exact) pe un hard disk mai mare, apoi extindeți-vă partițiile pentru a obține mai mult spațiu liber, mașina nu va accelera magic. Aceleași încărcări de software, aceleași fișiere sunt încă fragmentate în același mod, același indexer de căutare încă rulează, nimic nu se schimbă în ciuda faptului că are mai mult spațiu liber.

    "Are ceva de-a face cu căutarea spațiului de memorie pentru a salva lucrurile?"

    Nu, nu face. Există două lucruri foarte importante care merită notate aici:

    1. Hard disk-ul dvs. nu caută în jur pentru a găsi locuri pentru a pune lucrurile. Hard-ul dvs. este prost. Nu-i nimic. Este un bloc mare de stocare adresată, care pune orbește lucrurile acolo unde sistemul tău îi spune și citește orice i se cere. Unitățile moderne au mecanisme sofisticate de memorare a cache-urilor și de tamponare, concepute în jurul prezenței a ceea ce cere OS-ul pe baza experienței dobândite de-a lungul timpului (unele unități sunt chiar conștiente de sistemul de fișiere care este pe ele), dar în esență, conduceți doar ca o cărămidă mare de depozitare cu caracteristici de performanță bonus ocazionale.

    2. De asemenea, sistemul dvs. de operare nu caută locații pentru a pune lucrurile. Nu există căutări. S-au depus multe eforturi în rezolvarea acestei probleme, deoarece este esențială pentru performanța sistemului de fișiere. Modul în care datele sunt efectiv organizate pe unitatea dvs. este determinată de sistemul dvs. de fișiere. De exemplu, FAT32 (vechi DOS și PC-uri Windows), NTFS (ediții ulterioare de Windows), HFS + (Mac), ext4 (unele sisteme Linux) și multe altele. Chiar conceptul de "fișier" și "director" sunt doar produse ale sistemelor de fișiere tipice - hard-driverele nu știu nimic despre fiarele misterioase numite fișiere. Detaliile sunt în afara scopului acestui răspuns. Dar, în mod esențial, toate sistemele de fișiere comune au modalități de urmărire unde spațiul disponibil este pe o unitate, astfel încât o căutare a spațiului liber este, în circumstanțe normale (adică sisteme de fișiere în stare bună de sănătate), inutilă. Exemple:

    • NTFS are o masă de fișiere master, care include fișierele speciale $ Bitmap, etc, și o mulțime de meta date care descriu unitatea. În esență, acesta ține evidența locurilor în care urmează următoarele blocuri libere, astfel încât fișierele noi să poată fi scrise direct pe blocuri libere fără a fi nevoie de scanarea unității de fiecare dată.
    • Un alt exemplu: Ext4 are ceea ce se numește alocator bitmap, o îmbunătățire față de ext2 și ext3 care în principiu îl ajută să determine direct unde sunt blocurile libere în locul scanării listei de blocuri libere. Ext4 sprijină, de asemenea întârzierea alocării, adică stocarea în memorie a datelor în memoria RAM de către sistemul de operare înainte de a fi scrisă unității, pentru a lua decizii mai bune cu privire la locul unde să se reducă fragmentarea.
    • Multe alte exemple.

    "Sau cu lucrurile în mișcare pentru a face un spațiu suficient de lung pentru a salva ceva?"

    Nu. Acest lucru nu se întâmplă, cel puțin nu cu niciun sistem de fișiere despre care știu. Fișierele sfârșesc doar fragmentate.

    Este numit procesul de "mișcare a lucrurilor în jurul pentru a crea un spațiu suficient de lung pentru a salva ceva" defragmentarea. Acest lucru nu se întâmplă atunci când fișierele sunt scrise. Acest lucru se întâmplă atunci când executați defragmentarea discului. La edițiile mai noi ale Windows, acest lucru se întâmplă automat, într-un program, dar nu este declanșat niciodată prin scrierea unui fișier.

    A fi capabil să evita lucrurile care se mișcă în jurul valorii de acest lucru sunt cheia performanței sistemului de fișiere, și de ce se întâmplă fragmentarea și de ce defragmentarea există ca un pas separat.

    "Cât spațiu gol trebuie să las liber pe un hard disk?"

    Aceasta este o întrebare mai dificilă de răspuns (și acest răspuns a devenit deja o carte mică).

    Reguli de bază:

    1. Pentru toate tipurile de unități:

    • Cel mai important, lăsați suficient spațiu liber pentru să utilizați computerul în mod eficient. Dacă vă lipsiți de spațiu pentru a lucra, veți dori o mișcare mai mare.
    • Multe instrumente de defragmentare a discului necesită o cantitate minimă de spațiu liber (cred că cea cu Windows necesită 15%, cel mai rău caz) să lucreze. Ei folosesc acest spațiu liber pentru a stoca temporar fișiere fragmentate, deoarece alte lucruri sunt rearanjate.
    • Lăsați spațiul pentru alte funcții ale sistemului de operare. De exemplu, dacă aparatul dvs. nu are o mulțime de memorie RAM fizică și aveți activată memoria virtuală cu un fișier de pagină cu dimensiune dinamică, veți dori să lăsați suficient spațiu pentru dimensiunea maximă a fișierului paginii. Sau dacă aveți un laptop pe care îl puneți în modul de hibernare, veți avea nevoie de suficient spațiu liber pentru fișierul de stare de hibernare. Lucruri de genul acela.

    2. SSD-specifice:

    • Pentru o fiabilitate optimă (și într-o măsură mai mică performanță), SSD-urile necesită un spațiu liber, care, fără a intra în prea multe detalii, utilizează pentru a împrăștia date în jurul unității, pentru a evita scrierea constantă în același loc (care o poartă) . Acest concept de a lăsa spațiul liber se numește supra-provizionare. Este important, dar în multe SSD există deja spațiu obligatoriu excesiv. Asta este, driverele au adesea câteva duzini de GB mai mult decât le raportează OS. Unitățile de tip low-end necesită adesea să părăsiți manual nepartiționat spațiu, dar pentru unități cu OP obligatoriu, nu trebuie să lăsați niciun spațiu liber. Un lucru important care trebuie menționat aici este acela spațiul supra-provizionat este adesea luat doar din spațiul nepartiționat. Deci, dacă partiția dvs. va prelua întreaga dvs. unitate și veți lăsa un spațiu liber pe ea, că nu mereu numara. De multe ori, supra-provizionarea manuală vă impune să micșorați partiția dvs. pentru a fi mai mică decât dimensiunea unității. Verificați manualul de utilizare SSD pentru detalii. TRIM, colectarea deșeurilor și altele asemenea, au efecte, dar acestea sunt în afara acestui răspuns.

    Personal, eu iau de obicei o unitate mai mare atunci când am aproximativ 20-25% spațiu liber rămase. Acest lucru nu este legat de performanță, este doar că atunci când ajung la acest punct, mă aștept că probabil voi fi în curând din spațiu pentru date în curând și este timpul pentru a obține o unitate mai mare.

    Mai important decât a viziona spațiul liber este să vă asigurați că defragmentarea programată este activată acolo unde este cazul (nu pe SSD-uri), astfel încât să nu ajungeți niciodată în punctul în care devine destul de groaznic să vă afecteze.


    Există un ultim lucru care merită menționat. Unul dintre celelalte raspunsuri mentionate aici a mentionat ca modul semipodlex SATA previne citirea si scrierea in acelasi timp. Deși este adevărat, acest lucru este mult prea simplificat și nu are legătură cu problemele de performanță discutate aici. Ce înseamnă, pur și simplu, că datele nu pot fi transferate în ambele direcții pe fir in acelasi timp. Cu toate acestea, SATA are o specificație destul de complexă, care implică dimensiuni mici de blocuri (aproximativ 8kB per bloc pe fir, cred), citiți și scrieți cozi de operare etc. și nu exclude scrierea bufferelor care se întâmplă în timp ce citirile sunt în desfășurare, intercalate operațiuni etc..

    Orice blocare care se produce ar fi datorată concurenței pentru resursele fizice, de obicei atenuate de o mulțime de cache. Modul duplex al SATA este aproape în întregime irelevant aici.


    (A) "Slow down" este un termen larg. Aici îl folosesc pentru a vă referi la lucruri care sunt fie legate de I / O (adică dacă computerul dvs. este așezat acolo, ciocănit numere, conținutul hard disk-ului nu are nici un impact) sau legate de CPU și care concurează cu lucruri legate tangențial, Utilizarea CPU (adică software anti-virus scanând tone de fișiere).

    (B) SSD-urile sunt afectate de fragmentare prin faptul că vitezele de acces secvențiale sunt în general mai rapide decât accesul aleatoriu, în ciuda faptului că SSD-urile nu se confruntă cu aceleași restricții ca un dispozitiv mecanic (chiar și atunci, lipsa fragmentării nu garantează accesul secvențial datorită nivelării uzurii etc.). Cu toate acestea, în aproape orice scenariu de utilizare generală, aceasta este o problemă. Diferențele de performanță datorate fragmentării pe SSD-uri sunt de obicei neglijabile pentru lucruri precum încărcarea aplicațiilor, pornirea calculatorului etc..

    (C) Presupunând un sistem de fișiere sănătos care să nu fragmenteze fișierele în scopuri.

    Asigurați-vă că ați citit în restul discuțiilor pline de viață la SuperUser prin intermediul link-ului de mai jos!


    Aveți ceva de adăugat la explicație? Sunați în comentariile. Doriți să citiți mai multe răspunsuri de la alți utilizatori de tehnologie Stack Exchange? Check out discuția completă aici.